aboutsummaryrefslogtreecommitdiff
path: root/gcc/cfgcleanup.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2004-05-27 00:30:19 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2004-05-26 22:30:19 +0000
commite4efa9715632519e202f57250b3d8954b17ac9c9 (patch)
treebcb1158ea662217e049ebecc5fd5f6753def8825 /gcc/cfgcleanup.c
parentdabbc72269ece1873a9bc9a841ed7f3577312da3 (diff)
downloadgcc-e4efa9715632519e202f57250b3d8954b17ac9c9.zip
gcc-e4efa9715632519e202f57250b3d8954b17ac9c9.tar.gz
gcc-e4efa9715632519e202f57250b3d8954b17ac9c9.tar.bz2
* cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
From-SVN: r82296
Diffstat (limited to 'gcc/cfgcleanup.c')
-rw-r--r--gcc/cfgcleanup.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/cfgcleanup.c b/gcc/cfgcleanup.c
index 10d9e96..9801b57 100644
--- a/gcc/cfgcleanup.c
+++ b/gcc/cfgcleanup.c
@@ -1938,7 +1938,9 @@ try_optimize_cfg (int mode)
&& (GET_CODE (BB_END (b)) != JUMP_INSN
|| (reload_completed
? simplejump_p (BB_END (b))
- : onlyjump_p (BB_END (b))))
+ : (onlyjump_p (BB_END (b))
+ && !tablejump_p (BB_END (b),
+ NULL, NULL))))
&& (next = merge_blocks_move (s, b, c, mode)))
{
b = next;