26 lines
		
	
	
		
			558 B
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			558 B
		
	
	
	
		
			LLVM
		
	
	
	
| ; RUN: llc -mtriple=x86_64-linux < %s | FileCheck %s
 | |
| 
 | |
| ; We should treat non-Function personalities as the unknown personality, which
 | |
| ; is usually Itanium.
 | |
| 
 | |
| declare void @g()
 | |
| declare void @terminate(i8*)
 | |
| 
 | |
| define void @f() personality i8* null {
 | |
|   invoke void @g()
 | |
|     to label %ret unwind label %lpad
 | |
| ret:
 | |
|   ret void
 | |
| lpad:
 | |
|   %vals = landingpad { i8*, i32 } catch i8* null
 | |
|   %ptr = extractvalue { i8*, i32 } %vals, 0
 | |
|   call void @terminate(i8* %ptr)
 | |
|   unreachable
 | |
| }
 | |
| 
 | |
| ; CHECK: f:
 | |
| ; CHECK: callq g
 | |
| ; CHECK: retq
 | |
| ; CHECK: movq %rax, %rdi
 | |
| ; CHECK: callq terminate
 |