summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/proc_ptr_common_1.f90
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gfortran.dg/proc_ptr_common_1.f90')
-rw-r--r--gcc/testsuite/gfortran.dg/proc_ptr_common_1.f9030
1 files changed, 30 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/proc_ptr_common_1.f90 b/gcc/testsuite/gfortran.dg/proc_ptr_common_1.f90
new file mode 100644
index 00000000000..0cfdec03d5a
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/proc_ptr_common_1.f90
@@ -0,0 +1,30 @@
+! { dg-do run }
+
+! PR fortran/36592
+!
+! Procedure Pointers inside COMMON blocks.
+!
+! Contributed by Janus Weil <janus@gcc.gnu.org>.
+
+subroutine one()
+ implicit none
+ common /com/ p1,p2,a,b
+ procedure(real), pointer :: p1,p2
+ integer :: a,b
+ if (a/=5 .or. b/=-9 .or. p1(0.0)/=1.0 .or. p2(0.0)/=0.0) call abort()
+end subroutine one
+
+program main
+ implicit none
+ integer :: x,y
+ intrinsic sin,cos
+ procedure(real), pointer :: func1
+ external func2
+ pointer func2
+ common /com/ func1,func2,x,y
+ x = 5
+ y = -9
+ func1 => cos
+ func2 => sin
+ call one()
+end program main