summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/arm/pr49641.c
blob: 7f9b3769c1a1b6c4299be5ba0a588de33547c48d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/* { 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);
}