diff options
author | Jordan Rose <jordan_rose@apple.com> | 2016-02-18 22:03:23 +0000 |
---|---|---|
committer | Jordan Rose <jordan_rose@apple.com> | 2016-02-18 22:03:23 +0000 |
commit | c3f86a302f5cfd68a2ad760f009c801857d110b6 (patch) | |
tree | d8ad9e6626335a75fb6b9d3e652c8ffc94d60818 | |
parent | a35f7d383faaab6b543022fbeceb6bdf9c274460 (diff) | |
download | bcm5719-llvm-c3f86a302f5cfd68a2ad760f009c801857d110b6.tar.gz bcm5719-llvm-c3f86a302f5cfd68a2ad760f009c801857d110b6.zip |
[ADT] Be less clever when using a nonce type for disambiguation.
Old compilers don't like constexpr, but we're only going to use this in one
place anyway: this file. Everyone else should go through PointerLikeTypeTraits.
Update to r261259.
llvm-svn: 261268
-rw-r--r-- | llvm/include/llvm/ADT/PointerEmbeddedInt.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/llvm/include/llvm/ADT/PointerEmbeddedInt.h b/llvm/include/llvm/ADT/PointerEmbeddedInt.h index 546597f4577..2279d43405f 100644 --- a/llvm/include/llvm/ADT/PointerEmbeddedInt.h +++ b/llvm/include/llvm/ADT/PointerEmbeddedInt.h @@ -45,7 +45,9 @@ class PointerEmbeddedInt { Mask = static_cast<uintptr_t>(-1) << Bits }; - static constexpr const struct RawValueTag {} RawValue = RawValueTag(); + struct RawValueTag { + explicit RawValueTag() = default; + }; friend class PointerLikeTypeTraits<PointerEmbeddedInt>; @@ -86,10 +88,10 @@ public: return reinterpret_cast<void *>(P.Value); } static inline T getFromVoidPointer(void *P) { - return T(reinterpret_cast<uintptr_t>(P), T::RawValue); + return T(reinterpret_cast<uintptr_t>(P), typename T::RawValueTag()); } static inline T getFromVoidPointer(const void *P) { - return T(reinterpret_cast<uintptr_t>(P), T::RawValue); + return T(reinterpret_cast<uintptr_t>(P), typename T::RawValueTag()); } enum { NumLowBitsAvailable = T::Shift }; |