mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-21 03:32:21 +00:00
Fix a few places where PointerIntPair was using PointerLikeTypeTraits<PointerTy>
instead of the PtrTraits provided. Allows PointerIntPair to contain a PointerUnion safely, as long as the bits add up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82163 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
2ef4d5dbf3
commit
2fed70daaf
@ -65,7 +65,8 @@ public:
|
||||
}
|
||||
|
||||
PointerTy getPointer() const {
|
||||
return reinterpret_cast<PointerTy>(Value & PointerBitMask);
|
||||
return PtrTraits::getFromVoidPointer(
|
||||
reinterpret_cast<void*>(Value & PointerBitMask));
|
||||
}
|
||||
|
||||
IntType getInt() const {
|
||||
@ -73,7 +74,8 @@ public:
|
||||
}
|
||||
|
||||
void setPointer(PointerTy Ptr) {
|
||||
intptr_t PtrVal = reinterpret_cast<intptr_t>(Ptr);
|
||||
intptr_t PtrVal
|
||||
= reinterpret_cast<intptr_t>(PtrTraits::getAsVoidPointer(Ptr));
|
||||
assert((PtrVal & ((1 << PtrTraits::NumLowBitsAvailable)-1)) == 0 &&
|
||||
"Pointer is not sufficiently aligned");
|
||||
// Preserve all low bits, just update the pointer.
|
||||
@ -141,8 +143,7 @@ public:
|
||||
return PointerIntPair<PointerTy, IntBits, IntType>::getFromOpaqueValue(P);
|
||||
}
|
||||
enum {
|
||||
NumLowBitsAvailable =
|
||||
PointerLikeTypeTraits<PointerTy>::NumLowBitsAvailable - IntBits
|
||||
NumLowBitsAvailable = PtrTraits::NumLowBitsAvailable - IntBits
|
||||
};
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user