Commit 9f9ca914 by Jeff Law Committed by Jeff Law

re PR tree-optimization/47086 (ICE: verify_flow_info failed: BB 3 can not throw…

re PR tree-optimization/47086 (ICE: verify_flow_info failed: BB 3 can not throw but has an EH edge with -O -fexceptions -fnon-call-exceptions -ftrapv)


	* PR tree-optimization/47086
	* tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
	IVs from statements that might throw.

	* PR tree-optimization/47086
	* gcc.dg/pr47086.c: New test.

From-SVN: r168659
parent a67e7daa
2011-01-11 Jeff Law <law@redhat.com>
* PR tree-optimization/47086
* tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
IVs from statements that might throw.
2011-01-10 Jan Hubicka <jh@suse.cz>
PR lto/45375
......
2011-01-11 Jeff Law <law@redhat.com>
* PR tree-optimization/47086
* gcc.dg/pr47086.c: New test.
2011-01-11 Jason Merrill <jason@redhat.com>
PR c++/46658
......
/* { dg-do compile } */
/* { dg-options "-O -fexceptions -fnon-call-exceptions -ftrapv" } */
void
foo ()
{
int n = 0;
while (1)
{
int i[n % 1];
n++;
}
}
/* Induction variable optimizations.
Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
Free Software Foundation, Inc.
This file is part of GCC.
......@@ -1102,6 +1102,12 @@ find_givs_in_stmt_scev (struct ivopts_data *data, gimple stmt, affine_iv *iv)
|| contains_abnormal_ssa_name_p (iv->step))
return false;
/* If STMT could throw, then do not consider STMT as defining a GIV.
While this will suppress optimizations, we can not safely delete this
GIV and associated statements, even if it appears it is not used. */
if (stmt_could_throw_p (stmt))
return false;
return true;
}
......
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