1 /* { dg-do run } */
2
3 typedef __INT32_TYPE__ int32_t;
4 typedef __INT64_TYPE__ int64_t;
5 struct X { int32_t i; int32_t j; };
6 void foo (int64_t *z)
7 {
8 ((struct X *)z)->i = 0x05060708;
9 ((struct X *)z)->j = 0x01020304;
10 *z = 0x0102030405060708;
11 }
12
13 int main()
14 {
15 int64_t l = 0;
16 int64_t *p;
17 asm ("" : "=r" (p) : "0" (&l));
18 foo (p);
19 if (l != 0x0102030405060708)
20 __builtin_abort ();
21 return 0;
22 }