[Bug c++/56672] New: Bad optimization
nroets at gmail dot com
gcc-bugzilla@gcc.gnu.org
Thu Mar 21 08:56:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56672
Bug #: 56672
Summary: Bad optimization
Classification: Unclassified
Product: gcc
Version: 4.6.3
Status: UNCONFIRMED
Severity: minor
Priority: P3
Component: c++
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: nroets@gmail.com
Created attachment 29704
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=29704
g++ -v output
For background see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36996
When compiled with -Os, the program below does not terminate.
Here is my opinion: `mask` becomes undefined and it cause an unrelated variable
`maskI' to become undefined. If that is a valid compilation of the program, it
would make it very hard for programmers to reason about correctness.
#include <stdio.h>
int main ()
{
int mask = 0, maskI;
for (maskI = 0; maskI < 4; maskI++) {
printf ("y %d\n", mask);
mask += 0x55555555;
}
return 0;
}
More information about the Gcc-bugs
mailing list