summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJordan Rose <jordan_rose@apple.com>2016-02-18 22:03:23 +0000
committerJordan Rose <jordan_rose@apple.com>2016-02-18 22:03:23 +0000
commitc3f86a302f5cfd68a2ad760f009c801857d110b6 (patch)
treed8ad9e6626335a75fb6b9d3e652c8ffc94d60818
parenta35f7d383faaab6b543022fbeceb6bdf9c274460 (diff)
downloadbcm5719-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.h8
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 };
OpenPOWER on IntegriCloud