/* PR target/91102 */ /* { dg-do compile } */ /* { dg-options "-O2" } */ int foo (long d, long l) { register long e asm ("x1") = d; register long f asm("x2") = l; asm ("" : : "r" (e), "r" (f)); return 3; } struct T { int i; int j; }; union S { long h; struct T t; }; void bar (union S b) { while (1) { union S c = b; c.t.j++; b.h = foo (b.h, c.h); } }