Chris Lattner | 9b11f48 | 2003-05-17 22:18:33 +0000 | [diff] [blame] | 1 | ; 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 | |
| 6 | implementation |
| 7 | |
| 8 | declare void %llvm.longjmp(%JmpBuf *%B, int %Val) |
| 9 | declare int %llvm.setjmp(%JmpBuf *%B) |
| 10 | |
| 11 | int %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 |
| 16 | Normal: |
| 17 | call void %llvm.longjmp(%JmpBuf* %B, int 42) |
| 18 | ret int 0 ;; not reached |
| 19 | LongJumped: |
| 20 | ret int %Val |
| 21 | } |
| 22 | |
| 23 | declare int %printf(sbyte*, ...) |
| 24 | |
| 25 | int %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 | } |