42 lines · cpp
1// RUN: %clang_cc1 %s -emit-llvm -o %t2 3extern "C" int printf(...);4 5static int val;6 7struct B {8 B() : iB(++val) { printf("B()\n"); }9 int iB;10 ~B() { printf("~B(%d)\n", iB); --val; }11};12 13struct M : B {14 M() : iM(++val) { printf("M()\n"); }15 int iM;16 ~M() { printf("~M(%d)\n", iM); --val; }17};18 19struct P {20 P() : iP(++val) { printf("P()\n"); }21 int iP;22 ~P() { printf("~P(%d)\n", iP); --val; }23};24 25struct N : M, P {26 N() { printf("N()\n"); iN = ++val; }27 ~N() { printf("~N(%d) val = %d\n", iN, --val); }28 int iN;29 M m;30 P p;31};32 33struct O : B { 34 ~O() { return; } 35};36 37int main() {38 N n1;39 N n2;40 O o;41}42