Between: 146303 => http://gcc.gnu.org/ml/gcc-testresults/2009-04/msg01859.html 146339 => http://gcc.gnu.org/ml/gcc-testresults/2009-04/msg01961.html The following tests started failing on the -m32 run: FAIL: gcc.target/i386/cleanup-1.c execution test FAIL: gnat.dg/aliased_prefix_accessibility.adb execution test FAIL: gnat.dg/conv_bug.adb execution test FAIL: gnat.dg/curr_task.adb execution test FAIL: gnat.dg/iprot_test.adb execution test FAIL: gnat.dg/missing_acc_check.adb execution test FAIL: gnat.dg/not_null.adb execution test FAIL: gnat.dg/test_enum_io.adb execution test FAIL: gnat.dg/test_overflow_sum.adb execution test
r146313 works and r146314 fails the 8 gnat.dg tests: r146314 | rguenth | 2009-04-18 15:02:00 +0200 (Sat, 18 Apr 2009) | 11 lines 2009-04-18 Richard Guenther <rguenther@suse.de> PR middle-end/39804 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ... (fold_stmt): ... this and ... (fold_stmt_inplace): ... this. (fold_stmt_1): Fold references in calls and asms. * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt. * gcc.target/i386/pr39804.c: New testcase.
*** Bug 39816 has been marked as a duplicate of this bug. ***
This is caused by revision 146322: http://gcc.gnu.org/ml/gcc-cvs/2009-04/msg00959.html I also saw FAIL: gcc.target/i386/cleanup-2.c execution test on Linux/Intel64.
Apparently, there are 2 bugs. I will reopen 39816 for gcc.target/i386/cleanup-1.c.
Any hint on what happens? My Ada skills are rather weak.
Works for me on i686-linux.
For me with -m32: 146313: OK 146314: FAIL 146322: OK I'm rebuilding 146313 and 146314 and try to diff what changes
I made a procedural mistake above, the right FAIL point is: 146321: OK 146322: FAIL diff: +2009-04-18 Jan Hubicka <jh@suse.cz> + + * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt): + Set nothrow flag. + * cgraph.h (struct function): Reduce loop_nest to 30 bits; add + can_throw_external flag. + * ipa-reference.c (ipa_utils_reduced_inorder): Update call. + * ipa-pure-const.c (ignore_edge): New function. + (propagate): Compute order for NOTHROW computation; set NOTHROWs + only over can_throw_external edges. + (local_pure_const): Add nothrow flag. + * ipa-utils.c (searchc): Add ignore_edge callback. + (ipa_utils_reduced_inorder): Add ignore_edge callback. + * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype. + (set_nothrow_function_flags): Update cgraph. + * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode. + To reproduce on a simple test case: BUILD=/some/where SRC=/some/whereelse $BUILD/gcc/gnatmake -f -g -m32 --GCC=$BUILD/gcc/xgcc --GNATLINK=$BUILD/gcc/gnatlink --GNATBIND=$BUILD/gcc/gnatbind --RTS=$BUILD/x86_64-unknown-linux-gnu/32/libada/ $SRC/gcc/testsuite/gnat.dg/not_null.adb -cargs -B$BUILD/gcc -largs -B$BUILD/gcc ./not_null This will raise an exception which means the main program exception handler does not receive the exception. This was likely fixed by: 2009-04-19 Jan Hubicka <jh@suse.cz> * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper cfun. (dump_cgraph_node): Dump can throw external flag. * ipa-pure-const.c (propagate): Fix propagation of nothrow flags. I will confirm later on.
Confirmed, Jan Hubicka second patch fixed the issue: 146344: FAIL 146349: OK My apologies to Richard :)