forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			62 lines
		
	
	
		
			864 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			864 B
		
	
	
	
		
			C++
		
	
	
	
// RUN: %clang_cc1 -triple x86_64-apple-darwin -std=c++11 -emit-llvm %s -o - | \
 | 
						|
// RUN: FileCheck %s
 | 
						|
// RUN: %clang_cc1 -triple i386-apple-darwin -std=c++11 -emit-llvm %s -o - | \
 | 
						|
// RUN: FileCheck %s
 | 
						|
 | 
						|
extern "C" int printf(...);
 | 
						|
 | 
						|
int count;
 | 
						|
 | 
						|
struct S {
 | 
						|
  S() : iS (++count) { printf("S::S(%d)\n", iS); }
 | 
						|
  ~S() { printf("S::~S(%d)\n", iS); }
 | 
						|
  int iS;
 | 
						|
};
 | 
						|
 | 
						|
struct V {
 | 
						|
  V() : iV (++count) { printf("V::V(%d)\n", iV); }
 | 
						|
  virtual ~V() { printf("V::~V(%d)\n", iV); }
 | 
						|
  int iV;
 | 
						|
};
 | 
						|
 | 
						|
struct COST
 | 
						|
{
 | 
						|
  S *cost;
 | 
						|
  V *vcost;
 | 
						|
  unsigned *cost_val;
 | 
						|
 | 
						|
  ~COST();
 | 
						|
  COST();
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
COST::COST()
 | 
						|
{
 | 
						|
  cost = new S[3];
 | 
						|
  vcost = new V[4];
 | 
						|
  cost_val = new unsigned[10];
 | 
						|
}
 | 
						|
 | 
						|
COST::~COST()
 | 
						|
{
 | 
						|
  if (cost) {
 | 
						|
   delete [] cost;
 | 
						|
  }
 | 
						|
  if (vcost) {
 | 
						|
   delete [] vcost;
 | 
						|
  }
 | 
						|
  if (cost_val)
 | 
						|
    delete [] cost_val;
 | 
						|
}
 | 
						|
 | 
						|
COST c1;
 | 
						|
 | 
						|
int main()
 | 
						|
{
 | 
						|
  COST c3;
 | 
						|
}
 | 
						|
COST c2;
 | 
						|
 | 
						|
// CHECK: call void @_ZdaPv
 | 
						|
 |