diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/proc_ptr_comp_29.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/proc_ptr_comp_29.f90 | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/proc_ptr_comp_29.f90 b/gcc/testsuite/gfortran.dg/proc_ptr_comp_29.f90 new file mode 100644 index 000000000..94c59cd1a --- /dev/null +++ b/gcc/testsuite/gfortran.dg/proc_ptr_comp_29.f90 @@ -0,0 +1,25 @@ +! { dg-do run } +! +! PR 47240: [F03] segfault with procedure pointer component +! +! Contributed by Martien Hulsen <m.a.hulsen@tue.nl> + + type t + procedure (fun), pointer, nopass :: p + end type + type(t) :: x + real, dimension(2) :: r + x%p => fun + r = evaluate (x%p) + if (r(1) /= 5 .and. r(2) /= 6) call abort() +contains + function fun () + real, dimension(2) :: fun + fun = (/ 5, 6 /) + end function + function evaluate ( dummy ) + real, dimension(2) :: evaluate + procedure(fun) :: dummy + evaluate = dummy () + end function +end |