/* { dg-do run } */ typedef __INT32_TYPE__ int32_t; typedef __INT64_TYPE__ int64_t; struct X { int32_t i; int32_t j; }; void foo (int64_t *z) { ((struct X *)z)->i = 0x05060708; ((struct X *)z)->j = 0x01020304; *z = 0x0102030405060708; } int main() { int64_t l = 0; int64_t *p; asm ("" : "=r" (p) : "0" (&l)); foo (p); if (l != 0x0102030405060708) __builtin_abort (); return 0; }