forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			62 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
// RUN: %clang_cc1 %s -emit-llvm -triple %itanium_abi_triple -o - | FileCheck %s
 | 
						|
 | 
						|
// CHECK: @_ZTVZ1GvE1C = {{.*}} @_ZTIZ1GvE1C {{.*}} @_ZZ1GvENK1C1FEv
 | 
						|
// CHECK: @_ZTIZ1GvE1C = {{.*}} @_ZTSZ1GvE1C
 | 
						|
// CHECK: @_ZTVZ1GvE1C_0 = {{.*}} @_ZTIZ1GvE1C_0 {{.*}} @_ZZ1GvENK1C1FE_0v
 | 
						|
// CHECK: @_ZTIZ1GvE1C_0 = {{.*}} @_ZTSZ1GvE1C_0
 | 
						|
// CHECK: @_ZTVZ1GvE1C_1 = {{.*}} @_ZTIZ1GvE1C_1 {{.*}} @_ZZ1GvENK1C1FE_1v
 | 
						|
// CHECK: @_ZTIZ1GvE1C_1 = {{.*}} @_ZTSZ1GvE1C_1
 | 
						|
// CHECK: @_ZTVZN1J1KEvE1C = {{.*}} @_ZTIZN1J1KEvE1C {{.*}} @_ZZN1J1KEvENK1C1FEv
 | 
						|
// CHECK: @_ZTIZN1J1KEvE1C = {{.*}} @_ZTSZN1J1KEvE1C
 | 
						|
 | 
						|
// CHECK: define {{.*}} @_ZZ1GvEN1CC2Ev(
 | 
						|
// CHECK: define {{.*}} @_ZZ1GvENK1C1FEv(
 | 
						|
// CHECK: define {{.*}} @_ZZ1GvEN1CC2E_0v(
 | 
						|
// CHECK: define {{.*}} @_ZZ1GvENK1C1FE_0v(
 | 
						|
// CHECK: define {{.*}} @_ZZ1GvENK1C1GE_0v(
 | 
						|
// CHECK: define {{.*}} @_ZZ1GvEN1CC2E_1v(
 | 
						|
// CHECK: define {{.*}} @_ZZ1GvENK1C1FE_1v(
 | 
						|
// CHECK: define {{.*}} @_ZZ1GvENK1C1HE_1v(
 | 
						|
// CHECK: define {{.*}} @_ZZN1J1KEvEN1CC2Ev(
 | 
						|
// CHECK: define {{.*}} @_ZZN1J1KEvENK1C1FEv(
 | 
						|
 | 
						|
struct I { 
 | 
						|
  virtual void F() const = 0;
 | 
						|
};
 | 
						|
 | 
						|
void Go(const I &i);
 | 
						|
 | 
						|
void G() { 
 | 
						|
  { 
 | 
						|
    struct C : I { 
 | 
						|
      void F() const {}
 | 
						|
    };
 | 
						|
    Go(C());
 | 
						|
  }
 | 
						|
  { 
 | 
						|
    struct C : I { 
 | 
						|
      void F() const { G(); }
 | 
						|
      void G() const {}
 | 
						|
    };
 | 
						|
    Go(C());
 | 
						|
  }
 | 
						|
  { 
 | 
						|
    struct C : I { 
 | 
						|
      void F() const { H(); }
 | 
						|
      void H() const {}
 | 
						|
    };
 | 
						|
    Go(C());
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
struct J {
 | 
						|
  void K();
 | 
						|
};
 | 
						|
 | 
						|
void J::K() {
 | 
						|
  struct C : I {
 | 
						|
    void F() const {}
 | 
						|
  };
 | 
						|
  Go(C());
 | 
						|
}
 |