The following code contains a generic interface which has two procedures, one with an alternate return and one without. This causes a segfault ICE. If either of the "module procedure" lines are commented out, however, the program compiles.
Note, however, that adding an alternate return argument to the "with" subroutine does not prevent the ICE. I believe that this is valid code, as I have (unfortunately) not found any prohibition in the standard against procedures with alternate returns in generic interfaces. ----------------------------------------------------------------------- debian-gfortran:~/test> cat arswitch.f90 module arswitch implicit none interface gen module procedure with module procedure without end interface contains subroutine with(i,*) integer i if (i>0) then return 1 else return end if end subroutine subroutine without() return end subroutine end module program test use arswitch implicit none end debian-gfortran:~/test> ../bin-trunk/bin/gfortran arswitch.f90 -o arswitch arswitch.f90:0: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. debian-gfortran:~/test> ../bin-trunk/bin/gfortran --version GNU Fortran 95 (GCC) 4.3.0 20061128 (experimental) Copyright (C) 2006 Free Software Foundation, Inc. -- Summary: alternate-return subroutine in generic interface causes ice/segfault Product: gcc Version: 4.3.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: brooks at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30236