diff options
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/emit-rtl.c | 11 | ||||
-rw-r--r-- | gcc/jump.c | 2 |
3 files changed, 20 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fecb80c..6be4d2c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2000-01-14 Nick Clifton <nickc@cygnus.com> + + * emit-rtl.c (emit_insn): If checking is enabled, make sure + that this function has not been used to emit a jump + instruction. + + * jump.c (return_jump_1): Cope with being passed a null rtx. + 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> * eh-common.h: PROTO -> PARAMS. diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 304e6d4..3ade3c6 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -2948,6 +2948,17 @@ emit_insn (pattern) add_insn (insn); } +#ifdef ENABLE_RTL_CHECKING + if (insn + && (returnjump_p (insn) + || (GET_CODE (insn) == SET + && SET_DEST (insn) == pc_rtx))) + { + warning ("ICE: emit_insn used where emit_jump_insn needed:\n"); + debug_rtx (insn); + } +#endif + return insn; } @@ -3757,7 +3757,7 @@ returnjump_p_1 (loc, data) void *data ATTRIBUTE_UNUSED; { rtx x = *loc; - return GET_CODE (x) == RETURN; + return x && GET_CODE (x) == RETURN; } int |