! { dg-do run } ! { dg-options "-std=f2003" } ! ! PR fortran/36592 ! ! Procedure Pointers inside COMMON blocks. ! (Allowed in F03, but forbidden in F08.) ! ! Contributed by Janus Weil . subroutine one() implicit none procedure(real), pointer :: p1,p2 integer :: a,b common /com/ p1,p2,a,b if (a/=5 .or. b/=-9 .or. p1(0.0)/=1.0 .or. p2(0.0)/=0.0) STOP 1 end subroutine one program main implicit none integer :: x,y intrinsic sin,cos procedure(real), pointer :: func1 real, external :: func2 pointer func2 common /com/ func1,func2,x,y x = 5 y = -9 func1 => cos func2 => sin call one() end program main