The following program ICEs with test.f90:25:0: internal compiler error: Segmentation fault
The problem is related to PUBIC vs. PRIVATE visibility. It is no regression as 4.1.2, 4.2.1, 4.3.3, 4.4.1 and 4.5 crash. The program compiles with NAG f95 and g95. Valgrind shows: ==31812== Invalid read of size 8 ==31812== at 0x4F4B80: mio_pointer_ref (module.c:2233) ==31812== by 0x6D05D0F: ??? ==31812== by 0x4F6698: mio_symbol_ref (module.c:2494) ==31812== by 0x4F7137: mio_expr (module.c:3029) gdb shows: Program received signal SIGSEGV, Segmentation fault. mio_pointer_ref (gp=0x28) at /home/tob/projects/gcc-trunk-checkout/gcc/fortran/module.c:2233 2233 p = get_pointer (*((char **) gp)); (gdb) bt #0 mio_pointer_ref (gp=0x28) at /home/tob/projects/gcc-trunk-checkout/gcc/fortran/module.c:2233 #1 0x00000000004f6699 in mio_symbol_ref (symp=<value optimized out>) at /home/tob/projects/gcc-trunk-checkout/gcc/fortran/module.c:2494 #2 0x00000000004f7138 in mio_expr (ep=0x13a96c0) at /home/tob/projects/gcc-trunk-checkout/gcc/fortran/module.c:3029 #3 0x00000000004f7a7a in mio_array_spec (asp=<value optimized out>) at /home/tob/projects/gcc-trunk-checkout/gcc/fortran/module.c:2134 #4 0x00000000004f7d07 in mio_symbol (sym=0x13a7930) at /home/tob/projects/gcc-trunk-checkout/gcc/fortran/module.c:3540 #5 0x00000000004f81d0 in write_symbol (n=40, sym=0x13a7930) at /home/tob/projects/gcc-trunk-checkout/gcc/fortran/module.c:4725 #6 0x00000000004f8360 in write_symbol0 (st=<value optimized out>) at /home/tob/projects/gcc-trunk-checkout/gcc/fortran/module.c:4765 module fox_m_fsys_array_str contains pure function str_vs(vs) result(s) character, dimension(:), intent(in) :: vs character(len=size(vs)) :: s s = transfer(vs, s) end function str_vs pure function vs_str(s) result(vs) character(len=*), intent(in) :: s character, dimension(len(s)) :: vs vs = transfer(s, vs) end function vs_str end module fox_m_fsys_array_str module fox_m_fsys_format private interface str module procedure str_logical_array end interface str interface len module procedure str_logical_array_len end interface public :: str contains pure function str_logical_array_len(la) result(n) logical, dimension(:), intent(in) :: la end function str_logical_array_len pure function str_logical_array(la) result(s) logical, dimension(:), intent(in) :: la character(len=len(la)) :: s end function str_logical_array pure function checkFmt(fmt) result(good) character(len=*), intent(in) :: fmt logical :: good good = len(fmt) > 0 end function checkFmt end module fox_m_fsys_format module m_dom_dom use fox_m_fsys_array_str, only: str_vs, vs_str end module m_dom_dom module FoX_dom use fox_m_fsys_format use m_dom_dom end module FoX_dom -- Summary: ICE segfault when reading module file Product: gcc Version: 4.5.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: fortran 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=41869