OLD | NEW |
1 ; RUN: not pnacl-abicheck < %s | FileCheck %s | 1 ; RUN: not pnacl-abicheck < %s | FileCheck %s |
2 ; RUN: not pnacl-abicheck -pnaclabi-allow-debug-metadata < %s | \ | 2 ; RUN: not pnacl-abicheck -pnaclabi-allow-debug-metadata < %s | \ |
3 ; RUN: FileCheck %s --check-prefix=DBG | 3 ; RUN: FileCheck %s --check-prefix=DBG |
4 | 4 |
5 ; Test that only white-listed intrinsics are allowed. | 5 ; Test that only white-listed intrinsics are allowed. |
6 | 6 |
7 ; A debuginfo version is required. | |
8 !llvm.module.flags = !{!0} | |
9 !0 = metadata !{i32 1, metadata !"Debug Info Version", i32 1} | |
10 | |
11 ; =================================== | |
12 ; Debug info intrinsics, which are disallowed by default. | |
13 | |
14 ; CHECK: Function llvm.dbg.value is a disallowed LLVM intrinsic | |
15 ; DBG-NOT: Function llvm.dbg.value is a disallowed LLVM intrinsic | |
16 declare void @llvm.dbg.value(metadata, i64, metadata) | |
17 ; CHECK: Function llvm.dbg.declare is a disallowed LLVM intrinsic | |
18 ; DBG-NOT: Function llvm.dbg.declare is a disallowed LLVM intrinsic | |
19 declare void @llvm.dbg.declare(metadata, metadata) | |
20 | |
21 | |
22 ; =================================== | 7 ; =================================== |
23 ; Always allowed intrinsics. | 8 ; Always allowed intrinsics. |
24 | 9 |
25 declare void @llvm.memcpy.p0i8.p0i8.i32(i8* %dest, i8* %src, | 10 declare void @llvm.memcpy.p0i8.p0i8.i32(i8* %dest, i8* %src, |
26 i32 %len, i32 %align, i1 %isvolatile) | 11 i32 %len, i32 %align, i1 %isvolatile) |
27 declare void @llvm.memmove.p0i8.p0i8.i32(i8* %dest, i8* %src, | 12 declare void @llvm.memmove.p0i8.p0i8.i32(i8* %dest, i8* %src, |
28 i32 %len, i32 %align, i1 %isvolatile) | 13 i32 %len, i32 %align, i1 %isvolatile) |
29 declare void @llvm.memset.p0i8.i32(i8* %dest, i8 %val, | 14 declare void @llvm.memset.p0i8.i32(i8* %dest, i8 %val, |
30 i32 %len, i32 %align, i1 %isvolatile) | 15 i32 %len, i32 %align, i1 %isvolatile) |
31 | 16 |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
160 declare void @llvm.memmove.p0i8.p0i8.i64(i8* %dest, i8* %src, | 145 declare void @llvm.memmove.p0i8.p0i8.i64(i8* %dest, i8* %src, |
161 i64 %len, i32 %align, i1 %isvolatile) | 146 i64 %len, i32 %align, i1 %isvolatile) |
162 ; CHECK: Function llvm.memset.p0i8.i64 is a disallowed LLVM intrinsic | 147 ; CHECK: Function llvm.memset.p0i8.i64 is a disallowed LLVM intrinsic |
163 declare void @llvm.memset.p0i8.i64(i8* %dest, i8 %val, | 148 declare void @llvm.memset.p0i8.i64(i8* %dest, i8 %val, |
164 i64 %len, i32 %align, i1 %isvolatile) | 149 i64 %len, i32 %align, i1 %isvolatile) |
165 | 150 |
166 ; Test that the ABI checker checks the full function name. | 151 ; Test that the ABI checker checks the full function name. |
167 ; CHECK: Function llvm.memset.foo is a disallowed LLVM intrinsic | 152 ; CHECK: Function llvm.memset.foo is a disallowed LLVM intrinsic |
168 declare void @llvm.memset.foo(i8* %dest, i8 %val, | 153 declare void @llvm.memset.foo(i8* %dest, i8 %val, |
169 i64 %len, i32 %align, i1 %isvolatile) | 154 i64 %len, i32 %align, i1 %isvolatile) |
| 155 |
| 156 ; A debuginfo version is required. |
| 157 !llvm.module.flags = !{!0} |
| 158 !0 = metadata !{i32 1, metadata !"Debug Info Version", i32 2} |
| 159 |
| 160 ; =================================== |
| 161 ; Debug info intrinsics, which are disallowed by default. |
| 162 |
| 163 ; CHECK: Function llvm.dbg.value is a disallowed LLVM intrinsic |
| 164 ; DBG-NOT: Function llvm.dbg.value is a disallowed LLVM intrinsic |
| 165 declare void @llvm.dbg.value(metadata, i64, metadata, metadata) |
| 166 ; CHECK: Function llvm.dbg.declare is a disallowed LLVM intrinsic |
| 167 ; DBG-NOT: Function llvm.dbg.declare is a disallowed LLVM intrinsic |
| 168 declare void @llvm.dbg.declare(metadata, metadata, metadata) |
OLD | NEW |