Commit 9939e416 by Richard Guenther Committed by Richard Biener

re PR tree-optimization/47559 (ICE: verify_stmts failed: statement marked for…

re PR tree-optimization/47559 (ICE: verify_stmts failed: statement marked for throw, but doesn't with -fnon-call-exceptions and noexcept)

2011-02-01  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/47559
	* tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
	store-motion on references that can throw.

	* g++.dg/torture/pr47559.C: New testcase.

From-SVN: r169487
parent 4a3c9687
2011-02-01 Richard Guenther <rguenther@suse.de>
PR tree-optimization/47559
* tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
store-motion on references that can throw.
2011-02-01 Bernd Schmidt <bernds@codesourcery.com>
* tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
......
2011-02-01 Richard Guenther <rguenther@suse.de>
PR tree-optimization/47559
* g++.dg/torture/pr47559.C: New testcase.
2011-02-01 Janus Weil <janus@gcc.gnu.org>
PR fortran/47565
......
// { dg-do compile }
// { dg-options "-std=c++0x -fnon-call-exceptions" }
void foo (int *k) noexcept
{
for (;;)
*k = 0;
}
......@@ -2318,6 +2318,10 @@ can_sm_ref_p (struct loop *loop, mem_ref_p ref)
|| !for_each_index (&ref->mem, may_move_till, loop))
return false;
/* If it can throw fail, we do not properly update EH info. */
if (tree_could_throw_p (ref->mem))
return false;
/* If it can trap, it must be always executed in LOOP.
Readonly memory locations may trap when storing to them, but
tree_could_trap_p is a predicate for rvalues, so check that
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment