forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			23 lines
		
	
	
		
			705 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			705 B
		
	
	
	
		
			C++
		
	
	
	
// RUN: %clang_cc1 -triple %ms_abi_triple -fms-extensions -emit-llvm -O0 -o - %s | FileCheck %s
 | 
						|
 | 
						|
// Friend functions defined in classes are emitted.
 | 
						|
// CHECK: define weak_odr dso_local dllexport void @"?friend1@@YAXXZ"()
 | 
						|
struct FuncFriend1 {
 | 
						|
  friend __declspec(dllexport) void friend1() {}
 | 
						|
};
 | 
						|
 | 
						|
// But function templates and functions defined in class templates are not
 | 
						|
// emitted.
 | 
						|
// CHECK-NOT: friend2
 | 
						|
// CHECK-NOT: friend3
 | 
						|
// CHECK-NOT: friend4
 | 
						|
struct FuncFriend2 {
 | 
						|
  template<typename> friend __declspec(dllexport) void friend2() {}
 | 
						|
};
 | 
						|
template<typename> struct FuncFriend3 {
 | 
						|
  friend __declspec(dllexport) void friend3() {}
 | 
						|
  struct Inner {
 | 
						|
    friend __declspec(dllexport) void friend4() {}
 | 
						|
  };
 | 
						|
};
 |