brintos

brintos / llvm-project-archived public Read only

0
0
Text · 623 B · 4da46a4 Raw
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