Mercurial > hg > CbC > CbC_llvm
diff test/CodeGen/X86/eh-null-personality.ll @ 95:afa8332a0e37 LLVM3.8
LLVM 3.8
author | Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 13 Oct 2015 17:48:58 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/CodeGen/X86/eh-null-personality.ll Tue Oct 13 17:48:58 2015 +0900 @@ -0,0 +1,25 @@ +; 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