diff options
Diffstat (limited to 'lib/CodeGen/CGExpr.cpp')
| -rw-r--r-- | lib/CodeGen/CGExpr.cpp | 7 | 
1 files changed, 6 insertions, 1 deletions
| diff --git a/lib/CodeGen/CGExpr.cpp b/lib/CodeGen/CGExpr.cpp index 9f40ee5a00a3d..9572bd3543bd7 100644 --- a/lib/CodeGen/CGExpr.cpp +++ b/lib/CodeGen/CGExpr.cpp @@ -73,9 +73,12 @@ Address CodeGenFunction::CreateTempAlloca(llvm::Type *Ty, CharUnits Align,    // cast alloca to the default address space when necessary.    if (CastToDefaultAddrSpace && getASTAllocaAddressSpace() != LangAS::Default) {      auto DestAddrSpace = getContext().getTargetAddressSpace(LangAS::Default); +    auto CurIP = Builder.saveIP(); +    Builder.SetInsertPoint(AllocaInsertPt);      V = getTargetHooks().performAddrSpaceCast(          *this, V, getASTAllocaAddressSpace(), LangAS::Default,          Ty->getPointerTo(DestAddrSpace), /*non-null*/ true); +    Builder.restoreIP(CurIP);    }    return Address(V, Align); @@ -3052,7 +3055,9 @@ static llvm::Value *emitArraySubscriptGEP(CodeGenFunction &CGF,                                            SourceLocation loc,                                      const llvm::Twine &name = "arrayidx") {    if (inbounds) { -    return CGF.EmitCheckedInBoundsGEP(ptr, indices, signedIndices, loc, name); +    return CGF.EmitCheckedInBoundsGEP(ptr, indices, signedIndices, +                                      CodeGenFunction::NotSubtraction, loc, +                                      name);    } else {      return CGF.Builder.CreateGEP(ptr, indices, name);    } | 
