extern int _S_goo;

struct S {
  int goo() const {
    return *(int *)((char *)this + (unsigned)&_S_goo);
  }

  void setGoo(int i) {
    *(int *)((char *)this + (unsigned)&_S_goo) = i;
  }
};

int foo(int i, int j) {
  S s;
  s.setGoo(i);
  S t;
  t.setGoo(j);
  return s.goo() * t.goo();
}
