diff --git a/clang/lib/CodeGen/CGExprScalar.cpp b/clang/lib/CodeGen/CGExprScalar.cpp index e09793b7bf72..2fe946c82624 100644 --- a/clang/lib/CodeGen/CGExprScalar.cpp +++ b/clang/lib/CodeGen/CGExprScalar.cpp @@ -807,7 +807,7 @@ class ScalarExprEmitter if (E->getKind() == BoundsValueExpr::Kind::Temporary) { CHKCBindTemporaryExpr *Temp = E->getTemporaryBinding(); assert(!Temp->getSubExpr()->isLValue()); - Result = CGF.getBoundsTemporaryLValueMapping(Temp).getPointer(); + Result = CGF.getBoundsTemporaryRValueMapping(Temp).getScalarVal(); } else llvm_unreachable("unexpected bounds value expr"); assert(Result); diff --git a/clang/lib/CodeGen/CodeGenFunction.h b/clang/lib/CodeGen/CodeGenFunction.h index 2f24e6225975..49c1390954c4 100644 --- a/clang/lib/CodeGen/CodeGenFunction.h +++ b/clang/lib/CodeGen/CodeGenFunction.h @@ -2113,9 +2113,9 @@ class CodeGenFunction : public CodeGenTypeCache { return it->second; } - /// getBoundsTemporaryLValueMapping - Given a bounds temporary (which + /// getBoundsTemporaryRValueMapping - Given a bounds temporary (which /// must be mapped to an l-value), return its mapping. - const RValue &getBoundsTemporaryRValueMapping(const CHKCBindTemporaryExpr *e) { + RValue getBoundsTemporaryRValueMapping(const CHKCBindTemporaryExpr *e) { assert (!e->getSubExpr()->isLValue()); llvm::DenseMap::iterator