1 /* PR target/78904 */ 2 /* { dg-do assemble { target { ! ia32 } } } */ 3 /* { dg-options "-O2" } */ 4 5 typedef __SIZE_TYPE__ size_t; 6 7 struct S1 8 { 9 unsigned char pad1; 10 unsigned char val; 11 unsigned short pad2; 12 unsigned int pad3; 13 }; 14 15 extern unsigned char t[256]; 16 foo(struct S1 a,size_t i)17void foo (struct S1 a, size_t i) 18 { 19 register size_t _i __asm ("r10") = i; 20 21 asm volatile ("" : "+r" (_i)); 22 t[_i] = a.val; 23 } 24