From 06be917325903b12e7d679c65c9213b7880f3f9f Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 14 Jan 2000 20:51:04 +0000 Subject: If RTL checking is enabled, make sure that emit_insn is not used to emit a jump insn. From-SVN: r31420 --- gcc/ChangeLog | 8 ++++++++ gcc/emit-rtl.c | 11 +++++++++++ gcc/jump.c | 2 +- 3 files changed, 20 insertions(+), 1 deletion(-) (limited to 'gcc') 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 + + * 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 * 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; } diff --git a/gcc/jump.c b/gcc/jump.c index 1e93771..2edd923 100644 --- a/gcc/jump.c +++ b/gcc/jump.c @@ -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 -- cgit v1.1