[dfsan] Abort at runtime on indirect calls to uninstrumented vararg functions.
authorPeter Collingbourne <peter@pcc.me.uk>
Wed, 5 Nov 2014 17:21:00 +0000 (17:21 +0000)
committerPeter Collingbourne <peter@pcc.me.uk>
Wed, 5 Nov 2014 17:21:00 +0000 (17:21 +0000)
commit7cc4447ccfa69e76cb8e3e3cc76984895421dba5
tree55bac28b0b8c203241d2984100a61428c7112eb9
parent72ced73d4547ce548cefb2716176b9b9b282cf59
[dfsan] Abort at runtime on indirect calls to uninstrumented vararg functions.

We currently have no infrastructure to support these correctly.

This is accomplished by generating a call to a runtime library function that
aborts at runtime in place of the regular wrapper for such functions. Direct
calls are rewritten in the usual way during traversal of the caller's IR.

We also remove the "split-stack" attribute from such wrappers, as the code
generator cannot currently handle split-stack vararg functions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@221360 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Instrumentation/DataFlowSanitizer.cpp
test/Instrumentation/DataFlowSanitizer/abilist.ll