Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(572)

Unified Diff: test/NaCl/PNaClABI/intrinsics.ll

Issue 14670017: Start a whitelist of intrinsics for the PNaCl ABI checker. (Closed) Base URL: http://git.chromium.org/native_client/pnacl-llvm.git@master
Patch Set: Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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*)
« lib/Analysis/NaCl/PNaClABIVerifyModule.cpp ('K') | « lib/Analysis/NaCl/PNaClABIVerifyModule.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698