$ cat u.f90 if (isscan () /= 0) call abort contains integer function isscan (substr) character(*), optional :: substr if (.not.present(substr)) isscan = myscan ("foo", "over") end function isscan end $ gfortran u.f90 u.f90: In function ‘MAIN__’: u.f90:5: internal compiler error: Segmentation fault
Confirmed, I think this is a dup of bug 29284, well it is at least related.
I submitted a fix for this today. Paul
Subject: Bug 29322 Author: pault Date: Tue Oct 3 20:13:03 2006 New Revision: 117413 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=117413 Log: 2006-10-03 Paul Thomas <pault@gcc.gnu.org> PR fortran/29284 PR fortran/29321 PR fortran/29322 * trans-expr.c (gfc_conv_function_call): Check the expression and the formal symbol are present when testing the actual argument. PR fortran/25091 PR fortran/25092 * resolve.c (resolve_entries): It is an error if the entries of an array-valued function do not have the same shape. 2006-10-03 Paul Thomas <pault@gcc.gnu.org> PR fortran/29284 * gfortran.dg/optional_assumed_charlen_1.f90: New test. PR fortran/29321 PR fortran/29322 * gfortran.dg/missing_optional_dummy_2.f90: New test. PR fortran/25091 PR fortran/25092 * gfortran.dg/entry_array_specs_1.f90: New test. Added: trunk/gcc/testsuite/gfortran.dg/entry_array_specs_1.f90 trunk/gcc/testsuite/gfortran.dg/missing_optional_dummy_2.f90 trunk/gcc/testsuite/gfortran.dg/optional_assumed_charlen_1.f90 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/resolve.c trunk/gcc/fortran/trans-expr.c trunk/gcc/testsuite/ChangeLog
Fixed on trunk Paul
Subject: Bug 29322 Author: fxcoudert Date: Tue Oct 24 08:05:55 2006 New Revision: 117996 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=117996 Log: A bunch of backports: PR fortran/29284 PR fortran/29321 PR fortran/29322 * trans-expr.c (gfc_conv_function_call): Check the expression and the formal symbol are present when testing the actual argument. PR fortran/25091 PR fortran/25092 * resolve.c (resolve_entries): It is an error if the entries of an array-valued function do not have the same shape. PR fortran/29284 * gfortran.dg/optional_assumed_charlen_1.f90: New test. PR fortran/29321 PR fortran/29322 * gfortran.dg/missing_optional_dummy_2.f90: New test. PR fortran/25091 PR fortran/25092 * gfortran.dg/entry_array_specs_1.f90: New test. Added: branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/entry_array_specs_1.f90 - copied unchanged from r117413, trunk/gcc/testsuite/gfortran.dg/entry_array_specs_1.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/missing_optional_dummy_2.f90 - copied unchanged from r117413, trunk/gcc/testsuite/gfortran.dg/missing_optional_dummy_2.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/optional_assumed_charlen_1.f90 - copied unchanged from r117413, trunk/gcc/testsuite/gfortran.dg/optional_assumed_charlen_1.f90 Modified: branches/gcc-4_1-branch/gcc/fortran/ChangeLog branches/gcc-4_1-branch/gcc/fortran/resolve.c branches/gcc-4_1-branch/gcc/fortran/trans-expr.c branches/gcc-4_1-branch/gcc/testsuite/ChangeLog