diff options
author | Nick Clifton <nickc@cygnus.com> | 2000-01-14 20:51:04 +0000 |
---|---|---|
committer | Nick Clifton <nickc@gcc.gnu.org> | 2000-01-14 20:51:04 +0000 |
commit | 06be917325903b12e7d679c65c9213b7880f3f9f (patch) | |
tree | 5ab565af0b5e42f047abbefe081697352492687d /gcc | |
parent | 711d877c9e4f9b3250bc50e54c672b40840d574a (diff) | |
download | gcc-06be917325903b12e7d679c65c9213b7880f3f9f.zip gcc-06be917325903b12e7d679c65c9213b7880f3f9f.tar.gz gcc-06be917325903b12e7d679c65c9213b7880f3f9f.tar.bz2 |
If RTL checking is enabled, make sure that emit_insn is not used to emit a
jump insn.
From-SVN: r31420
Diffstat (limited to 'gcc')
-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 |