http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49039
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-05-18 16:04:51 UTC --- BTW, on the trunk it isn't really fixed, but actually made even worse. Not only is the _126 == 0 test optimized into false, but additionally the test above call to abort is optimized away too. So, if main calls Test (":-"); instead of Test ("-"); (then the testcase should abort rather than succeed), then for trunk with -O2 it incorrectly exits with 0 status.