http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46349
Summary: [4.6 regression] incorrect scalarization Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassig...@gcc.gnu.org ReportedBy: ebotca...@gcc.gnu.org The fix for PR tree-opt/44972 has introduced regressions in Ada, specifically: (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks, checks for return values of build_ref_for_offset. sra_modify_assign now builds addresses of non-byte-aligned references, leading to the expected ICE later in the RTL expander: e...@atlantis:~/build/gcc/native32> gcc/xgcc -Bgcc -S opt9.adb -gnatws -O +===========================GNAT BUG DETECTED==============================+ | 4.6.0 20101105 (experimental) [trunk revision 166350] (i586-suse-linux-gnu) GCC error:| | in expand_expr_addr_expr_1, at expr.c:7009 | | Error detected around opt9.adb:17:7 The non-byte-aligned reference is a bitfield with aggregate type. I think that the checks of the return values should be reinstated somehow or other. The testcase is suitable for addition to the gnat.dg testsuite.