forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			39 lines
		
	
	
		
			606 B
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			606 B
		
	
	
	
		
			C
		
	
	
	
// RUN: %clang_cc1 -emit-llvm -o %t %s
 | 
						|
// RUN: grep -e "global_ctors.*@A" %t
 | 
						|
// RUN: grep -e "global_dtors.*@B" %t
 | 
						|
// RUN: grep -e "global_ctors.*@C" %t
 | 
						|
// RUN: grep -e "global_dtors.*@D" %t
 | 
						|
 | 
						|
int printf(const char *, ...);
 | 
						|
 | 
						|
void A() __attribute__((constructor));
 | 
						|
void B() __attribute__((destructor));
 | 
						|
 | 
						|
void A() {
 | 
						|
  printf("A\n");
 | 
						|
}
 | 
						|
 | 
						|
void B() {
 | 
						|
  printf("B\n");
 | 
						|
}
 | 
						|
 | 
						|
static void C() __attribute__((constructor));
 | 
						|
 | 
						|
static void D() __attribute__((destructor));
 | 
						|
 | 
						|
static int foo() {
 | 
						|
  return 10;
 | 
						|
}
 | 
						|
 | 
						|
static void C() {
 | 
						|
  printf("A: %d\n", foo());
 | 
						|
}
 | 
						|
 | 
						|
static void D() {
 | 
						|
  printf("B\n");
 | 
						|
}
 | 
						|
 | 
						|
int main() {
 | 
						|
  return 0;
 | 
						|
}
 |