1struct A {
2  long a;
3};
4
5static inline void foo(struct A *x)
6{
7  __asm__ __volatile__("" : "+m"(x->a) : "r"(x) : "memory", "cc");
8}
9
10static inline void bar(struct A *x)
11{
12  foo(x);
13}
14
15struct B { char buf[640]; struct A a; };
16struct B b[32];
17
18int baz(void)
19{
20  int i;
21  struct B *j;
22  for (i = 1; i < 32; i++)
23    {
24      j = &b[i];
25      bar(&j->a);
26    }
27  return 0;
28}
29