forked from OSchip/llvm-project
tsan: fix windows meta mapping
Currently windows fails on startup with: CHECK failed: gotsan.cc:3077 "(((m - prev_m) / kMetaShadowSize)) == (((p - prev) / kMetaShadowCell))" (0x3ffffffeffffff7e, 0x6ffffff7e) Make MemToMeta do the same MemToShadow does on windows: add offset instead of or'ing it. llvm-svn: 285420
This commit is contained in:
parent
22a03e435a
commit
693163e723
|
@ -660,8 +660,13 @@ u32 *MemToMetaImpl(uptr x) {
|
|||
return (u32*)(((((x) & ~(Mapping::kAppMemMsk | (kMetaShadowCell - 1)))) /
|
||||
kMetaShadowCell * kMetaShadowSize) | Mapping::kMetaShadowBeg);
|
||||
#else
|
||||
# ifndef SANITIZER_WINDOWS
|
||||
return (u32*)(((x & ~(kMetaShadowCell - 1)) / \
|
||||
kMetaShadowCell * kMetaShadowSize) | Mapping::kMetaShadowBeg);
|
||||
# else
|
||||
return (u32*)(((x & ~(kMetaShadowCell - 1)) / \
|
||||
kMetaShadowCell * kMetaShadowSize) + Mapping::kMetaShadowBeg);
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue