aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorNick Clifton <nickc@cygnus.com>2000-01-14 20:51:04 +0000
committerNick Clifton <nickc@gcc.gnu.org>2000-01-14 20:51:04 +0000
commit06be917325903b12e7d679c65c9213b7880f3f9f (patch)
tree5ab565af0b5e42f047abbefe081697352492687d /gcc
parent711d877c9e4f9b3250bc50e54c672b40840d574a (diff)
downloadgcc-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/ChangeLog8
-rw-r--r--gcc/emit-rtl.c11
-rw-r--r--gcc/jump.c2
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;
}
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