| Index: test/NaCl/Bitcode/switch-ptr.ll
|
| diff --git a/test/NaCl/Bitcode/switch-ptr.ll b/test/NaCl/Bitcode/switch-ptr.ll
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..bab44cd1ce87018bbfa9d12753b0699213263a21
|
| --- /dev/null
|
| +++ b/test/NaCl/Bitcode/switch-ptr.ll
|
| @@ -0,0 +1,27 @@
|
| +; Tests if we handle pointer argument for switch statement.
|
| +; https://code.google.com/p/nativeclient/issues/detail?id=4050
|
| +
|
| +; RUN: llvm-as < %s | pnacl-freeze \
|
| +; RUN: | pnacl-thaw \
|
| +; RUN: | llvm-dis -o - | FileCheck %s
|
| +
|
| +@hi = internal global [1 x i8] zeroinitializer, align 1
|
| +define internal void @foo() {
|
| + %e = ptrtoint [1 x i8]* @hi to i32
|
| + switch i32 %e, label %baz3 [
|
| + i32 -4, label %baz1
|
| + i32 -8, label %baz2
|
| + ]
|
| +baz1:
|
| + ret void
|
| +baz2:
|
| + ret void
|
| +baz3:
|
| + ret void
|
| +}
|
| +
|
| +; CHECK-LABEL: @foo
|
| +; CHECK: %1 = ptrtoint [1 x i8]* @hi to i32
|
| +; CHECK-NEXT: switch i32 %1, label
|
| +; CHECK-NEXT: i32
|
| +; CHECK-NEXT: i32
|
|
|