/* { dg-do compile } */
/* { dg-options "-O2" } */
int foo();
int i;
struct A
{
  ~A() { if (this != (A*)(&i)) foo(); }
};
struct B
{
  A a1, a2, a3, a4;
  ~B() { foo(); }
};
B b;
/* { dg-do compile } */
/* { dg-options "-O2" } */
int foo();
int i;
struct A
{
  ~A() { if (this != (A*)(&i)) foo(); }
};
struct B
{
  A a1, a2, a3, a4;
  ~B() { foo(); }
};
B b;