summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorVitaly Buka <vitalybuka@google.com>2016-08-19 22:12:58 +0000
committerVitaly Buka <vitalybuka@google.com>2016-08-19 22:12:58 +0000
commite149b392a894c8263e681bb4f2b4d5eae7fddafc (patch)
tree4f6afc0c42738de94428de84287a59c85c7cdb88 /llvm/lib
parenta36f46363f2e1205c17ff92b63412ea26ac65fb3 (diff)
downloadbcm5719-llvm-e149b392a894c8263e681bb4f2b4d5eae7fddafc.tar.gz
bcm5719-llvm-e149b392a894c8263e681bb4f2b4d5eae7fddafc.zip
Revert "[asan] Add support of lifetime poisoning into ComputeASanStackFrameLayout"
This reverts commit r279020. Speculative revert in hope to fix asan test on arm. llvm-svn: 279332
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp5
-rw-r--r--llvm/lib/Transforms/Utils/ASanStackFrameLayout.cpp13
2 files changed, 4 insertions, 14 deletions
diff --git a/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp b/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
index 3ad8e145815..58e552710b7 100644
--- a/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
+++ b/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
@@ -2079,10 +2079,7 @@ void FunctionStackPoisoner::poisonStack() {
for (AllocaInst *AI : AllocaVec) {
ASanStackVariableDescription D = {AI->getName().data(),
ASan.getAllocaSizeInBytes(*AI),
- 0,
- AI->getAlignment(),
- AI,
- 0};
+ AI->getAlignment(), AI, 0};
SVD.push_back(D);
}
// Minimal header size (left redzone) is 4 pointers,
diff --git a/llvm/lib/Transforms/Utils/ASanStackFrameLayout.cpp b/llvm/lib/Transforms/Utils/ASanStackFrameLayout.cpp
index 8e2ff7f25a2..7e50d4bb447 100644
--- a/llvm/lib/Transforms/Utils/ASanStackFrameLayout.cpp
+++ b/llvm/lib/Transforms/Utils/ASanStackFrameLayout.cpp
@@ -81,26 +81,19 @@ ComputeASanStackFrameLayout(SmallVectorImpl<ASanStackVariableDescription> &Vars,
assert(Layout->FrameAlignment >= Alignment);
assert((Offset % Alignment) == 0);
assert(Size > 0);
- assert(Vars[i].LifetimeSize <= Size);
StackDescription << " " << Offset << " " << Size << " " << strlen(Name)
<< " " << Name;
size_t NextAlignment = IsLast ? Granularity
: std::max(Granularity, Vars[i + 1].Alignment);
size_t SizeWithRedzone = VarAndRedzoneSize(Vars[i].Size, NextAlignment);
- size_t LifetimeShadowSize =
- (Vars[i].LifetimeSize + Granularity - 1) / Granularity;
- SB.insert(SB.end(), LifetimeShadowSize, kAsanStackUseAfterScopeMagic);
- if (Size / Granularity >= LifetimeShadowSize) {
- SB.insert(SB.end(), Size / Granularity - LifetimeShadowSize, 0);
- if (Size % Granularity)
- SB.insert(SB.end(), Size % Granularity);
- }
+ SB.insert(SB.end(), Size / Granularity, 0);
+ if (Size % Granularity)
+ SB.insert(SB.end(), Size % Granularity);
SB.insert(SB.end(), (SizeWithRedzone - Size) / Granularity,
IsLast ? kAsanStackRightRedzoneMagic
: kAsanStackMidRedzoneMagic);
Vars[i].Offset = Offset;
Offset += SizeWithRedzone;
- assert(Offset == SB.size() * Granularity);
}
if (Offset % MinHeaderSize) {
size_t ExtraRedzone = MinHeaderSize - (Offset % MinHeaderSize);
OpenPOWER on IntegriCloud