diff options
author | Kostya Serebryany <kcc@google.com> | 2012-01-11 18:15:23 +0000 |
---|---|---|
committer | Kostya Serebryany <kcc@google.com> | 2012-01-11 18:15:23 +0000 |
commit | bcb55ce3862bbbedac4e09d7099c9e0efc434e4b (patch) | |
tree | 1213ca109e4c02c81b400ef505f40f0c0129c548 /lib/Transforms/Instrumentation/AddressSanitizer.cpp | |
parent | 014f7a3b3798580d5aac80b83bcb67e03d302fa4 (diff) |
[asan] extend the workaround for http://llvm.org/bugs/show_bug.cgi?id=11395: don't instrument the function at all on x86_32 if it has a large asm blob
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147953 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/Instrumentation/AddressSanitizer.cpp')
-rw-r--r-- | lib/Transforms/Instrumentation/AddressSanitizer.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/Transforms/Instrumentation/AddressSanitizer.cpp b/lib/Transforms/Instrumentation/AddressSanitizer.cpp index dbd9ebaf55..e645a9fdbd 100644 --- a/lib/Transforms/Instrumentation/AddressSanitizer.cpp +++ b/lib/Transforms/Instrumentation/AddressSanitizer.cpp @@ -617,6 +617,7 @@ bool AddressSanitizer::handleFunction(Module &M, Function &F) { TempsToInstrument.clear(); for (BasicBlock::iterator BI = FI->begin(), BE = FI->end(); BI != BE; ++BI) { + if (LooksLikeCodeInBug11395(BI)) return false; if ((isa<LoadInst>(BI) && ClInstrumentReads) || (isa<StoreInst>(BI) && ClInstrumentWrites)) { Value *Addr = getLDSTOperand(BI); @@ -792,7 +793,6 @@ bool AddressSanitizer::poisonStackInFunction(Module &M, Function &F) { BasicBlock &BB = *FI; for (BasicBlock::iterator BI = BB.begin(), BE = BB.end(); BI != BE; ++BI) { - if (LooksLikeCodeInBug11395(BI)) return false; if (isa<ReturnInst>(BI)) { RetVec.push_back(BI); continue; |