[Bug ada/43096] [4.5 regression] miscompilation of ACATS c37105a at -O2
ebotcazou at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Fri Feb 26 10:19:00 GMT 2010
------- Comment #5 from ebotcazou at gcc dot gnu dot org 2010-02-26 10:19 -------
It looks like only c87b39a still fails as of this writing, but the 3 mentioned
tests (c37105a, c46051a, c87b39a) use a common pattern, namely discriminated
record types with fixed size and associated subtypes:
TYPE S IS (M, F);
TYPE R (D : S) is RECORD NULL; END RECORD;
SUBTYPE M1 IS R(M);
My change was meant for discriminated record types with variable size, so the
former aggressive behavior of aliasing_component_refs_p (i.e. returning false
despite same alias set) has been restored with fixed size:
P15b_5 = (struct c87b39a__m1 * const) D.1513_3;
P15b.8_6 = (struct c87b39a__r &) P15b_5;
# .MEM_19 = VDEF <.MEM_16>
P15b.8_6->d = 0;
# VUSE <.MEM_19>
D.1515_7 = P15b_5->d;
Deleted dead store 'P15b.8_6->d = 0;
We might be able to save the day with the help of TYPE_CANONICAL in this case
since the size is fixed.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43096
More information about the Gcc-bugs
mailing list