http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46351
Summary: [4.6 regression] incorrect scalarization (2) 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. This is a second example, which ICEs in tree-sra.c directly because of an offset not multiple of a byte: e...@atlantis:~/build/gcc/native> gcc/xgcc -Bgcc -S opt10.adb -O2 +===========================GNAT BUG DETECTED==============================+ | 4.6.0 20101106 (experimental) [trunk revision 166404] (x86_64-suse-linux-gnu) GCC error:| | in build_ref_for_offset, at tree-sra.c:1345 | | Error detected around opt10.adb:6:1 This is again 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.