diff options
author | Richard Biener <rguenther@suse.de> | 2014-02-20 09:00:23 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2014-02-20 09:00:23 +0000 |
commit | 25fe40b0f2eb747003f2d83831abcc9585bc30e9 (patch) | |
tree | 22180310c1223a20243f3fe395becb7dfd019a54 /gcc/tree-eh.c | |
parent | 1f58214aa2ce73f903a14a55d17ec7ac93f6c385 (diff) | |
download | gcc-25fe40b0f2eb747003f2d83831abcc9585bc30e9.zip gcc-25fe40b0f2eb747003f2d83831abcc9585bc30e9.tar.gz gcc-25fe40b0f2eb747003f2d83831abcc9585bc30e9.tar.bz2 |
re PR middle-end/60221 (gcc -fexceptions generates unnecessary cleanup code)
2014-02-20 Richard Biener <rguenther@suse.de>
PR middle-end/60221
* tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
regions at -O0.
From-SVN: r207937
Diffstat (limited to 'gcc/tree-eh.c')
-rw-r--r-- | gcc/tree-eh.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/tree-eh.c b/gcc/tree-eh.c index 06941cd..14ed52a 100644 --- a/gcc/tree-eh.c +++ b/gcc/tree-eh.c @@ -4557,11 +4557,12 @@ execute_cleanup_eh_1 (void) remove_unreachable_handlers (); /* Watch out for the region tree vanishing due to all unreachable. */ - if (cfun->eh->region_tree && optimize) + if (cfun->eh->region_tree) { bool changed = false; - changed |= unsplit_all_eh (); + if (optimize) + changed |= unsplit_all_eh (); changed |= cleanup_all_empty_eh (); if (changed) |