diff options
-rw-r--r-- | llvm/include/llvm/ADT/PointerUnion.h | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/llvm/include/llvm/ADT/PointerUnion.h b/llvm/include/llvm/ADT/PointerUnion.h index 1075711ec0c..b3baec1ff37 100644 --- a/llvm/include/llvm/ADT/PointerUnion.h +++ b/llvm/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; } |