On Thu, Nov 04, 2021 at 01:25:43PM +0100, Martin Liška wrote: > diff --git a/libsanitizer/asan/asan_mapping.h > b/libsanitizer/asan/asan_mapping.h > index 4b0037fced3..e5a7f2007ae 100644 > --- a/libsanitizer/asan/asan_mapping.h > +++ b/libsanitizer/asan/asan_mapping.h > @@ -165,7 +165,7 @@ static const u64 kAArch64_ShadowOffset64 = 1ULL << 36; > static const u64 kRiscv64_ShadowOffset64 = 0xd55550000; > static const u64 kMIPS32_ShadowOffset32 = 0x0aaa0000; > static const u64 kMIPS64_ShadowOffset64 = 1ULL << 37; > -static const u64 kPPC64_ShadowOffset64 = 1ULL << 41; > +static const u64 kPPC64_ShadowOffset64 = 1ULL << 44; > static const u64 kSystemZ_ShadowOffset64 = 1ULL << 52; > static const u64 kSPARC64_ShadowOffset64 = 1ULL << 43; // 0x80000000000 > static const u64 kFreeBSD_ShadowOffset32 = 1ULL << 30; // 0x40000000
This looks wrong. If anything, rs6000.c still has: static unsigned HOST_WIDE_INT rs6000_asan_shadow_offset (void) { return (unsigned HOST_WIDE_INT) 1 << (TARGET_64BIT ? 41 : 29); } but just blindly changing it doesn't look a good idea, I vaguely remember issues with this in the past. I think ppc64 has various virtual address space sizes and trying to find one that works with all of them is hard. Jakub