/* { dg-do compile } */ /* { dg-options "-mthumb -O2" } */ /* { dg-require-effective-target arm_thumb1_ok } */ /* { dg-final { scan-assembler-not "stmia\[\\t \]*r3!\[^\\n]*r3" } } */ typedef struct { void *t1, *t2, *t3; } z; extern volatile int y; static inline void foo(z *x) { x->t1 = &x->t2; x->t2 = ((void *)0); x->t3 = &x->t1; } extern z v; void bar (void) { y = 0; foo(&v); }