// { dg-do assemble  }

int f1 () {
  struct A {
    A() : b (2) { }
    int fred () { return b.hi_mom; }
    struct B {
      int hi_mom;
      B (int a) { hi_mom = a; }
    };
    B b;
  };
  A aa;
  return aa.fred();
}

int f2 () {
  struct A {
    ~A() { a = 3; }
    int a;
    int fred () { return a + 1; }
  };

  A ab;
  ab.a = 12;
  return ab.fred();
}
