summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/proc_ptr_26.f90
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gfortran.dg/proc_ptr_26.f90')
-rw-r--r--gcc/testsuite/gfortran.dg/proc_ptr_26.f9031
1 files changed, 31 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/proc_ptr_26.f90 b/gcc/testsuite/gfortran.dg/proc_ptr_26.f90
new file mode 100644
index 000000000..044f0a403
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/proc_ptr_26.f90
@@ -0,0 +1,31 @@
+! { dg-do run }
+!
+! PR fortran/42597
+!
+! Contributed by mrestelli@gmail.com
+!
+
+module mod_a
+ implicit none
+
+ abstract interface
+ pure function intf(x) result(y)
+ real, intent(in) :: x(:,:)
+ real :: y(size(x,1),size(x,1),size(x,2))
+ end function intf
+ end interface
+
+ procedure(intf), pointer :: p_fun => null()
+end module mod_a
+
+program main
+ use mod_a
+ implicit none
+
+ procedure(intf), pointer :: p_fun2 => null()
+
+ if (associated(p_fun) .or. associated(p_fun2)) &
+ call abort ()
+end program main
+
+! { dg-final { cleanup-modules "mod_a" } }