1  struct A {
       2    long a;
       3  };
       4  
       5  static inline void foo(struct A *x)
       6  {
       7    __asm__ __volatile__("" : "+m"(x->a) : "r"(x) : "memory", "cc");
       8  }
       9  
      10  static inline void bar(struct A *x)
      11  {
      12    foo(x);
      13  }
      14  
      15  struct B { char buf[640]; struct A a; };
      16  struct B b[32];
      17  
      18  int 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  }