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.

Reply via email to