forked from OSchip/llvm-project
Silence ubsan after r367926.
Fixes e.g. http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-bootstrap-ubsan/builds/14273 We can't left shift here because left shifting of a negative number is UB. The same doesn't apply to unsigned arithmetic, but switching to unsigned doesn't appear to stop ubsan from complaining, so we need to mask out the high bits. llvm-svn: 367959
This commit is contained in:
parent
15e468e0d5
commit
f0380bac5f
|
@ -178,6 +178,7 @@ std::error_code SymbolizableObjectFile::addSymbol(const SymbolRef &Symbol,
|
|||
if (UntagAddresses) {
|
||||
// For kernel addresses, bits 56-63 need to be set, so we sign extend bit 55
|
||||
// into bits 56-63 instead of masking them out.
|
||||
SymbolAddress &= (1ull << 56) - 1;
|
||||
SymbolAddress = (int64_t(SymbolAddress) << 8) >> 8;
|
||||
}
|
||||
if (OpdExtractor) {
|
||||
|
|
Loading…
Reference in New Issue