trunk has been broken with CP2K since some time, which I believed to be a side
effect of PR40332, but the following is a stand-alone reduced testcase:

vond...@pcihopt3:/data03/vondele/bug> gfortran -fbounds-check -g test.f90
vond...@pcihopt3:/data03/vondele/bug> ./a.out
At line 8 of file test.f90
Fortran runtime error: Actual string length is shorter than the declared one
for dummy argument 'a' (0/80)
vond...@pcihopt3:/data03/vondele/bug> cat test.f90
MODULE M1
  INTEGER, PARAMETER :: default_string_length=80
END MODULE M1
MODULE M2
 USE M1
 IMPLICIT NONE
CONTAINS
 FUNCTION F1(a,b,c,d) RESULT(RES)
   CHARACTER(LEN=default_string_length), OPTIONAL :: a,b,c,d
   LOGICAL :: res
 END FUNCTION F1
END MODULE M2

MODULE M3
 USE M1
 USE M2
 IMPLICIT NONE
CONTAINS
 SUBROUTINE S1
   CHARACTER(LEN=default_string_length) :: a,b
   LOGICAL :: L1
   INTEGER :: i
   DO I=1,10
      L1=F1(a,b)
   ENDDO
 END SUBROUTINE
END MODULE M3

USE M3
CALL S1
END

this is likely related to the optional arguments.


-- 
           Summary: [4.5 Regression] incorrect bounds checking with optional
                    character arguments
           Product: gcc
           Version: 4.5.0
            Status: UNCONFIRMED
          Keywords: wrong-code
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: jv244 at cam dot ac dot uk


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40383

Reply via email to