llvm-6502/test/Transforms/LowerSetJmp/simpletest.ll
Chris Lattner 9b11f48711 Initial test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6240 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-17 22:18:33 +00:00

30 lines
701 B
LLVM

; RUN: as < %s | opt -lowersetjmp | dis | grep invoke
%JmpBuf = type int
%.str_1 = internal constant [13 x sbyte] c"returned %d\0A\00"
implementation
declare void %llvm.longjmp(%JmpBuf *%B, int %Val)
declare int %llvm.setjmp(%JmpBuf *%B)
int %simpletest() {
%B = alloca %JmpBuf
%Val = call int %llvm.setjmp(%JmpBuf* %B)
%V = cast int %Val to bool
br bool %V, label %LongJumped, label %Normal
Normal:
call void %llvm.longjmp(%JmpBuf* %B, int 42)
ret int 0 ;; not reached
LongJumped:
ret int %Val
}
declare int %printf(sbyte*, ...)
int %main() {
%V = call int %simpletest()
call int(sbyte*, ...)* %printf(sbyte* getelementptr ([13 x sbyte]* %.str_1, long 0, long 0), int %V)
ret int 0
}