When -O3 or higher is used, the optimizer utilizes the lddf sparc instruction to load doubles into registers. This can generate a bus-error/seg-fault at runtime if the source address of the load is not mod8. The optimizer does not check this, even with -munaligned-doubles set.
-- Summary: optimized code seg faults due to double load on sparcV9 Product: gcc Version: 3.4.3 Status: UNCONFIRMED Severity: normal Priority: P2 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: drew dot johnson at andrew dot com CC: gcc-bugs at gcc dot gnu dot org GCC build triplet: 3.4.2 GCC host triplet: sparc-sun-solaris2.8 GCC target triplet: sparc-sun-solaris2.8 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21389