bootstrap of trunk fails for x86-64
Roger Sayle
roger@eyesopen.com
Thu Jun 29 21:06:00 GMT 2006
On Thu, 29 Jun 2006, Andreas Jaeger wrote:
> Current svn does not build, it fails for me with:
> build/genpreds: Internal error: RTL check: expected elt 0 type 'e' or 'u',
> have 's' (rtx match_code) in write_match_code_switch, at genpreds.c:546
>
> Roger, is this is a result of your changes?
Grr! Sorry again for the second "typo" breakage in what should have been
a very simple patch. Although I can't reproduce the above failure on my
x86_64 box (or any of the other systems I tested this patch on), the RTL
check is diagnosing a real problem that I'm sorry I zoned on myself.
Fixed with the following patch. Committed to mainline as obvious as
revision 115076, after a full 3-stage bootstrap of the gcc/ directory
on x86_64-unknown-linux-gnu.
My apologies yet again for the breakage, and especially to Mark.
2006-06-29 Roger Sayle <roger@eyesopen.com>
* genpreds.c (write_match_code_switch): Correctly use XSTR instead
of XEXP to extract the operands of a MATCH_CODE rtx.
Index: genpreds.c
===================================================================
*** genpreds.c (revision 115074)
--- genpreds.c (working copy)
*************** write_predicate_expr (rtx exp)
*** 543,550 ****
static void
write_match_code_switch (rtx exp)
{
! const char *codes = (const char *) XEXP (exp, 0);
! const char *path = (const char *) XEXP (exp, 1);
const char *code;
fputs (" switch (GET_CODE (", stdout);
--- 543,550 ----
static void
write_match_code_switch (rtx exp)
{
! const char *codes = XSTR (exp, 0);
! const char *path = XSTR (exp, 1);
const char *code;
fputs (" switch (GET_CODE (", stdout);
Roger
--
More information about the Gcc-patches
mailing list