diff options
author | Richard Guenther <rguenther@suse.de> | 2010-09-07 12:27:45 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2010-09-07 12:27:45 +0000 |
commit | f5e5b46c4b1720ef7ad0971df215885e2429e41c (patch) | |
tree | bcb021abf33e8bd3d7b7ec7509c879a30427df66 /gcc/tree-eh.c | |
parent | c9d6130e06b8c702faa07071737afa081c008c69 (diff) | |
download | gcc-f5e5b46c4b1720ef7ad0971df215885e2429e41c.zip gcc-f5e5b46c4b1720ef7ad0971df215885e2429e41c.tar.gz gcc-f5e5b46c4b1720ef7ad0971df215885e2429e41c.tar.bz2 |
re PR middle-end/45569 (ICE: verify_stmts failed: statement marked for throw in middle of block with -fnon-call-exceptions)
2010-09-07 Richard Guenther <rguenther@suse.de>
PR middle-end/45569
* tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
nor CONSTRUCTOR can trap.
* tree-complex.c (update_complex_assignment): Update EH info.
* g++.dg/eh/pr45569.C: New testcase.
From-SVN: r163947
Diffstat (limited to 'gcc/tree-eh.c')
-rw-r--r-- | gcc/tree-eh.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/tree-eh.c b/gcc/tree-eh.c index 66fee8e..2174276 100644 --- a/gcc/tree-eh.c +++ b/gcc/tree-eh.c @@ -2334,6 +2334,11 @@ operation_could_trap_helper_p (enum tree_code op, return true; return false; + case COMPLEX_EXPR: + case CONSTRUCTOR: + /* Constructing an object cannot trap. */ + return false; + default: /* Any floating arithmetic may trap. */ if (fp_operation && flag_trapping_math) |