With today's 3.4.x CVS, when configured with --enable- checking=misc,tree,rtl,rtlflag,gc --enable-languages=c,objc,c++,f77,java -- enable-multilib=no I get an RTL checking failure on x86_64-unknown-linux-gnu in gcc.dg/titype-1.c:
gcc.dg/titype-1.c:21: internal compiler error: RTL check: expected elt 0 type 'E' or 'V', have 'i' (rtx reg) in ix86_va_arg, at config/i386/i386.c:3331 To reproduce, run this command: cc1 -fpreprocessed titype-1.i -quiet -dumpbase titype-1.c -mtune=k8 -ansi - auxbase titype-1 -pedantic-errors -ansi -version -o titype-1.s ----------cut here----------------- # 1 "/tmp/kg/34/egcc-3.4-CVS20050130/gcc/testsuite/gcc.dg/titype-1.c" # 1 "<built-in>" # 1 "<command line>" # 1 "/tmp/kg/34/egcc-3.4-CVS20050130/gcc/testsuite/gcc.dg/titype-1.c" typedef int TItype __attribute__ ((mode (TI))); # 1 "/tmp/kg/34/build/gcc/include/stdarg.h" 1 3 4 # 43 "/tmp/kg/34/build/gcc/include/stdarg.h" 3 4 typedef __builtin_va_list __gnuc_va_list; # 105 "/tmp/kg/34/build/gcc/include/stdarg.h" 3 4 typedef __gnuc_va_list va_list; # 11 "/tmp/kg/34/egcc-3.4-CVS20050130/gcc/testsuite/gcc.dg/titype-1.c" 2 extern void abort(void); void foo(int i, ...) { TItype q; va_list va; __builtin_va_start(va,i); q = __builtin_va_arg(va,TItype); __builtin_va_end(va); if (q != 5) abort(); } int main(void) { TItype q = 5; foo(1, q); return 0; } -- Summary: [3.4] RTL checking failure in gcc.dg/titype-1.c Product: gcc Version: 3.4.4 Status: UNCONFIRMED Severity: normal Priority: P2 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: ghazi at gcc dot gnu dot org CC: gcc-bugs at gcc dot gnu dot org GCC build triplet: x86_64-unknown-linux-gnu GCC host triplet: x86_64-unknown-linux-gnu GCC target triplet: x86_64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19750