aboutsummaryrefslogtreecommitdiff
path: root/test/NaCl/PNaClABI/abi-varargs.ll
AgeCommit message (Collapse)Author
2013-06-04PNaCl ABI checker: Check for normal form introduced by ReplacePtrsWithIntsMark Seaborn
Move most of the per-instruction checking in PNaClABIVerifyFunctions::runOnFunction() to a top-level function so that it can do an early exit to reject the instruction. Reporting just a single error per instruction makes the test expectations easier to understand and update. Remove the check for metadata types. Metadata won't be part of PNaCl's stable ABI, so if the metadata-rejecting check is disabled for debugging purpose, we don't really need to recursively check the metadata's types. This lets us remove the recursive checks of Constants and types. We now only accept a very restricted, non-recursive set of Constants inside functions and global variable initialisers. This means PNaClABITypeChecker doesn't need to be stateful any more, and its methods can become static. This change also fixes a hole where the operands of "switch" instructions weren't fully checked. Add a test to replace-ptrs-with-ints.ll to ensure that "undef" doesn't appear directly in loads and stores. BUG=https://code.google.com/p/nativeclient/issues/detail?id=3343 TEST=PNaCl toolchain trybots + GCC torture tests + LLVM test suite Review URL: https://codereview.chromium.org/15780014
2013-05-29PNaCl ABI checker: Reject integer arguments smaller than i32Mark Seaborn
We can simplify the varargs checks by doing the checking on the FunctionType rather than having separate checks for the Function and the CallInst. (We couldn't do that prior to enabling ReplacePtrsWithInts because at that point the IR contained bitcasts to and from varargs FunctionTypes.) That simplification means we can also add the check for argument/return types in a single place too. BUG=https://code.google.com/p/nativeclient/issues/detail?id=3342 TEST=*.ll tests + PNaCl toolchain trybots + GCC torture tests + LLVM test suite Review URL: https://codereview.chromium.org/15899011
2013-04-12PNaCl ABI checker: Disallow va_arg, varargs functions and varargs callsMark Seaborn
This doesn't disallow the va_start/va_end/va_copy intrinsics yet; these will get disallowed later when we add whitelisting of intrinsics to the PNaCl ABI checker. BUG=https://code.google.com/p/nativeclient/issues/detail?id=3338 TEST=test/NaCl/PNaClABI/*.ll Review URL: https://codereview.chromium.org/13884013