> The struct-layout-1 failures in 64-bit mode are IMHO more annoying, but
> these tests are easy to break so I'm not really worried either.
Huh, I was wrong, they are quite problematic. Testcase attached.
We have as initial RTL:
(insn 35 34 36 1 (set (mem/i:TF (plus:DI (reg/f:DI 103 virtual-stack-vars)
(const_int -5120 [0xffffffffffffec00])) [0 S16 A128])
(reg:TF 110 [ D.1221 ])) -1 (nil)
(nil))
and instantiate_virtual_regs_in_insn invokes extract_insn on it. Previously
the instantiate_virtual_regs machinery (instantiate_virtual_regs_1) would
have detected that the insn is not valid.
--
Eric Botcazou
struct S1132 {
struct{
unsigned long int b;
struct{void * d[7];}c[30];
}a[3];
char e:((((8) - 1) & 7) + 1);
struct{}f;
};
extern int fails;
void check1132va (int z, ...)
{
struct S1132 arg;
long double ld;
__builtin_va_list ap;
__builtin_va_start (ap, z);
if (__builtin_va_arg (ap, long double) != 2.0L)
++fails;
__builtin_va_end (ap);
}