[Bug c/67629] bogus -Wreturn-type in a function with tautological if-else
marxin at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Oct 19 07:16:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67629
--- Comment #5 from Martin Liška <marxin at gcc dot gnu.org> ---
That's for CC. However as the warning is triggered early, we don't have
optimized IL:
(gdb) p debug_function(cfun->decl, 0)
foo (_Bool a)
{
int D.1836;
<bb 2> [0.00%] [count: INV]:
if (a != 0)
goto <bb 3>; [INV] [count: INV]
else
goto <bb 4>; [INV] [count: INV]
<bb 3> [0.00%] [count: INV]:
D.1836 = 0;
// predicted unlikely by early return (on trees) predictor.
goto <bb 7>; [INV] [count: INV]
<bb 4> [0.00%] [count: INV]:
_1 = ~a;
if (_1 != 0)
goto <bb 5>; [INV] [count: INV]
else
goto <bb 6>; [INV] [count: INV]
<bb 5> [0.00%] [count: INV]:
D.1836 = 1;
// predicted unlikely by early return (on trees) predictor.
goto <bb 7>; [INV] [count: INV]
<bb 6> [0.00%] [count: INV]:
return;
<bb 7> [0.00%] [count: INV]:
<L4>:
return D.1836;
}
More information about the Gcc-bugs
mailing list