[Bug tree-optimization/104754] gcc.dg/pr102892-1.c FAILs
aldyh at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Mar 4 12:17:15 GMT 2022
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104754
--- Comment #3 from Aldy Hernandez <aldyh at gcc dot gnu.org> ---
Upon closer inspection, evrp in GCC11 and mainline are generating slightly
different code which keeps FRE from cleaning this up in mainline.
Mainline is transforming the conditional here:
<bb 8> :
# c_3 = PHI <0(2), c_2(7)>
# a_4 = PHI <a_9(D)(2), a_12(7)>
if (a_4 <= 0)
goto <bb 6>; [INV]
else
goto <bb 9>; [INV]
...into a_4 != 1.
This doesn't make a lot of sense until you realize that the testcase is
invoking undefined behavior. Well, it still doesn't make sense, but "a" is
uninitialized in the test:
for (long a; a < 1; ++a)
We should either initialize a to 0, or remove the test altogether.
More information about the Gcc-bugs
mailing list