diff options
Diffstat (limited to 'gcc/rtlanal.c')
-rw-r--r-- | gcc/rtlanal.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c index 3692c16..4b71b1e 100644 --- a/gcc/rtlanal.c +++ b/gcc/rtlanal.c @@ -2660,8 +2660,11 @@ tablejump_p (const_rtx insn, rtx *labelp, rtx *tablep) { rtx label, table; - if (JUMP_P (insn) - && (label = JUMP_LABEL (insn)) != NULL_RTX + if (!JUMP_P (insn)) + return false; + + label = JUMP_LABEL (insn); + if (label != NULL_RTX && !ANY_RETURN_P (label) && (table = next_active_insn (label)) != NULL_RTX && JUMP_TABLE_DATA_P (table)) { |