Index: test/NaCl/PNaClABI/intrinsics.ll |
diff --git a/test/NaCl/PNaClABI/intrinsics.ll b/test/NaCl/PNaClABI/intrinsics.ll |
new file mode 100644 |
index 0000000000000000000000000000000000000000..2ed389a68bd363ba94987441fb4ec4da32e6d46a |
--- /dev/null |
+++ b/test/NaCl/PNaClABI/intrinsics.ll |
@@ -0,0 +1,37 @@ |
+; RUN: pnacl-abicheck -pnaclabi-allow-intrinsics=0 < %s | FileCheck %s |
eliben
2013/05/07 15:27:40
I guess at least one sanity check with this flag=1
jvoung (off chromium)
2013/05/07 17:39:46
Done.
|
+; RUN: pnacl-abicheck -pnaclabi-allow-intrinsics=0 \ |
+; RUN: -pnaclabi-allow-debug-metadata < %s | FileCheck %s --check-prefix=DBG |
+; Test that only white-listed intrinsics are allowed. |
+ |
+; Some disallowed intrinsics. |
+; CHECK: Function llvm.dbg.value is a disallowed LLVM intrinsic |
+; DBG-NOT: Function llvm.dbg.value is a disallowed LLVM intrinsic |
+declare void @llvm.dbg.value(metadata, i64, metadata) |
+ |
+; Allowed intrinsics. |
+; CHECK-NOT: Function llvm.lifetime.start is a disallowed LLVM intrinsic |
+declare void @llvm.lifetime.start(i64, i8* nocapture) |
+; CHECK-NOT: Function llvm.lifetime.start is a disallowed LLVM intrinsic |
+declare void @llvm.lifetime.end(i64, i8* nocapture) |
+; CHECK-NOT: Function llvm.memcpy.p0i8.p0i8.i32 is a disallowed LLVM intrinsic |
+declare void @llvm.memcpy.p0i8.p0i8.i32(i8* %dest, i8* %src, |
+ i32 %len, i32 %align, i1 %isvolatile) |
+; CHECK-NOT: Function llvm.memcpy.p0i8.p0i8.i64 is a disallowed LLVM intrinsic |
+declare void @llvm.memcpy.p0i8.p0i8.i64(i8* %dest, i8* %src, |
+ i64 %len, i32 %align, i1 %isvolatile) |
+; CHECK-NOT: Function llvm.nacl.read.tp is a disallowed LLVM intrinsic |
+declare i8* @llvm.nacl.read.tp() |
+ |
+; More disallowed intrinsics. |
+; CHECK: Function llvm.adjust.trampoline is a disallowed LLVM intrinsic |
+; DBG: Function llvm.adjust.trampoline is a disallowed LLVM intrinsic |
+declare i8* @llvm.adjust.trampoline(i8*) |
+ |
+; CHECK: Function llvm.init.trampoline is a disallowed LLVM intrinsic |
+declare void @llvm.init.trampoline(i8*, i8*, i8*) |
+ |
+; CHECK: Function llvm.x86.aesni.aeskeygenassist is a disallowed LLVM intrinsic |
+declare <2 x i64> @llvm.x86.aesni.aeskeygenassist(<2 x i64>, i8) |
+ |
+; CHECK: Function llvm.va_copy is a disallowed LLVM intrinsic |
+declare void @llvm.va_copy(i8*, i8*) |