summaryrefslogtreecommitdiff
path: root/lib/ExecutionEngine/ExecutionEngine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ExecutionEngine/ExecutionEngine.cpp')
-rw-r--r--lib/ExecutionEngine/ExecutionEngine.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/lib/ExecutionEngine/ExecutionEngine.cpp b/lib/ExecutionEngine/ExecutionEngine.cpp
index 94a2542e7a..99f6ec691a 100644
--- a/lib/ExecutionEngine/ExecutionEngine.cpp
+++ b/lib/ExecutionEngine/ExecutionEngine.cpp
@@ -645,16 +645,17 @@ GenericValue ExecutionEngine::getConstantValue(const Constant *C) {
}
case Instruction::PtrToInt: {
GenericValue GV = getConstantValue(Op0);
- unsigned AS = cast<PointerType>(CE->getOperand(1)->getType())
- ->getAddressSpace();
- uint32_t PtrWidth = TD->getPointerSizeInBits(AS);
+ assert(CE->getOperand(1)->getType()->isPointerTy() &&
+ "Must be a pointer type!");
+ uint32_t PtrWidth = TD->getTypeSizeInBits(CE->getOperand(1)->getType());
GV.IntVal = APInt(PtrWidth, uintptr_t(GV.PointerVal));
return GV;
}
case Instruction::IntToPtr: {
GenericValue GV = getConstantValue(Op0);
- unsigned AS = cast<PointerType>(CE->getType())->getAddressSpace();
- uint32_t PtrWidth = TD->getPointerSizeInBits(AS);
+ assert(CE->getOperand(1)->getType()->isPointerTy() &&
+ "Must be a pointer type!");
+ uint32_t PtrWidth = TD->getTypeSizeInBits(CE->getType());
if (PtrWidth != GV.IntVal.getBitWidth())
GV.IntVal = GV.IntVal.zextOrTrunc(PtrWidth);
assert(GV.IntVal.getBitWidth() <= 64 && "Bad pointer width");