diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/interface_7.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/interface_7.f90 | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/interface_7.f90 b/gcc/testsuite/gfortran.dg/interface_7.f90 new file mode 100644 index 000000000..9f59b4972 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/interface_7.f90 @@ -0,0 +1,32 @@ +! { dg-do compile } +! One of the tests of the patch for PR30068. +! Taken from the fortran 2003 standard C11.2. +! +! The interface is invalid although it is unambiguous because the +! standard explicitly does not require recursion into the formal +! arguments of procedures that themselves are interface arguments. +! +module xx + INTERFACE BAD9 + SUBROUTINE S9A(X) + REAL :: X + END SUBROUTINE S9A + SUBROUTINE S9B(X) + INTERFACE + FUNCTION X(A) + REAL :: X,A + END FUNCTION X + END INTERFACE + END SUBROUTINE S9B + SUBROUTINE S9C(X) + INTERFACE + FUNCTION X(A) + REAL :: X + INTEGER :: A + END FUNCTION X + END INTERFACE + END SUBROUTINE S9C ! { dg-error "Ambiguous interfaces" } + END INTERFACE BAD9 +end module xx + +! { dg-final { cleanup-modules "xx" } } |