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