aboutsummaryrefslogtreecommitdiff
path: root/gcc/expr.c
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2003-04-22 16:17:46 -0700
committerRichard Henderson <rth@gcc.gnu.org>2003-04-22 16:17:46 -0700
commit4da2eb6b9026e71f167204bc7ced622f44c70a1e (patch)
tree61fac5e9044077ae9018c6ffa6b7ab8c07fde408 /gcc/expr.c
parentc1238896d34055a41d31f4e5b6a9678759eb8500 (diff)
downloadgcc-4da2eb6b9026e71f167204bc7ced622f44c70a1e.zip
gcc-4da2eb6b9026e71f167204bc7ced622f44c70a1e.tar.gz
gcc-4da2eb6b9026e71f167204bc7ced622f44c70a1e.tar.bz2
re PR middle-end/8866 (Bug in switch statement code generation -- missing label)
PR 8866 * rtl.h (MEM_NOTRAP_P): New. (MEM_COPY_ATTRIBUTES): Copy it. * rtlanal.c (may_trap_p): Check it. * expr.c (do_tablejump): Set it. * doc/rtl.texi (Flags): Document it. * cfgrtl.c (try_redirect_by_replacing_jump): Revert last three changes. From-SVN: r65967
Diffstat (limited to 'gcc/expr.c')
-rw-r--r--gcc/expr.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index f87f9c9..9176c30 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -10272,6 +10272,7 @@ do_tablejump (index, mode, range, table_label, default_label)
temp = gen_reg_rtx (CASE_VECTOR_MODE);
vector = gen_rtx_MEM (CASE_VECTOR_MODE, index);
RTX_UNCHANGING_P (vector) = 1;
+ MEM_NOTRAP_P (vector) = 1;
convert_move (temp, vector, 0);
emit_jump_insn (gen_tablejump (temp, table_label));