blob: b5adbbe64f8a15acb7cb09b879dae1584f7bb2d2 [file] [log] [blame]
Chris Lattner9b11f482003-05-17 22:18:33 +00001; RUN: as < %s | opt -lowersetjmp | dis | grep invoke
2
3%JmpBuf = type int
4%.str_1 = internal constant [13 x sbyte] c"returned %d\0A\00"
5
6implementation
7
8declare void %llvm.longjmp(%JmpBuf *%B, int %Val)
9declare int %llvm.setjmp(%JmpBuf *%B)
10
11int %simpletest() {
12 %B = alloca %JmpBuf
13 %Val = call int %llvm.setjmp(%JmpBuf* %B)
14 %V = cast int %Val to bool
15 br bool %V, label %LongJumped, label %Normal
16Normal:
17 call void %llvm.longjmp(%JmpBuf* %B, int 42)
18 ret int 0 ;; not reached
19LongJumped:
20 ret int %Val
21}
22
23declare int %printf(sbyte*, ...)
24
25int %main() {
26 %V = call int %simpletest()
27 call int(sbyte*, ...)* %printf(sbyte* getelementptr ([13 x sbyte]* %.str_1, long 0, long 0), int %V)
28 ret int 0
29}