10ccb31c389a09216a5b60cf05bd01516ddbe8d4fGalina Kistanova// REQUIRES: x86-registered-target,x86-64-registered-target 2762bb9d0ad20320b9f97a841dce57ba5e8e48b07Richard Smith// RUN: %clang_cc1 -triple x86_64-apple-darwin -std=c++11 -S %s -o %t-64.s 372c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian// RUN: FileCheck -check-prefix LP64 --input-file=%t-64.s %s 4762bb9d0ad20320b9f97a841dce57ba5e8e48b07Richard Smith// RUN: %clang_cc1 -triple i386-apple-darwin -std=c++11 -S %s -o %t-32.s 572c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian// RUN: FileCheck -check-prefix LP32 --input-file=%t-32.s %s 672c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian 772c2153b466263a21870b2b1c817900d4981493eFariborz Jahanianextern "C" int printf(...); 872c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian 972c2153b466263a21870b2b1c817900d4981493eFariborz Jahanianint count; 1072c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian 1172c2153b466263a21870b2b1c817900d4981493eFariborz Jahanianstruct S { 1272c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian S() : iS (++count) { printf("S::S(%d)\n", iS); } 1372c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian ~S() { printf("S::~S(%d)\n", iS); } 1472c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian int iS; 1572c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian}; 1672c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian 17534ba90a1b865f3731aa56423e8f02d49ff62ec7Fariborz Jahanianstruct V { 18534ba90a1b865f3731aa56423e8f02d49ff62ec7Fariborz Jahanian V() : iV (++count) { printf("V::V(%d)\n", iV); } 19534ba90a1b865f3731aa56423e8f02d49ff62ec7Fariborz Jahanian virtual ~V() { printf("V::~V(%d)\n", iV); } 20534ba90a1b865f3731aa56423e8f02d49ff62ec7Fariborz Jahanian int iV; 21534ba90a1b865f3731aa56423e8f02d49ff62ec7Fariborz Jahanian}; 22534ba90a1b865f3731aa56423e8f02d49ff62ec7Fariborz Jahanian 2372c2153b466263a21870b2b1c817900d4981493eFariborz Jahanianstruct COST 2472c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian{ 2572c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian S *cost; 26534ba90a1b865f3731aa56423e8f02d49ff62ec7Fariborz Jahanian V *vcost; 2772c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian unsigned *cost_val; 2872c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian 2972c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian ~COST(); 3072c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian COST(); 3172c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian}; 3272c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian 3372c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian 3472c2153b466263a21870b2b1c817900d4981493eFariborz JahanianCOST::COST() 3572c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian{ 3672c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian cost = new S[3]; 37534ba90a1b865f3731aa56423e8f02d49ff62ec7Fariborz Jahanian vcost = new V[4]; 3872c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian cost_val = new unsigned[10]; 3972c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian} 4072c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian 4172c2153b466263a21870b2b1c817900d4981493eFariborz JahanianCOST::~COST() 4272c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian{ 4372c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian if (cost) { 4472c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian delete [] cost; 4572c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian } 46534ba90a1b865f3731aa56423e8f02d49ff62ec7Fariborz Jahanian if (vcost) { 47534ba90a1b865f3731aa56423e8f02d49ff62ec7Fariborz Jahanian delete [] vcost; 48534ba90a1b865f3731aa56423e8f02d49ff62ec7Fariborz Jahanian } 4972c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian if (cost_val) 5072c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian delete [] cost_val; 5172c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian} 5272c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian 5372c2153b466263a21870b2b1c817900d4981493eFariborz JahanianCOST c1; 5472c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian 5572c2153b466263a21870b2b1c817900d4981493eFariborz Jahanianint main() 5672c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian{ 5772c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian COST c3; 5872c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian} 5972c2153b466263a21870b2b1c817900d4981493eFariborz JahanianCOST c2; 6072c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian 613b29901b1d106789e04ce8c4cdfebe72b251db4bSean Callanan// CHECK-LP64: callq __ZdaPv 6272c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian 63398e6b90f5e161d520a95cbf34c732a55fd3e476Chris Lattner// CHECK-LP32: calll L__ZdaPv 6472c2153b466263a21870b2b1c817900d4981493eFariborz Jahanian 65