mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-10-30 16:17:05 +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
 |