This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
fix 8451
- From: Aldy Hernandez <aldyh at redhat dot com>
- To: gcc-patches at gcc dot gnu dot org
- Date: Mon, 4 Nov 2002 10:40:08 -0800
- Subject: fix 8451
The following patch fixes the bug:
http://gcc.gnu.org/ml/gcc-patches/2002-04/msg01546.html
Richard said it was ok to back port it to 3.2.
Committed to 3.2 branch.
2002-11-04 Aldy Hernandez <aldyh@redhat.com>
Backport patch to fix PR c/8451.
2002-04-25 Richard Henderson <rth@redhat.com>
* expmed.c (extract_bit_field): Fall through to generic code rather
than aborting on subreg special case.
Index: expmed.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/expmed.c,v
retrieving revision 1.108.2.5
diff -c -p -r1.108.2.5 expmed.c
*** expmed.c 24 Jun 2002 16:50:42 -0000 1.108.2.5
--- expmed.c 4 Nov 2002 18:36:43 -0000
*************** extract_bit_field (str_rtx, bitsize, bit
*** 1144,1150 ****
/* 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 ();
}
if (GET_CODE (op0) == REG)
op0 = gen_rtx_SUBREG (mode1, op0, byte_offset);
--- 1144,1150 ----
/* 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. */
! goto no_subreg_mode_swap;
}
if (GET_CODE (op0) == REG)
op0 = gen_rtx_SUBREG (mode1, op0, byte_offset);
*************** extract_bit_field (str_rtx, bitsize, bit
*** 1155,1160 ****
--- 1155,1161 ----
return convert_to_mode (tmode, op0, unsignedp);
return op0;
}
+ no_subreg_mode_swap:
/* Handle fields bigger than a word. */