Seemingly, we overlooked some issue when checking the debug patches. Compiling octopus (tddft.org) with gfortran now gives an ICE:
$ gfortran -g tmp1.f90 tmp.f90 tmp.f90:2: internal compiler error: Segmentation fault Valgrind shows (when compiling tmp.f90, tmp1.f90 is OK): ==8754== Invalid read of size 1 ==8754== at 0xB5B660: htab_hash_string (hashtab.c:812) ==8754== by 0x54B12E: lookup_filename (dwarf2out.c:15573) ==8754== by 0x557B86: add_src_coords_attributes (dwarf2out.c:12442) ==8754== by 0x558B1A: add_name_and_src_coords_attributes (dwarf2out.c:12459) ==8754== by 0x560FC0: gen_decl_die (dwarf2out.c:15040) ==8754== by 0x563BD7: force_decl_die (dwarf2out.c:14940) ==8754== by 0x56559C: dwarf2out_imported_module_or_decl (dwarf2out.c:15344) ==8754== by 0x4A15DC: gfc_trans_use_stmts (trans-decl.c:3178) ==8754== by 0x4A180E: gfc_generate_module_vars (trans-decl.c:3385) ==8754== by 0x48F07C: gfc_generate_module_code (trans.c:1226) Test files (note: There is no ICE if one puts the two files into a single file). ---------- tmp1.f90 ------------- module c_pointer_m use iso_c_binding, only : c_ptr, c_associated, c_null_ptr implicit none contains subroutine set_null(ptr) type(c_ptr), intent(out) :: ptr ptr = c_null_ptr end subroutine set_null end module c_pointer_m ------------ tmp.f90 --------------- module string_m use c_pointer_m implicit none end module string_m -- Summary: [4.4 Regression] ICE (segfault) with new debugging patch Product: gcc Version: 4.4.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: debug AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: burnus at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37287