diff options
author | Chandler Carruth <chandlerc@gmail.com> | 2016-03-07 14:05:09 +0000 |
---|---|---|
committer | Chandler Carruth <chandlerc@gmail.com> | 2016-03-07 14:05:09 +0000 |
commit | 9ca96384f34c6dd3c63be5482616e50500fb1f43 (patch) | |
tree | 8a6a87d95b645c7edd49db2fab2801a5f1339e12 /llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp | |
parent | 3e7cafe26710ebd42d2007eec29edb3293f347b0 (diff) | |
download | bcm5719-llvm-9ca96384f34c6dd3c63be5482616e50500fb1f43.tar.gz bcm5719-llvm-9ca96384f34c6dd3c63be5482616e50500fb1f43.zip |
[DFSan] Remove an overly aggressive assert reported in PR26068.
This code has been successfully used to bootstrap libc++ in a no-asserts
mode for a very long time, so the code that follows cannot be completely
incorrect. I've added a test that shows the current behavior for this
kind of code with DFSan. If it is desirable for DFSan to do something
special when processing an invoke of a variadic function, it can be
added, but we shouldn't keep an assert that we've been ignoring due to
release builds anyways.
llvm-svn: 262829
Diffstat (limited to 'llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp')
-rw-r--r-- | llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp b/llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp index 42f4701275a..c964a1f37e5 100644 --- a/llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp +++ b/llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp @@ -1412,10 +1412,6 @@ void DFSanVisitor::visitCallSite(CallSite CS) { if (F == DFSF.DFS.DFSanVarargWrapperFn) return; - assert(!(cast<FunctionType>( - CS.getCalledValue()->getType()->getPointerElementType())->isVarArg() && - dyn_cast<InvokeInst>(CS.getInstruction()))); - IRBuilder<> IRB(CS.getInstruction()); DenseMap<Value *, Function *>::iterator i = |