summaryrefslogtreecommitdiff
path: root/gcc/recog.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/recog.c')
-rw-r--r--gcc/recog.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/recog.c b/gcc/recog.c
index bc7c712de24..bbecd5b719e 100644
--- a/gcc/recog.c
+++ b/gcc/recog.c
@@ -625,7 +625,13 @@ validate_replace_rtx_1 (loc, from, to, object)
inner_mode = SImode;
if (GET_MODE_CLASS (mode) != MODE_INT)
- abort ();
+ {
+ /* Substitute in something that we know won't be
+ recognized. */
+ to = gen_rtx_CLOBBER (GET_MODE (x), const0_rtx);
+ validate_change (object, loc, to, 1);
+ return;
+ }
if (BYTES_BIG_ENDIAN || WORDS_BIG_ENDIAN)
{