// { dg-do run  }
// GROUPS passed unions
// This is fixed by finish_anon_union doing a string_cst_equal check on
// the DECL_SIZE of the decls, instead of comparing the DECL_SIZE nodes.
// The compiler currently fails to allocate space for the static union.
     unsigned
     hash(const double d)
     {
        static union {
           unsigned asint[2];
           double asdouble;
        };
        asdouble = d;
        return asint[0] ^ asint[1];
     }
int main ()
{
  hash (3.1415);
}