Between 20100628 and 20100705, all 32-bit Fortran execution tests started to FAIL on Solaris 2. E.g. achar_1.exe:
Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 1 (LWP 1)] 0xff301d98 in *_gfortrani_free_format_hash_table (u=<value optimized out>) at /vol/gcc/src/hg/trunk/solaris/libgfortran/io/format.c:91 (gdb) where #0 0xff301d98 in *_gfortrani_free_format_hash_table (u=<value optimized out>) at /vol/gcc/src/hg/trunk/solaris/libgfortran/io/format.c:91 #1 0xff3132dc in close_unit_1 (u=0x21ca0, locked=1) at /vol/gcc/src/hg/trunk/solaris/libgfortran/io/unit.c:650 #2 0xff3135bc in *_gfortrani_close_units () at /vol/gcc/src/hg/trunk/solaris/libgfortran/io/unit.c:697 #3 0xff292084 in cleanup () at /vol/gcc/src/hg/trunk/solaris/libgfortran/runtime/main.c:180 #4 0xff28d5d4 in __do_global_dtors_aux () from ../../../sparc-sun-solaris2.10/libgfortran/.libs/libgfortran.so.3 #5 0xff28d54c in _fini () from ../../../sparc-sun-solaris2.10/libgfortran/.libs/libgfortran.so.3 #6 0xff3c589c in call_fini () from /usr/lib/ld.so.1 #7 0xff3c5a6c in atexit_fini () from /usr/lib/ld.so.1 #8 0xff0421ac in _exithandle () from /lib/libc.so.1 #9 0xff0305d8 in exit () from /lib/libc.so.1 #10 0x000105cc in _start () (gdb) (gdb) display/i $pc 1: x/i $pc => 0xff301d98 <*_gfortrani_free_format_hash_table+32>: clrx [ %i0 + 0xf0 ] (gdb) p/x $i0 $1 = 0x21cac but %i=+0xf0 isn't 8-byte aligned. Before, two separate clr insns were used instead. -- Summary: [4.6 regression] All 32-bit fortran execution tests SEGV on SPARC: unaligned access Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: ro at gcc dot gnu dot org GCC build triplet: sparc-sun-solaris2* GCC host triplet: sparc-sun-solaris2* GCC target triplet: sparc-sun-solaris2* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44843