diff options
author | janus <janus@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-06-29 21:40:38 +0000 |
---|---|---|
committer | janus <janus@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-06-29 21:40:38 +0000 |
commit | d6df670a714ffc7f42765e24d77a4d29b310eff6 (patch) | |
tree | 8e60b5a9f8007667fa7969b5e7dcedfbdefd5183 /gcc/testsuite/gfortran.dg | |
parent | c1ea0529c34fac6ae3752680aa37c67210ae1f06 (diff) | |
download | gcc-d6df670a714ffc7f42765e24d77a4d29b310eff6.tar.gz |
2010-06-29 Janus Weil <janus@gcc.gnu.org>
PR fortran/44718
* resolve.c (is_external_proc): Prevent procedure pointers from being
regarded as external procedures.
2010-06-29 Janus Weil <janus@gcc.gnu.org>
PR fortran/44718
* gfortran.dg/proc_ptr_28.f90: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161569 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/gfortran.dg')
-rw-r--r-- | gcc/testsuite/gfortran.dg/proc_ptr_28.f90 | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/proc_ptr_28.f90 b/gcc/testsuite/gfortran.dg/proc_ptr_28.f90 new file mode 100644 index 00000000000..8754d8e2982 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/proc_ptr_28.f90 @@ -0,0 +1,39 @@ +! { dg-do compile } +! +! PR 44718: Procedure-pointer name is wrongly regarded as "external procedure" +! +! Contributed by John McFarland <john.mcfarland@swri.org> + +MODULE m + + IMPLICIT NONE + +CONTAINS + + FUNCTION func(x) RESULT(y) + INTEGER :: x,y + y = x *2 + END FUNCTION func + + SUBROUTINE sub(x) + INTEGER :: x + PRINT*, x + END SUBROUTINE sub + + + SUBROUTINE use_func() + PROCEDURE(func), POINTER :: f + INTEGER :: y + f => func + y = f(2) + END SUBROUTINE use_func + + SUBROUTINE use_sub() + PROCEDURE(sub), POINTER :: f + f => sub + CALL f(2) + END SUBROUTINE use_sub + +END MODULE m + +! { dg-final { cleanup-modules "m" } } |