[Bug c/118918] [12./13/14/15 Regression] Miscompile at -Os
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Feb 18 13:22:34 GMT 2025
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118918
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |wrong-code
Target Milestone|--- |12.5
Known to work| |7.5.0, 8.4.0
Status|UNCONFIRMED |NEW
Last reconfirmed| |2025-02-18
Ever confirmed|0 |1
CC| |jsm28 at gcc dot gnu.org
Known to fail| |10.5.0, 11.5.0, 12.4.0,
| |14.2.0, 15.0, 9.5.0
Summary|Miscompile at -Os |[12./13/14/15 Regression]
| |Miscompile at -Os
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed. Somehow we lose the 'e' initializer:
if (h != 0)
{
{
long int D.2841[1] = {2};
e = (long int *) &<<< Unknown tree: compound_literal_expr
long int D.2841[1] = {2}; >>>;
}
}
else
{
{
long int D.2842[2] = {2, 8};
e = (long int *) &<<< Unknown tree: compound_literal_expr
long int D.2842[2] = {2, 8}; >>>;
}
}
the scope of D.2841/D.2842 are at issue here. I do remember some change
in GCC extension behavior though, so this might be invalid.
More information about the Gcc-bugs
mailing list