diff options
Diffstat (limited to 'clang/lib/CodeGen/CGExprConstant.cpp')
-rw-r--r-- | clang/lib/CodeGen/CGExprConstant.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CGExprConstant.cpp b/clang/lib/CodeGen/CGExprConstant.cpp index 82382ddf688..bce0475cbc0 100644 --- a/clang/lib/CodeGen/CGExprConstant.cpp +++ b/clang/lib/CodeGen/CGExprConstant.cpp @@ -1063,7 +1063,9 @@ llvm::Constant *CodeGenModule::EmitConstantValue(const APValue &Value, // Apply offset if necessary. if (!Offset->isNullValue()) { - llvm::Constant *Casted = llvm::ConstantExpr::getBitCast(C, Int8PtrTy); + unsigned AS = C->getType()->getPointerAddressSpace(); + llvm::Type *CharPtrTy = Int8Ty->getPointerTo(AS); + llvm::Constant *Casted = llvm::ConstantExpr::getBitCast(C, CharPtrTy); Casted = llvm::ConstantExpr::getGetElementPtr(Casted, Offset); C = llvm::ConstantExpr::getPointerCast(Casted, C->getType()); } |