[Bug fortran/54223] New: Statement function statement with dummy arguments that are also OPTIONAL may crash in wrong calls

roger.ferrer at bsc dot es gcc-bugzilla@gcc.gnu.org
Fri Aug 10 14:21:00 GMT 2012


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

             Bug #: 54223
           Summary: Statement function statement with dummy arguments that
                    are also OPTIONAL may crash in wrong calls
    Classification: Unclassified
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: roger.ferrer@bsc.es


Hi,

in the following non-conformant Fortran snippet

SUBROUTINE S(X)
    IMPLICIT NONE
    INTEGER, OPTIONAL :: X
    INTEGER :: F, Y

    ! Statement function statement
    F(X) = X + 1

    ! This call to F is wrong, it requires an actual argument here
    ! despite the X being OPTIONAL
    Y = F()
END SUBROUTINE S

causes gfortran 4.7.1 to crash

$ gfortran -c test.f90
test.f90: In function 's':
test.f90:11:0: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-4.7/README.Bugs> for instructions.

I think that the OPTIONAL attribute is confusing gfortran when it checks
the (wrong) call to F.

Removing the OPTIONAL attribute results in gfortran properly diagnosing the
missing actual argument.

Kind regards,



More information about the Gcc-bugs mailing list