The code was already using union and memcpy to do this. Remove the memcpy. We can't just change the union because a reference to its member is returned.
llvm-svn: 342759
#ifndef LLVM_ADT_POINTERSUMTYPE_H
#define LLVM_ADT_POINTERSUMTYPE_H
+#include "llvm/ADT/bit.h"
#include "llvm/ADT/DenseMapInfo.h"
#include "llvm/Support/PointerLikeTypeTraits.h"
#include <cassert>
}
uintptr_t getOpaqueValue() const {
- uintptr_t Value;
// Read the underlying storage of the union, regardless of the active
// member.
- memcpy(&Value, &Storage, sizeof(Value));
- return Value;
+ return bit_cast<uintptr_t>(Storage);
}
protected: