1! PR rtl-optimization/47008
2! { dg-do run }
3! { dg-options "-Os -fno-asynchronous-unwind-tables -fschedule-insns -fsched-pressure -fno-inline" { target i?86-*-* x86_64-*-* } }
4
5program main
6  type :: t
7    integer :: i
8    character(24) :: c
9    type (t), pointer :: p
10  end type t
11  type(t), pointer :: r, p
12  allocate (p)
13  p = t (123455, "", p)
14  r => entry ("", 123456, 1, "", 99, "", p)
15  if (p%i /= 123455) STOP 1
16contains
17  function entry (x, i, j, c, k, d, p) result (q)
18    integer :: i, j, k
19    character (*) :: x, c, d
20    type (t), pointer :: p, q
21    allocate (q)
22    q = t (i, c, p)
23  end function
24end program main
25