aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2002-04-25 19:09:21 -0700
committerRichard Henderson <rth@gcc.gnu.org>2002-04-25 19:09:21 -0700
commit28ce94d46b9b885cc01f1649bc545b6978e033d0 (patch)
tree4a931fb3b190e74b7b06146ab1b95ce028e29ffc /gcc
parent6bfd0c63fe2dd008297767295656c24048475a3f (diff)
downloadgcc-28ce94d46b9b885cc01f1649bc545b6978e033d0.zip
gcc-28ce94d46b9b885cc01f1649bc545b6978e033d0.tar.gz
gcc-28ce94d46b9b885cc01f1649bc545b6978e033d0.tar.bz2
re PR c/2035 (ICE in extract_bit_field, at expmed.c:1115)
PR c/2035 * expmed.c (extract_bit_field): Fall through to generic code rather than aborting on subreg special case. From-SVN: r52777
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/expmed.c3
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f1df34d..76182b9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2002-04-25 Richard Henderson <rth@redhat.com>
+
+ PR c/2035
+ * expmed.c (extract_bit_field): Fall through to generic code rather
+ than aborting on subreg special case.
+
2002-04-25 David S. Miller <davem@redhat.com>
* config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Add back check
diff --git a/gcc/expmed.c b/gcc/expmed.c
index e60ccbf..5a4c24e 100644
--- a/gcc/expmed.c
+++ b/gcc/expmed.c
@@ -1144,7 +1144,7 @@ extract_bit_field (str_rtx, bitsize, bitnum, unsignedp,
/* Else we've got some float mode source being extracted into
a different float mode destination -- this combination of
subregs results in Severe Tire Damage. */
- abort ();
+ goto no_subreg_mode_swap;
}
if (GET_CODE (op0) == REG)
op0 = gen_rtx_SUBREG (mode1, op0, byte_offset);
@@ -1155,6 +1155,7 @@ extract_bit_field (str_rtx, bitsize, bitnum, unsignedp,
return convert_to_mode (tmode, op0, unsignedp);
return op0;
}
+ no_subreg_mode_swap:
/* Handle fields bigger than a word. */