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  <[EMAIL PROTECTED]>

        * 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
--

Reply via email to