Lines Matching refs:RV
1213 void CodeGenFunction::EmitReturnOfRValue(RValue RV, QualType Ty) { in EmitReturnOfRValue() argument
1214 if (RV.isScalar()) { in EmitReturnOfRValue()
1215 Builder.CreateStore(RV.getScalarVal(), ReturnValue); in EmitReturnOfRValue()
1216 } else if (RV.isAggregate()) { in EmitReturnOfRValue()
1218 LValue Src = MakeAddrLValue(RV.getAggregateAddress(), Ty); in EmitReturnOfRValue()
1221 EmitStoreOfComplex(RV.getComplexVal(), MakeAddrLValue(ReturnValue, Ty), in EmitReturnOfRValue()
1295 const Expr *RV = S.getRetValue(); in EmitReturnStmt() local
1305 SaveRetExprRAII SaveRetExpr(RV, *this); in EmitReturnStmt()
1308 if (const auto *EWC = dyn_cast_or_null<ExprWithCleanups>(RV)) in EmitReturnStmt()
1309 RV = EWC->getSubExpr(); in EmitReturnStmt()
1327 } else if (!ReturnValue.isValid() || (RV && RV->getType()->isVoidType())) { in EmitReturnStmt()
1330 if (RV) { in EmitReturnStmt()
1331 EmitAnyExpr(RV); in EmitReturnStmt()
1332 if (auto *CE = dyn_cast<CallExpr>(RV)) in EmitReturnStmt()
1335 } else if (!RV) { in EmitReturnStmt()
1340 RValue Result = EmitReferenceBindingToExpr(RV); in EmitReturnStmt()
1343 switch (getEvaluationKind(RV->getType())) { in EmitReturnStmt()
1345 Builder.CreateStore(EmitScalarExpr(RV), ReturnValue); in EmitReturnStmt()
1348 EmitComplexExprIntoLValue(RV, MakeAddrLValue(ReturnValue, RV->getType()), in EmitReturnStmt()
1352 EmitAggExpr(RV, AggValueSlot::forAddr( in EmitReturnStmt()
1363 if (!RV || RV->isEvaluatable(getContext())) in EmitReturnStmt()