llvm-6502/test/Transforms/Inline/2007-12-19-InlineNoUnwind.ll
Duncan Sands f0c3354d99 When inlining through an 'nounwind' call, mark inlined
calls 'nounwind'.  It is important for correct C++
exception handling that nounwind markings do not get
lost, so this transformation is actually needed for
correctness.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45218 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-19 21:13:37 +00:00

20 lines
349 B
LLVM

; RUN: llvm-as < %s -o - | opt -inline | llvm-dis | grep nounwind
; RUN: llvm-as < %s -o - | opt -inline | llvm-dis | grep unreachable
declare i1 @extern()
define internal i32 @test() {
entry:
%n = call i1 @extern( )
br i1 %n, label %r, label %u
r:
ret i32 0;
u:
unwind
}
define i32 @caller() {
%X = call i32 @test( ) nounwind
ret i32 %X
}