[PATCH] D109816: [hwasan] also omit safe mem[cpy|mov|set].
Evgenii Stepanov via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 15 12:37:26 PDT 2021
eugenis added inline comments.
================
Comment at: llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp:789
return true;
- } else if (SSI && SSI->accessIsSafe(*Inst)) {
+ } else if (SSI && SSI->accessIsSafe(*Inst) && findAllocaForValue(Ptr)) {
return true;
----------------
Is this a separate bugfix?
Am I right that this is not needed for regular load/store because the argument is required to be 100% traceable to a single alloca, but 2-args memintrinsics are safe if one arg is 100%, and the other is 100% not stack? That does not sound right.
The comment on accessIsSafe does not even try to cover such cases. Also, I do not see any tests under Analysis/StackSafety for the mixed memintrinsic case.
================
Comment at: llvm/test/Instrumentation/HWAddressSanitizer/stack-safety-analysis.ll:132
+ %y = bitcast [10 x i8]* %buf.sroa.1 to i8*
+ call void @llvm.lifetime.start.p0i8(i64 10, i8* nonnull %x)
+ call void @llvm.lifetime.start.p0i8(i64 10, i8* nonnull %y)
----------------
If lifetimes are irrelevant to a test case, you can just remove them altogether.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D109816/new/
https://reviews.llvm.org/D109816
More information about the llvm-commits
mailing list