------- Comment #4 from ebotcazou at gcc dot gnu dot org 2009-12-05 12:11 ------- Reopening, this happens on Solaris 8 as well:
This GDB was configured as "sparc-sun-solaris2.8"... (gdb) set args libgcc2.i -O (gdb) run Starting program: /nile.build/botcazou/gcc-head/sparc-sun-solaris2.8/gcc/cc1 libgcc2.i -O __muldi3 Analyzing compilation unit Performing interprocedural optimizations <visibility> <*free_lang_data> <early_local_cleanups> Program received signal SIGSEGV, Segmentation fault. 0x01258a98 in compare_access_positions (a=0x256ff7c, b=0x256ff84) at /nile.build/botcazou/gcc-head/src/gcc/tree-sra.c:1114 1114 if (f1->offset != f2->offset) (gdb) bt #0 0x01258a98 in compare_access_positions (a=0x256ff7c, b=0x256ff84) at /nile.build/botcazou/gcc-head/src/gcc/tree-sra.c:1114 #1 0xff2cb8ec in qsort () from /usr/lib/libc.so.1 #2 0x0125a15c in sort_and_splice_var_accesses (var=0xff145aa0) at /nile.build/botcazou/gcc-head/src/gcc/tree-sra.c:1426 It's a known issue on Solaris 8 when the comparer function returns inconsistent results, i.e. when it fails to impose a total order on the array. Given its complexity, that isn't very suprising and should be fixed. -- ebotcazou at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ebotcazou at gcc dot gnu dot | |org GCC build triplet|mips-sgi-irix5.3 | GCC host triplet|mips-sgi-irix5.3 | GCC target triplet|mips-sgi-irix5.3 | Summary|[4.5 regression] ICE |[4.5 regression] ICE |building stage 1 libgcc on |building stage 1 libgcc: |IRIX 5.3: SEGV in |SEGV in |compare_access_positions |compare_access_positions http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42157