diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/generic_8.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/generic_8.f90 | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/generic_8.f90 b/gcc/testsuite/gfortran.dg/generic_8.f90 new file mode 100644 index 000000000..a129efe4c --- /dev/null +++ b/gcc/testsuite/gfortran.dg/generic_8.f90 @@ -0,0 +1,31 @@ +! { dg-do compile } +! Tests the fix for PR29837, in which the following valid code +! would emit an error because of mistaken INTENT; the wrong +! specific interface would be used for the comparison. +! +! Contributed by +! +MODULE M + IMPLICIT NONE + INTERFACE A + MODULE PROCEDURE A1,A2 + END INTERFACE +CONTAINS + + SUBROUTINE A2(X) + INTEGER, INTENT(INOUT) :: X + END SUBROUTINE A2 + + SUBROUTINE A1(X,Y) + INTEGER, INTENT(IN) :: X + INTEGER, INTENT(OUT) :: Y + Y=X + END SUBROUTINE A1 + + SUBROUTINE T(X) + INTEGER, INTENT(IN) :: X(:) + INTEGER Y + CALL A(MAXVAL(X),Y) + END SUBROUTINE T +END MODULE M +! { dg-final { cleanup-modules "m" } } |