diff options
author | Richard Guenther <rguenther@suse.de> | 2012-01-30 13:40:24 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2012-01-30 13:40:24 +0000 |
commit | ab448cfa68bc2686ba6fcf54e1ee40acd5e403a8 (patch) | |
tree | f01416095214e10ee34cb19e2462b338af814a06 /gcc/tree-optimize.c | |
parent | f8698b375afc829d817ba3fc3ab38929479a7222 (diff) | |
download | gcc-ab448cfa68bc2686ba6fcf54e1ee40acd5e403a8.zip gcc-ab448cfa68bc2686ba6fcf54e1ee40acd5e403a8.tar.gz gcc-ab448cfa68bc2686ba6fcf54e1ee40acd5e403a8.tar.bz2 |
re PR middle-end/52045 (ICE: in execute_todo, at passes.c:1748 with -O3 -ftracer -fno-tree-ccp -fno-tree-copy-prop -fno-tree-dce and stpcpy_chk())
2012-01-30 Richard Guenther <rguenther@suse.de>
PR tree-optimization/52045
* tree-optimize.c (execute_cleanup_cfg_post_optimizing): Update
SSA form if cfgcleanup did anything.
* gcc.dg/pr52045.c: New testcase.
From-SVN: r183722
Diffstat (limited to 'gcc/tree-optimize.c')
-rw-r--r-- | gcc/tree-optimize.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/tree-optimize.c b/gcc/tree-optimize.c index d242204..3d18d20 100644 --- a/gcc/tree-optimize.c +++ b/gcc/tree-optimize.c @@ -157,7 +157,9 @@ struct gimple_opt_pass pass_all_early_optimizations = static unsigned int execute_cleanup_cfg_post_optimizing (void) { - cleanup_tree_cfg (); + unsigned int todo = 0; + if (cleanup_tree_cfg ()) + todo |= TODO_update_ssa; maybe_remove_unreachable_handlers (); cleanup_dead_labels (); group_case_labels (); @@ -190,7 +192,7 @@ execute_cleanup_cfg_post_optimizing (void) } } } - return 0; + return todo; } struct gimple_opt_pass pass_cleanup_cfg_post_optimizing = |