This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
GCC optimization bug?
- From: anubhav <anubhav at cse dot iitb dot ac dot in>
- To: gcc-help <gcc-help at gcc dot gnu dot org>
- Date: Tue, 17 Jan 2017 15:45:05 +0530
- Subject: GCC optimization bug?
- Authentication-results: sourceware.org; auth=none
Hello,
The following code prints different results when run with different
optimization levels (O0 vs O2).
int main() {
int i = INT_MAX - 5;
int j = 0;
for (; i <= INT_MAX - 2; i += 3) {
if (i <= 1) {
j = 1;
}
}
printf("%d",j);
return 0;
}
Commands used :
gcc -O0 -fno-strict-overflow bug.c -o bug # Output is 1
gcc -O2 -fno-strict-overflow bug.c -o bug # Output is 0
GCC version :
gcc version 6.2.0 20160901 (Ubuntu 6.2.0-3ubuntu11~16.04)
The expected output is 1 since the value of i overflows once. Is this
an optimization bug?
Thanks and regards,
Anubhav