[Bug middle-end/83477] New: [8 Regression] Wrong code w/ -O1
asolokha at gmx dot com
gcc-bugzilla@gcc.gnu.org
Tue Dec 19 06:24:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83477
Bug ID: 83477
Summary: [8 Regression] Wrong code w/ -O1
Product: gcc
Version: 8.0
Status: UNCONFIRMED
Keywords: wrong-code
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: asolokha at gmx dot com
Target Milestone: ---
gcc-8.0.0-alpha20171217 snapshot (r255766) produces wrong code when compiling
the following snippet w/ -O1:
int yf = 0;
void
pl (int q5, int nd)
{
unsigned int hp = q5;
int zx = (q5 == 0) ? hp : (hp / q5);
yf = ((nd < 2) * zx != 0) ? nd : 0;
}
int
main (void)
{
pl (1, !yf);
if (yf != 1)
__builtin_abort ();
return 0;
}
% gcc-8.0.0-alpha20171217 -O0 -o good l2scdk9e.c && ./good
% echo $?
0
% gcc-8.0.0-alpha20171217 -O1 -o bad l2scdk9e.c && ./bad
zsh: abort (core dumped) ./bad
More information about the Gcc-bugs
mailing list