// RUN: clang-cc %s -emit-llvm -o %t

extern "C" int printf(...);

static int val;

struct B {
  B() : iB(++val) { printf("B()\n"); }
  int iB;
  ~B() { printf("~B(%d)\n", iB); --val; }
};

struct M : B {
  M() : iM(++val) { printf("M()\n"); }
  int iM;
  ~M() { printf("~M(%d)\n", iM); --val; }
};

struct P {
  P() : iP(++val) { printf("P()\n"); }
  int iP;
  ~P() { printf("~P(%d)\n", iP); --val; }
};

struct N : M, P {
  N() { printf("N()\n"); iN = ++val; }
  ~N() { printf("~N(%d) val = %d\n", iN, --val);  }
  int iN;
  M m;
  P p;
};

int main() {
  N n1;
  N n2;
}
