Hello,
SemaCXX/underlying_type.cpp fails on Mingw/Msys with the following message:
Assertion failed: (PtrVal & ((1 << PtrTraits::NumLowBitsAvailable)-1)) == 0 && “Pointer is not sufficiently aligned”, file d:/clang/llvm/include/llvm/ADT/PointerIntPair.h, line 80
From this function:
void setPointer(PointerTy 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.
Value = PtrVal | (Value & ~PointerBitMask);
}
I don’t know whether the problem only occurs on mingw/msys or also occurs on a “bare” windows system.
– Matthieu.