| Index: test/NaCl/PNaClABI/abi-small-arguments.ll
|
| diff --git a/test/NaCl/PNaClABI/abi-small-arguments.ll b/test/NaCl/PNaClABI/abi-small-arguments.ll
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..696fac16b8c85e189198cc0efe02ddf026d00251
|
| --- /dev/null
|
| +++ b/test/NaCl/PNaClABI/abi-small-arguments.ll
|
| @@ -0,0 +1,52 @@
|
| +; RUN: not pnacl-abicheck < %s | FileCheck %s
|
| +
|
| +define void @arg_i1(i1 %bad) {
|
| + ret void
|
| +}
|
| +; CHECK: Function arg_i1 has disallowed type:
|
| +
|
| +define void @arg_i16(i32 %allowed, i16 %bad) {
|
| + ret void
|
| +}
|
| +; CHECK: Function arg_i16 has disallowed type:
|
| +
|
| +define i1 @return_i1() {
|
| + ret i1 0
|
| +}
|
| +; CHECK: Function return_i1 has disallowed type:
|
| +
|
| +define i8 @return_i8() {
|
| + ret i8 0
|
| +}
|
| +; CHECK: Function return_i8 has disallowed type:
|
| +
|
| +
|
| +define void @bad_direct_calls() {
|
| + call void @arg_i1(i1 0)
|
| +; CHECK: bad function callee operand: call void @arg_i1
|
| +
|
| + call void @arg_i16(i32 0, i16 0)
|
| +; CHECK-NEXT: bad function callee operand: call void @arg_i16
|
| +
|
| + %result1 = call i1 @return_i1()
|
| +; CHECK-NEXT: bad function callee operand: {{.*}} call i1 @return_i1
|
| +
|
| + %result2 = call i8 @return_i8()
|
| +; CHECK-NEXT: bad function callee operand: {{.*}} call i8 @return_i8
|
| +
|
| + ret void
|
| +}
|
| +
|
| +define void @bad_indirect_calls(i32 %ptr) {
|
| + %func1 = inttoptr i32 %ptr to void (i8)*
|
| +; CHECK: bad result type: void (i8)* %func1
|
| + call void %func1(i8 0)
|
| +; CHECK: bad function callee operand: {{.*}} %func1
|
| +
|
| + %func2 = inttoptr i32 %ptr to i16 ()*
|
| +; CHECK: bad result type: i16 ()* %func2
|
| + %result3 = call i16 %func2()
|
| +; CHECK: bad function callee operand: {{.*}} %func2
|
| +
|
| + ret void
|
| +}
|
|
|