15 #ifndef LLVM_SUPPORT_POINTERLIKETYPETRAITS_H
16 #define LLVM_SUPPORT_POINTERLIKETYPETRAITS_H
18 #include "llvm/Support/DataTypes.h"
38 return static_cast<T*
>(
P);
47 enum { NumLowBitsAvailable = 2 };
57 return NonConst::getAsVoidPointer(const_cast<T*>(P));
60 return NonConst::getFromVoidPointer(const_cast<void*>(P));
62 enum { NumLowBitsAvailable = NonConst::NumLowBitsAvailable };
70 return reinterpret_cast<void*
>(
P);
73 return reinterpret_cast<uintptr_t
>(
P);
76 enum { NumLowBitsAvailable = 0 };
static T * getFromVoidPointer(void *P)
static void * getAsVoidPointer(T *P)
static const T * getFromVoidPointer(const void *P)
static void * getAsVoidPointer(uintptr_t P)
static uintptr_t getFromVoidPointer(void *P)
static const void * getAsVoidPointer(const T *P)