Commit 04be6ff5 by Jakub Jelinek

re PR middle-end/36191 (can't use complex in a eh region if non-call-exceptions is enabled)

	PR c++/36191
	* tree-complex.c (expand_complex_libcall): Call
	maybe_clean_or_replace_eh_stmt and gimple_purge_dead_eh_edges
	instead of passing true as 3rd argument to gsi_replace.

	* g++.dg/torture/pr36191.C: New test.

From-SVN: r142950
parent 67d0afe9
2008-12-28 Uros Bizjak <ubizjak@gmail.com>
2008-12-29 Jakub Jelinek <jakub@redhat.com>
PR c++/36191
* tree-complex.c (expand_complex_libcall): Call
maybe_clean_or_replace_eh_stmt and gimple_purge_dead_eh_edges
instead of passing true as 3rd argument to gsi_replace.
2008-12-28 Uros Bizjak <ubizjak@gmail.com>
PR middle-end/38652
* dse.c: Include target.h.
2008-12-29 Jakub Jelinek <jakub@redhat.com>
PR c++/36191
* g++.dg/torture/pr36191.C: New test.
2008-12-15 Hariharan Sandanagobalane <hariharan@picochip.com>
* gcc.c-torture/execute/builtins/fprintf.x: Disable test for
......
// PR c++/36191
// { dg-do compile }
// { dg-options "-fnon-call-exceptions" }
__complex__ double
foo (__complex__ double x, double y)
{
try
{
return x / y;
}
catch (char *s)
{
return x;
}
}
......@@ -953,10 +953,10 @@ expand_complex_libcall (gimple_stmt_iterator *gsi, tree ar, tree ai,
enum machine_mode mode;
enum built_in_function bcode;
tree fn, type, lhs;
gimple stmt;
gimple old_stmt, stmt;
stmt = gsi_stmt (*gsi);
lhs = gimple_assign_lhs (stmt);
old_stmt = gsi_stmt (*gsi);
lhs = gimple_assign_lhs (old_stmt);
type = TREE_TYPE (lhs);
mode = TYPE_MODE (type);
......@@ -973,7 +973,10 @@ expand_complex_libcall (gimple_stmt_iterator *gsi, tree ar, tree ai,
stmt = gimple_build_call (fn, 4, ar, ai, br, bi);
gimple_call_set_lhs (stmt, lhs);
update_stmt (stmt);
gsi_replace (gsi, stmt, true);
gsi_replace (gsi, stmt, false);
if (maybe_clean_or_replace_eh_stmt (old_stmt, stmt))
gimple_purge_dead_eh_edges (gsi_bb (*gsi));
if (gimple_in_ssa_p (cfun))
{
......
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