> 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);
}

Reply via email to