On Linux/x86-64, revision 162661 gave FAIL: c-c++-common/uninit-17.c (test for warnings, line 12) FAIL: c-c++-common/uninit-17.c (test for warnings, line 12) FAIL: c-c++-common/uninit-17.c -Wc++-compat (test for warnings, line 12) FAIL: c-c++-common/uninit-17.c -Wc++-compat (test for warnings, line 12) FAIL: c-c++-common/uninit-17.c -Wc++-compat (test for excess errors) FAIL: c-c++-common/uninit-17.c -Wc++-compat (test for excess errors) FAIL: c-c++-common/uninit-17.c (test for excess errors) FAIL: c-c++-common/uninit-17.c (test for excess errors) Revision 162652 is OK.
It is caused by revision 162653: http://gcc.gnu.org/ml/gcc-cvs/2010-07/msg01007.html
The problem is that before the ivopt patch, the ivopt patch introduced a iv candidate that is unconditionally initialized with b: ivtmp_xxx = b (D); After the patch, this assignment no longer exists, and the use of b in the test is via a PHI def -- thus the warning becomes 'may be uninitialized'. Will fix the test case. David
Fixed in r162687
It isn't fixed. Revision 162688 gave FAIL: c-c++-common/uninit-17.c (test for warnings, line 14) FAIL: c-c++-common/uninit-17.c -Wc++-compat (test for warnings, line 14)
In fact, revision 162688 gave: FAIL: c-c++-common/uninit-17.c (test for warnings, line 12) FAIL: c-c++-common/uninit-17.c (test for warnings, line 14) FAIL: c-c++-common/uninit-17.c (test for excess errors) FAIL: c-c++-common/uninit-17.c -Wc++-compat (test for warnings, line 12) FAIL: c-c++-common/uninit-17.c -Wc++-compat (test for warnings, line 14) FAIL: c-c++-common/uninit-17.c -Wc++-compat (test for excess errors)
Fixed by revision 162720.