aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/ADT/PointerUnion.h
diff options
context:
space:
mode:
authorDouglas Gregor <doug.gregor@gmail.com>2009-03-31 23:19:54 +0000
committerDouglas Gregor <doug.gregor@gmail.com>2009-03-31 23:19:54 +0000
commit0620b6c3201c1656ec9a4e21998aebf4a3864592 (patch)
tree3db35923509382a644c55695b600ecb1bb837ab4 /include/llvm/ADT/PointerUnion.h
parentbf67bc6a3d5a6aa8cf22f4389900e2e82120f990 (diff)
downloadexternal_llvm-0620b6c3201c1656ec9a4e21998aebf4a3864592.zip
external_llvm-0620b6c3201c1656ec9a4e21998aebf4a3864592.tar.gz
external_llvm-0620b6c3201c1656ec9a4e21998aebf4a3864592.tar.bz2
Allow the use of pointers to const within PointerUnion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68159 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/ADT/PointerUnion.h')
-rw-r--r--include/llvm/ADT/PointerUnion.h12
1 files changed, 8 insertions, 4 deletions
diff --git a/include/llvm/ADT/PointerUnion.h b/include/llvm/ADT/PointerUnion.h
index 1075711..b3baec1 100644
--- a/include/llvm/ADT/PointerUnion.h
+++ b/include/llvm/ADT/PointerUnion.h
@@ -69,11 +69,13 @@ namespace llvm {
PointerUnion() {}
PointerUnion(PT1 V) {
- Val.setPointer(PointerLikeTypeTraits<PT1>::getAsVoidPointer(V));
+ Val.setPointer(
+ const_cast<void *>(PointerLikeTypeTraits<PT1>::getAsVoidPointer(V)));
Val.setInt(0);
}
PointerUnion(PT2 V) {
- Val.setPointer(PointerLikeTypeTraits<PT2>::getAsVoidPointer(V));
+ Val.setPointer(
+ const_cast<void *>(PointerLikeTypeTraits<PT2>::getAsVoidPointer(V)));
Val.setInt(1);
}
@@ -109,12 +111,14 @@ namespace llvm {
/// Assignment operators - Allow assigning into this union from either
/// pointer type, setting the discriminator to remember what it came from.
const PointerUnion &operator=(const PT1 &RHS) {
- Val.setPointer(PointerLikeTypeTraits<PT1>::getAsVoidPointer(RHS));
+ Val.setPointer(
+ const_cast<void *>(PointerLikeTypeTraits<PT1>::getAsVoidPointer(RHS)));
Val.setInt(0);
return *this;
}
const PointerUnion &operator=(const PT2 &RHS) {
- Val.setPointer(PointerLikeTypeTraits<PT2>::getAsVoidPointer(RHS));
+ Val.setPointer(
+ const_cast<void *>(PointerLikeTypeTraits<PT2>::getAsVoidPointer(RHS)));
Val.setInt(1);
return *this;
}