diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/ambiguous_specific_2.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/ambiguous_specific_2.f90 | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/ambiguous_specific_2.f90 b/gcc/testsuite/gfortran.dg/ambiguous_specific_2.f90 new file mode 100644 index 000000000..4597b3c86 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/ambiguous_specific_2.f90 @@ -0,0 +1,42 @@ +! { dg-do compile } +! Checks the fix for PR33542 does not throw an error if there is no +! ambiguity in the specific interfaces of foo. +! +! Contributed by Tobias Burnus <burnus@gcc.gnu.org> +! +MODULE M1 + INTERFACE FOO + MODULE PROCEDURE FOO + END INTERFACE +CONTAINS + SUBROUTINE FOO(I) + INTEGER, INTENT(IN) :: I + WRITE(*,*) 'INTEGER' + END SUBROUTINE FOO +END MODULE M1 + +MODULE M2 + INTERFACE FOO + MODULE PROCEDURE FOOFOO + END INTERFACE +CONTAINS + SUBROUTINE FOOFOO(R) + REAL, INTENT(IN) :: R + WRITE(*,*) 'REAL' + END SUBROUTINE FOOFOO +END MODULE M2 + +PROGRAM P + USE M1 + USE M2 + implicit none + external bar + CALL FOO(10) + CALL FOO(10.) + call bar (foo) +END PROGRAM P + +SUBROUTINE bar (arg) + EXTERNAL arg +END SUBROUTINE bar +! { dg-final { cleanup-modules "m1 m2" } } |