diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/implicit_11.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/implicit_11.f90 | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/implicit_11.f90 b/gcc/testsuite/gfortran.dg/implicit_11.f90 new file mode 100644 index 000000000..d33acd10a --- /dev/null +++ b/gcc/testsuite/gfortran.dg/implicit_11.f90 @@ -0,0 +1,38 @@ +! { dg-do compile } +! +! PR fortran/34760 +! The problem with implict typing is that it is unclear +! whether an existing symbol is a variable or a function. +! Thus it remains long FL_UNKNOWN, which causes extra +! problems; it was failing here since ISTAT was not +! FL_VARIABLE but still FL_UNKNOWN. +! +! Test case contributed by Dick Hendrickson. +! + MODULE TESTS + PRIVATE :: ISTAT + PUBLIC :: ISTAT2 + CONTAINS + SUBROUTINE AD0001 + REAL RLA1(:) + ALLOCATABLE RLA1 + ISTAT = -314 + ALLOCATE (RLA1(NF10), STAT = ISTAT) + ALLOCATE (RLA1(NF10), STAT = ISTAT2) + END SUBROUTINE + END MODULE + + MODULE TESTS2 + PRIVATE :: ISTAT2 + CONTAINS + function istat2() + istat2 = 0 + end function istat2 + SUBROUTINE AD0001 + REAL RLA1(:) + ALLOCATABLE RLA1 + ALLOCATE (RLA1(NF10), STAT = ISTAT2) ! { dg-error "is not a variable" } + END SUBROUTINE + END MODULE tests2 + +! { dg-final { cleanup-modules "TESTS" } } |