1*a1226fc7SRafael Espindola // RUN: %clang_cc1 -triple x86_64-apple-darwin -std=c++11 -emit-llvm %s -o - | \ 2*a1226fc7SRafael Espindola // RUN: FileCheck %s 3*a1226fc7SRafael Espindola // RUN: %clang_cc1 -triple i386-apple-darwin -std=c++11 -emit-llvm %s -o - | \ 4*a1226fc7SRafael Espindola // RUN: FileCheck %s 56814eaa2SFariborz Jahanian 66814eaa2SFariborz Jahanian extern "C" int printf(...); 76814eaa2SFariborz Jahanian 86814eaa2SFariborz Jahanian int count; 96814eaa2SFariborz Jahanian 106814eaa2SFariborz Jahanian struct S { SS116814eaa2SFariborz Jahanian S() : iS (++count) { printf("S::S(%d)\n", iS); } ~SS126814eaa2SFariborz Jahanian ~S() { printf("S::~S(%d)\n", iS); } 136814eaa2SFariborz Jahanian int iS; 146814eaa2SFariborz Jahanian }; 156814eaa2SFariborz Jahanian 16ebea0058SFariborz Jahanian struct V { VV17ebea0058SFariborz Jahanian V() : iV (++count) { printf("V::V(%d)\n", iV); } ~VV18ebea0058SFariborz Jahanian virtual ~V() { printf("V::~V(%d)\n", iV); } 19ebea0058SFariborz Jahanian int iV; 20ebea0058SFariborz Jahanian }; 21ebea0058SFariborz Jahanian 226814eaa2SFariborz Jahanian struct COST 236814eaa2SFariborz Jahanian { 246814eaa2SFariborz Jahanian S *cost; 25ebea0058SFariborz Jahanian V *vcost; 266814eaa2SFariborz Jahanian unsigned *cost_val; 276814eaa2SFariborz Jahanian 286814eaa2SFariborz Jahanian ~COST(); 296814eaa2SFariborz Jahanian COST(); 306814eaa2SFariborz Jahanian }; 316814eaa2SFariborz Jahanian 326814eaa2SFariborz Jahanian COST()336814eaa2SFariborz JahanianCOST::COST() 346814eaa2SFariborz Jahanian { 356814eaa2SFariborz Jahanian cost = new S[3]; 36ebea0058SFariborz Jahanian vcost = new V[4]; 376814eaa2SFariborz Jahanian cost_val = new unsigned[10]; 386814eaa2SFariborz Jahanian } 396814eaa2SFariborz Jahanian ~COST()406814eaa2SFariborz JahanianCOST::~COST() 416814eaa2SFariborz Jahanian { 426814eaa2SFariborz Jahanian if (cost) { 436814eaa2SFariborz Jahanian delete [] cost; 446814eaa2SFariborz Jahanian } 45ebea0058SFariborz Jahanian if (vcost) { 46ebea0058SFariborz Jahanian delete [] vcost; 47ebea0058SFariborz Jahanian } 486814eaa2SFariborz Jahanian if (cost_val) 496814eaa2SFariborz Jahanian delete [] cost_val; 506814eaa2SFariborz Jahanian } 516814eaa2SFariborz Jahanian 526814eaa2SFariborz Jahanian COST c1; 536814eaa2SFariborz Jahanian main()546814eaa2SFariborz Jahanianint main() 556814eaa2SFariborz Jahanian { 566814eaa2SFariborz Jahanian COST c3; 576814eaa2SFariborz Jahanian } 586814eaa2SFariborz Jahanian COST c2; 596814eaa2SFariborz Jahanian 60*a1226fc7SRafael Espindola // CHECK: call void @_ZdaPv 616814eaa2SFariborz Jahanian 62