[PATCH] D39471: [asan] Fix small X86_64 ShadowOffset for non-default shadow scale

Vitaly Buka via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 15 15:50:11 PST 2017


vitalybuka added inline comments.


================
Comment at: llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp:293
                                    cl::desc("scale of asan shadow mapping"),
                                    cl::Hidden, cl::init(0));
 
----------------
eugenis wrote:
> vitalybuka wrote:
> > @eugenis why do we need 0 here and not just kDefaultShadowScale
> No idea. Looks strange. Check code history?
it's from the original commit which added entire file. so no explanation

@waltl nothing need to be changed here


================
Comment at: llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp:524
       else
-        Mapping.Offset = kSmallX86_64ShadowOffset;
+        Mapping.Offset = 0x7FFFFFFF & (0xFFFFF000 << Mapping.Scale);
     } else if (IsWindows && IsX86_64) {
----------------
kcc wrote:
> vitalybuka wrote:
> > UB of shifting into sign bit?
> > 0xFFFFF000ULL?
> > Same above.
> Please don't use constants in the code. 
kSmallX86_64ShadowOffset << (Mapping.Scale - kDefaultShadowScale) ?



https://reviews.llvm.org/D39471





More information about the llvm-commits mailing list