$> cat ice.f90 MODULE foo CONTAINS INTEGER FUNCTION f() f = 42 CONTAINS LOGICAL FUNCTION f1() f1 = .TRUE. END FUNCTION
LOGICAL FUNCTION f2() f1 = .FALSE. ! <--- END FUNCTION END FUNCTION END MODULE $> gfortran-svn -Wall -c ice.f90 ice.f90: In function 'f2': ice.f90:6: internal compiler error: in gfc_conv_variable, at fortran/trans-expr.c:483 $> gfortran-svn -v gcc version 4.3.0 20080116 (experimental) Problem seems to be in expr.c (gfc_check_assign):2690. If the containing namespace is a function, the appropriate tests are skipped. -- Summary: ICE on invalid assignments in doubly-contained functions Product: gcc Version: 4.3.0 Status: UNCONFIRMED Keywords: ice-on-invalid-code Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: dfranke at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34910