1651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// RUN: %clang_cc1 -triple x86_64-apple-darwin -std=c++11 -emit-llvm %s -o - | \ 2651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// RUN: FileCheck %s 3651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// RUN: %clang_cc1 -triple i386-apple-darwin -std=c++11 -emit-llvm %s -o - | \ 4651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// RUN: FileCheck %s 572c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian 672c2153b466263a21870b2b1c817900d4981493eFariborz Jahanianextern "C" int printf(...); 772c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian 872c2153b466263a21870b2b1c817900d4981493eFariborz Jahanianint count; 972c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian 1072c2153b466263a21870b2b1c817900d4981493eFariborz Jahanianstruct S { 1172c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian S() : iS (++count) { printf("S::S(%d)\n", iS); } 1272c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian ~S() { printf("S::~S(%d)\n", iS); } 1372c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian int iS; 1472c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian}; 1572c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian 16534ba90a1b865f3731aa56423e8f02d49ff62ec7Fariborz Jahanianstruct V { 17534ba90a1b865f3731aa56423e8f02d49ff62ec7Fariborz Jahanian V() : iV (++count) { printf("V::V(%d)\n", iV); } 18534ba90a1b865f3731aa56423e8f02d49ff62ec7Fariborz Jahanian virtual ~V() { printf("V::~V(%d)\n", iV); } 19534ba90a1b865f3731aa56423e8f02d49ff62ec7Fariborz Jahanian int iV; 20534ba90a1b865f3731aa56423e8f02d49ff62ec7Fariborz Jahanian}; 21534ba90a1b865f3731aa56423e8f02d49ff62ec7Fariborz Jahanian 2272c2153b466263a21870b2b1c817900d4981493eFariborz Jahanianstruct COST 2372c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian{ 2472c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian S *cost; 25534ba90a1b865f3731aa56423e8f02d49ff62ec7Fariborz Jahanian V *vcost; 2672c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian unsigned *cost_val; 2772c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian 2872c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian ~COST(); 2972c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian COST(); 3072c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian}; 3172c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian 3272c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian 3372c2153b466263a21870b2b1c817900d4981493eFariborz JahanianCOST::COST() 3472c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian{ 3572c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian cost = new S[3]; 36534ba90a1b865f3731aa56423e8f02d49ff62ec7Fariborz Jahanian vcost = new V[4]; 3772c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian cost_val = new unsigned[10]; 3872c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian} 3972c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian 4072c2153b466263a21870b2b1c817900d4981493eFariborz JahanianCOST::~COST() 4172c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian{ 4272c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian if (cost) { 4372c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian delete [] cost; 4472c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian } 45534ba90a1b865f3731aa56423e8f02d49ff62ec7Fariborz Jahanian if (vcost) { 46534ba90a1b865f3731aa56423e8f02d49ff62ec7Fariborz Jahanian delete [] vcost; 47534ba90a1b865f3731aa56423e8f02d49ff62ec7Fariborz Jahanian } 4872c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian if (cost_val) 4972c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian delete [] cost_val; 5072c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian} 5172c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian 5272c2153b466263a21870b2b1c817900d4981493eFariborz JahanianCOST c1; 5372c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian 5472c2153b466263a21870b2b1c817900d4981493eFariborz Jahanianint main() 5572c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian{ 5672c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian COST c3; 5772c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian} 5872c2153b466263a21870b2b1c817900d4981493eFariborz JahanianCOST c2; 5972c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian 60651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// CHECK: call void @_ZdaPv 6172c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian 62