mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-11-04 05:17:07 +00:00 
			
		
		
		
	git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106569 91177308-0d34-0410-b5e6-96231b3b80d8
		
			
				
	
	
		
			34 lines
		
	
	
		
			562 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			562 B
		
	
	
	
		
			C++
		
	
	
	
	
	
// RUN: %llvmgxx %s -S -o - | FileCheck %s
 | 
						|
// <rdar://problem/7929157> & <rdar://problem/8104369>
 | 
						|
 | 
						|
struct A {
 | 
						|
  virtual int f() { return 1; }
 | 
						|
};
 | 
						|
 | 
						|
struct B {
 | 
						|
  virtual int f() { return 2; }
 | 
						|
};
 | 
						|
 | 
						|
struct C : A, B {
 | 
						|
  virtual int f() { return 3; }
 | 
						|
};
 | 
						|
 | 
						|
struct D : C {
 | 
						|
  virtual int f() { return 4; }
 | 
						|
};
 | 
						|
 | 
						|
static int f(D* d) {
 | 
						|
  B* b = d;
 | 
						|
  return b->f();
 | 
						|
};
 | 
						|
 | 
						|
int g() {
 | 
						|
  D d;
 | 
						|
  return f(&d);
 | 
						|
}
 | 
						|
 | 
						|
// Thunks should be marked as "linkonce ODR" not "weak".
 | 
						|
//
 | 
						|
// CHECK: define linkonce_odr i32 @_ZThn{{[48]}}_N1C1fEv
 | 
						|
// CHECK: define linkonce_odr i32 @_ZThn{{[48]}}_N1D1fEv
 |