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: [email protected]
ReportedBy: [email protected]
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.