| Index: test/NaCl/PNaClABI/abi-switch.ll
|
| diff --git a/test/NaCl/PNaClABI/abi-switch.ll b/test/NaCl/PNaClABI/abi-switch.ll
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..8fd6b75ebb7bdcc74aa310ee6a56d7089921e799
|
| --- /dev/null
|
| +++ b/test/NaCl/PNaClABI/abi-switch.ll
|
| @@ -0,0 +1,37 @@
|
| +; RUN: not pnacl-abicheck < %s | FileCheck %s
|
| +
|
| +@var = internal global [4 x i8] c"xxxx"
|
| +
|
| +
|
| +; CHECK-NOT: disallowed
|
| +
|
| +define internal void @bad_cases() {
|
| + ; ConstantExprs should be rejected here.
|
| + switch i32 ptrtoint ([4 x i8]* @var to i32), label %next [i32 0, label %next]
|
| +; CHECK: disallowed: bad switch condition
|
| +next:
|
| +
|
| + ; Bad integer type.
|
| + switch i32 0, label %next [i99 0, label %next]
|
| +; CHECK: bad switch case
|
| +
|
| + ; Bad integer type.
|
| + switch i32 0, label %next [i32 0, label %next
|
| + i99 1, label %next]
|
| +; CHECK: bad switch case
|
| +
|
| + ; Note that the reader only allows ConstantInts in the label list.
|
| + ; We don't need to check the following, because the reader rejects
|
| + ; it:
|
| + ; switch i32 0, label %next [i32 ptrtoint (i32* @ptr to i32), label %next]
|
| +
|
| + ret void
|
| +}
|
| +
|
| +; CHECK-NOT: disallowed
|
| +
|
| +
|
| +; This stops the verifier from complaining about the lack of an entry point.
|
| +define void @_start(i32 %arg) {
|
| + ret void
|
| +}
|
|
|