diff options
author | Zdenek Dvorak <dvorakz@suse.cz> | 2006-06-22 19:54:45 +0200 |
---|---|---|
committer | Zdenek Dvorak <rakdver@gcc.gnu.org> | 2006-06-22 17:54:45 +0000 |
commit | 0ef902968099b4ddb1c272eec3c4db8870f25c0d (patch) | |
tree | e2a239d938daea1acc289a43961031d9d0933e6b /gcc/cfgexpand.c | |
parent | a8fe5a30f21979b1c444c31668bf3aef157aefa3 (diff) | |
download | gcc-0ef902968099b4ddb1c272eec3c4db8870f25c0d.tar.gz |
re PR rtl-optimization/28121 (verify_flow_info failed (wrong amount of branch edges after unconditional jump 2))
PR rtl-optimization/28121
* cfgexpand.c (tree_expand_cfg): Clean EDGE_EXECUTABLE flag from
the entry edge.
* gcc.dg/pr28121.c: New test.
From-SVN: r114898
Diffstat (limited to 'gcc/cfgexpand.c')
-rw-r--r-- | gcc/cfgexpand.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c index 941cdad8681..1f43a32d77e 100644 --- a/gcc/cfgexpand.c +++ b/gcc/cfgexpand.c @@ -1580,6 +1580,8 @@ tree_expand_cfg (void) { basic_block bb, init_block; sbitmap blocks; + edge_iterator ei; + edge e; /* Some backends want to know that we are expanding to RTL. */ currently_expanding_to_rtl = 1; @@ -1623,6 +1625,11 @@ tree_expand_cfg (void) init_block = construct_init_block (); + /* Clear EDGE_EXECUTABLE on the entry edge(s). It is cleaned from the + remainining edges in expand_gimple_basic_block. */ + FOR_EACH_EDGE (e, ei, ENTRY_BLOCK_PTR->succs) + e->flags &= ~EDGE_EXECUTABLE; + FOR_BB_BETWEEN (bb, init_block->next_bb, EXIT_BLOCK_PTR, next_bb) bb = expand_gimple_basic_block (bb); |