From 7b1d0b48c95f7b9861b890c650f039d5cc636e89 Mon Sep 17 00:00:00 2001 From: Mark Seaborn Date: Tue, 28 May 2013 11:49:59 -0700 Subject: PNaCl ABI checker: Disallow inline assembly Reject module-level assembly and inline assembly within functions. BUG=https://code.google.com/p/nativeclient/issues/detail?id=2345 TEST=*.ll tests + trybots + GCC torture tests Review URL: https://codereview.chromium.org/16123005 --- lib/Analysis/NaCl/PNaClABIVerifyModule.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'lib/Analysis/NaCl/PNaClABIVerifyModule.cpp') diff --git a/lib/Analysis/NaCl/PNaClABIVerifyModule.cpp b/lib/Analysis/NaCl/PNaClABIVerifyModule.cpp index eacb4031b3..2b29c196f1 100644 --- a/lib/Analysis/NaCl/PNaClABIVerifyModule.cpp +++ b/lib/Analysis/NaCl/PNaClABIVerifyModule.cpp @@ -242,6 +242,11 @@ bool PNaClABIVerifyModule::isWhitelistedMetadata(const NamedMDNode *MD) { } bool PNaClABIVerifyModule::runOnModule(Module &M) { + if (!M.getModuleInlineAsm().empty()) { + Reporter->addError() << + "Module contains disallowed top-level inline assembly\n"; + } + for (Module::const_global_iterator MI = M.global_begin(), ME = M.global_end(); MI != ME; ++MI) { // Check types of global variables and their initializers -- cgit v1.2.3-70-g09d2