aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-eh.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2014-02-20 09:00:23 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2014-02-20 09:00:23 +0000
commit25fe40b0f2eb747003f2d83831abcc9585bc30e9 (patch)
tree22180310c1223a20243f3fe395becb7dfd019a54 /gcc/tree-eh.c
parent1f58214aa2ce73f903a14a55d17ec7ac93f6c385 (diff)
downloadgcc-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.c5
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)