[Bug tree-optimization/92152] [10 Regression] Wrong code (Resurrection of PR53663)
hubicka at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Feb 24 20:17:00 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92152
--- Comment #14 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
Created attachment 47901
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=47901&action=edit
another related testcase
> But that means we now miscompile the later two tests.
Good point, those are my testcases :) I have missed it is scan-not. I will make
updated patch.
I am attaching related testcase that reads same data using two different union
fields relying on C++ initial sequence rule (as Mark Williams explained me).
"In a standard-layout union with an active member of non-union class type T1,
it is permitted to read a non-static data member m of another union member of
non-union class type T2 provided m is part of the common initial sequence of T1
and T2 (except that reading a volatile member through non-volatile glvalue is
undefined)."
This seems to indicate that we really can not disambiguate after union
reference by access path unless we implement the "common initial sequence"
check
More information about the Gcc-bugs
mailing list