X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=include%2Fllvm%2FSupport%2FPointerLikeTypeTraits.h;h=b0edd3bd09f99d8049cf27b9d21a5d8f82366c85;hb=7362ce08cb2c1f0b544b18dbc21630fb4baebcfc;hp=000919ca109ad09dcff462d39c55f8d00ce14149;hpb=e30173ac3396510bd0bb26a66fd615ff9083436d;p=oota-llvm.git diff --git a/include/llvm/Support/PointerLikeTypeTraits.h b/include/llvm/Support/PointerLikeTypeTraits.h index 000919ca109..b0edd3bd09f 100644 --- a/include/llvm/Support/PointerLikeTypeTraits.h +++ b/include/llvm/Support/PointerLikeTypeTraits.h @@ -15,6 +15,8 @@ #ifndef LLVM_SUPPORT_POINTERLIKETYPETRAITS_H #define LLVM_SUPPORT_POINTERLIKETYPETRAITS_H +#include "llvm/Support/DataTypes.h" + namespace llvm { /// PointerLikeTypeTraits - This is a traits object that is used to handle @@ -42,7 +44,7 @@ public: /// /// All clients should use assertions to do a run-time check to ensure that /// this is actually true. - enum { NumLowBitsAvailable = 3 }; + enum { NumLowBitsAvailable = 2 }; }; // Provide PointerLikeTypeTraits for const pointers. @@ -53,7 +55,21 @@ public: static inline const T *getFromVoidPointer(const void *P) { return static_cast(P); } - enum { NumLowBitsAvailable = 3 }; + enum { NumLowBitsAvailable = 2 }; +}; + +// Provide PointerLikeTypeTraits for uintptr_t. +template<> +class PointerLikeTypeTraits { +public: + static inline void *getAsVoidPointer(uintptr_t P) { + return reinterpret_cast(P); + } + static inline uintptr_t getFromVoidPointer(void *P) { + return reinterpret_cast(P); + } + // No bits are available! + enum { NumLowBitsAvailable = 0 }; }; } // end namespace llvm