diff options
author | Nikola Smiljanic <popizdeh@gmail.com> | 2014-05-29 10:55:11 +0000 |
---|---|---|
committer | Nikola Smiljanic <popizdeh@gmail.com> | 2014-05-29 10:55:11 +0000 |
commit | be481708fbf991648a06950b0f9c7d1d081800bc (patch) | |
tree | 076306a53d87f48ab823686179ff8bde43f6f553 /lib/Sema/SemaExpr.cpp | |
parent | 1bb87404d0ed9c92b4e5b1916d3bdce5435e28bb (diff) | |
download | clang-be481708fbf991648a06950b0f9c7d1d081800bc.tar.gz clang-be481708fbf991648a06950b0f9c7d1d081800bc.tar.bz2 clang-be481708fbf991648a06950b0f9c7d1d081800bc.tar.xz |
Refactoring. Remove release and take methods from ActionResult. Rename takeAs to getAs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209800 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Sema/SemaExpr.cpp')
-rw-r--r-- | lib/Sema/SemaExpr.cpp | 440 |
1 files changed, 220 insertions, 220 deletions
diff --git a/lib/Sema/SemaExpr.cpp b/lib/Sema/SemaExpr.cpp index 36b54a248d..d739b8614b 100644 --- a/lib/Sema/SemaExpr.cpp +++ b/lib/Sema/SemaExpr.cpp @@ -425,7 +425,7 @@ ExprResult Sema::DefaultFunctionArrayConversion(Expr *E) { if (E->getType()->isPlaceholderType()) { ExprResult result = CheckPlaceholderExpr(E); if (result.isInvalid()) return ExprError(); - E = result.take(); + E = result.get(); } QualType Ty = E->getType(); @@ -439,7 +439,7 @@ ExprResult Sema::DefaultFunctionArrayConversion(Expr *E) { return ExprError(); } E = ImpCastExprToType(E, Context.getPointerType(Ty), - CK_FunctionToPointerDecay).take(); + CK_FunctionToPointerDecay).get(); } else if (Ty->isArrayType()) { // In C90 mode, arrays only promote to pointers if the array expression is // an lvalue. The relevant legalese is C90 6.2.2.1p3: "an lvalue that has @@ -454,7 +454,7 @@ ExprResult Sema::DefaultFunctionArrayConversion(Expr *E) { // if (getLangOpts().C99 || getLangOpts().CPlusPlus || E->isLValue()) E = ImpCastExprToType(E, Context.getArrayDecayedType(Ty), - CK_ArrayToPointerDecay).take(); + CK_ArrayToPointerDecay).get(); } return Owned(E); } @@ -539,7 +539,7 @@ ExprResult Sema::DefaultLvalueConversion(Expr *E) { if (E->getType()->isPlaceholderType()) { ExprResult result = CheckPlaceholderExpr(E); if (result.isInvalid()) return ExprError(); - E = result.take(); + E = result.get(); } // C++ [conv.lval]p1: @@ -630,7 +630,7 @@ ExprResult Sema::DefaultFunctionArrayLvalueConversion(Expr *E) { ExprResult Res = DefaultFunctionArrayConversion(E); if (Res.isInvalid()) return ExprError(); - Res = DefaultLvalueConversion(Res.take()); + Res = DefaultLvalueConversion(Res.get()); if (Res.isInvalid()) return ExprError(); return Res; @@ -645,14 +645,14 @@ ExprResult Sema::CallExprUnaryConversions(Expr *E) { // to function type. if (Ty->isFunctionType()) { Res = ImpCastExprToType(E, Context.getPointerType(Ty), - CK_FunctionToPointerDecay).take(); + CK_FunctionToPointerDecay).get(); if (Res.isInvalid()) return ExprError(); } - Res = DefaultLvalueConversion(Res.take()); + Res = DefaultLvalueConversion(Res.get()); if (Res.isInvalid()) return ExprError(); - return Owned(Res.take()); + return Owned(Res.get()); } /// UsualUnaryConversions - Performs various conversions that are common to most @@ -665,14 +665,14 @@ ExprResult Sema::UsualUnaryConversions(Expr *E) { ExprResult Res = DefaultFunctionArrayLvalueConversion(E); if (Res.isInvalid()) return ExprError(); - E = Res.take(); + E = Res.get(); QualType Ty = E->getType(); assert(!Ty.isNull() && "UsualUnaryConversions - missing type"); // Half FP have to be promoted to float unless it is natively supported if (Ty->isHalfType() && !getLangOpts().NativeHalfType) - return ImpCastExprToType(Res.take(), Context.FloatTy, CK_FloatingCast); + return ImpCastExprToType(Res.get(), Context.FloatTy, CK_FloatingCast); // Try to perform integral promotions if the object has a theoretically // promotable type. @@ -693,12 +693,12 @@ ExprResult Sema::UsualUnaryConversions(Expr *E) { QualType PTy = Context.isPromotableBitField(E); if (!PTy.isNull()) { - E = ImpCastExprToType(E, PTy, CK_IntegralCast).take(); + E = ImpCastExprToType(E, PTy, CK_IntegralCast).get(); return Owned(E); } if (Ty->isPromotableIntegerType()) { QualType PT = Context.getPromotedIntegerType(Ty); - E = ImpCastExprToType(E, PT, CK_IntegralCast).take(); + E = ImpCastExprToType(E, PT, CK_IntegralCast).get(); return Owned(E); } } @@ -716,14 +716,14 @@ ExprResult Sema::DefaultArgumentPromotion(Expr *E) { ExprResult Res = UsualUnaryConversions(E); if (Res.isInvalid()) return ExprError(); - E = Res.take(); + E = Res.get(); // If this is a 'float' or '__fp16' (CVR qualified or typedef) promote to // double. const BuiltinType *BTy = Ty->getAs<BuiltinType>(); if (BTy && (BTy->getKind() == BuiltinType::Half || BTy->getKind() == BuiltinType::Float)) - E = ImpCastExprToType(E, Context.DoubleTy, CK_FloatingCast).take(); + E = ImpCastExprToType(E, Context.DoubleTy, CK_FloatingCast).get(); // C++ performs lvalue-to-rvalue conversion as a default argument // promotion, even on class types, but note: @@ -855,14 +855,14 @@ ExprResult Sema::DefaultVariadicArgumentPromotion(Expr *E, VariadicCallType CT, ExprResult ExprRes = CheckPlaceholderExpr(E); if (ExprRes.isInvalid()) return ExprError(); - E = ExprRes.take(); + E = ExprRes.get(); } } ExprResult ExprRes = DefaultArgumentPromotion(E); if (ExprRes.isInvalid()) return ExprError(); - E = ExprRes.take(); + E = ExprRes.get(); // Diagnostics regarding non-POD argument types are // emitted along with format string checking in Sema::CheckFunctionCall(). @@ -913,12 +913,12 @@ static bool handleIntegerToComplexFloatConversion(Sema &S, ExprResult &IntExpr, if (SkipCast) return false; if (IntTy->isIntegerType()) { QualType fpTy = cast<ComplexType>(ComplexTy)->getElementType(); - IntExpr = S.ImpCastExprToType(IntExpr.take(), fpTy, CK_IntegralToFloating); - IntExpr = S.ImpCastExprToType(IntExpr.take(), ComplexTy, + IntExpr = S.ImpCastExprToType(IntExpr.get(), fpTy, CK_IntegralToFloating); + IntExpr = S.ImpCastExprToType(IntExpr.get(), ComplexTy, CK_FloatingRealToComplex); } else { assert(IntTy->isComplexIntegerType()); - IntExpr = S.ImpCastExprToType(IntExpr.take(), ComplexTy, + IntExpr = S.ImpCastExprToType(IntExpr.get(), ComplexTy, CK_IntegralComplexToFloatingComplex); } return false; @@ -936,12 +936,12 @@ handleComplexFloatToComplexFloatConverstion(Sema &S, ExprResult &LHS, if (order < 0) { // _Complex float -> _Complex double if (!IsCompAssign) - LHS = S.ImpCastExprToType(LHS.take(), RHSType, CK_FloatingComplexCast); + LHS = S.ImpCastExprToType(LHS.get(), RHSType, CK_FloatingComplexCast); return RHSType; } if (order > 0) // _Complex float -> _Complex double - RHS = S.ImpCastExprToType(RHS.take(), LHSType, CK_FloatingComplexCast); + RHS = S.ImpCastExprToType(RHS.get(), LHSType, CK_FloatingComplexCast); return LHSType; } @@ -962,8 +962,8 @@ static QualType handleOtherComplexFloatConversion(Sema &S, // float -> _Complex double if (ConvertOtherExpr) { QualType fp = cast<ComplexType>(ComplexTy)->getElementType(); - OtherExpr = S.ImpCastExprToType(OtherExpr.take(), fp, CK_FloatingCast); - OtherExpr = S.ImpCastExprToType(OtherExpr.take(), ComplexTy, + OtherExpr = S.ImpCastExprToType(OtherExpr.get(), fp, CK_FloatingCast); + OtherExpr = S.ImpCastExprToType(OtherExpr.get(), ComplexTy, CK_FloatingRealToComplex); } return ComplexTy; @@ -975,12 +975,12 @@ static QualType handleOtherComplexFloatConversion(Sema &S, // double -> _Complex double if (ConvertOtherExpr) - OtherExpr = S.ImpCastExprToType(OtherExpr.take(), result, + OtherExpr = S.ImpCastExprToType(OtherExpr.get(), result, CK_FloatingRealToComplex); // _Complex float -> _Complex double if (ConvertComplexExpr && order < 0) - ComplexExpr = S.ImpCastExprToType(ComplexExpr.take(), result, + ComplexExpr = S.ImpCastExprToType(ComplexExpr.get(), result, CK_FloatingComplexCast); return result; @@ -1042,7 +1042,7 @@ static QualType handleIntToFloatConversion(Sema &S, ExprResult &FloatExpr, if (IntTy->isIntegerType()) { if (ConvertInt) // Convert intExpr to the lhs floating point type. - IntExpr = S.ImpCastExprToType(IntExpr.take(), FloatTy, + IntExpr = S.ImpCastExprToType(IntExpr.get(), FloatTy, CK_IntegralToFloating); return FloatTy; } @@ -1053,12 +1053,12 @@ static QualType handleIntToFloatConversion(Sema &S, ExprResult &FloatExpr, // _Complex int -> _Complex float if (ConvertInt) - IntExpr = S.ImpCastExprToType(IntExpr.take(), result, + IntExpr = S.ImpCastExprToType(IntExpr.get(), result, CK_IntegralComplexToFloatingComplex); // float -> _Complex float if (ConvertFloat) - FloatExpr = S.ImpCastExprToType(FloatExpr.take(), result, + FloatExpr = S.ImpCastExprToType(FloatExpr.get(), result, CK_FloatingRealToComplex); return result; @@ -1077,13 +1077,13 @@ static QualType handleFloatConversion(Sema &S, ExprResult &LHS, if (LHSFloat && RHSFloat) { int order = S.Context.getFloatingTypeOrder(LHSType, RHSType); if (order > 0) { - RHS = S.ImpCastExprToType(RHS.take(), LHSType, CK_FloatingCast); + RHS = S.ImpCastExprToType(RHS.get(), LHSType, CK_FloatingCast); return LHSType; } assert(order < 0 && "illegal float comparison"); if (!IsCompAssign) - LHS = S.ImpCastExprToType(LHS.take(), RHSType, CK_FloatingCast); + LHS = S.ImpCastExprToType(LHS.get(), RHSType, CK_FloatingCast); return RHSType; } @@ -1125,29 +1125,29 @@ static QualType handleIntegerConversion(Sema &S, ExprResult &LHS, if (LHSSigned == RHSSigned) { // Same signedness; use the higher-ranked type if (order >= 0) { - RHS = (*doRHSCast)(S, RHS.take(), LHSType); + RHS = (*doRHSCast)(S, RHS.get(), LHSType); return LHSType; } else if (!IsCompAssign) - LHS = (*doLHSCast)(S, LHS.take(), RHSType); + LHS = (*doLHSCast)(S, LHS.get(), RHSType); return RHSType; } else if (order != (LHSSigned ? 1 : -1)) { // The unsigned type has greater than or equal rank to the // signed type, so use the unsigned type if (RHSSigned) { - RHS = (*doRHSCast)(S, RHS.take(), LHSType); + RHS = (*doRHSCast)(S, RHS.get(), LHSType); return LHSType; } else if (!IsCompAssign) - LHS = (*doLHSCast)(S, LHS.take(), RHSType); + LHS = (*doLHSCast)(S, LHS.get(), RHSType); return RHSType; } else if (S.Context.getIntWidth(LHSType) != S.Context.getIntWidth(RHSType)) { // The two types are different widths; if we are here, that // means the signed type is larger than the unsigned type, so // use the signed type. if (LHSSigned) { - RHS = (*doRHSCast)(S, RHS.take(), LHSType); + RHS = (*doRHSCast)(S, RHS.get(), LHSType); return LHSType; } else if (!IsCompAssign) - LHS = (*doLHSCast)(S, LHS.take(), RHSType); + LHS = (*doLHSCast)(S, LHS.get(), RHSType); return RHSType; } else { // The signed type is higher-ranked than the unsigned type, @@ -1156,9 +1156,9 @@ static QualType handleIntegerConversion(Sema &S, ExprResult &LHS, // to the signed type. QualType result = S.Context.getCorrespondingUnsignedType(LHSSigned ? LHSType : RHSType); - RHS = (*doRHSCast)(S, RHS.take(), result); + RHS = (*doRHSCast)(S, RHS.get(), result); if (!IsCompAssign) - LHS = (*doLHSCast)(S, LHS.take(), result); + LHS = (*doLHSCast)(S, LHS.get(), result); return result; } } @@ -1188,7 +1188,7 @@ static QualType handleComplexIntConversion(Sema &S, ExprResult &LHS, handleIntegerConversion<doComplexIntegralCast, doIntegralCast> (S, LHS, RHS, LHSEltType, RHSType, IsCompAssign); QualType ComplexType = S.Context.getComplexType(ScalarType); - RHS = S.ImpCastExprToType(RHS.take(), ComplexType, + RHS = S.ImpCastExprToType(RHS.get(), ComplexType, CK_IntegralRealToComplex); return ComplexType; @@ -1203,7 +1203,7 @@ static QualType handleComplexIntConversion(Sema &S, ExprResult &LHS, QualType ComplexType = S.Context.getComplexType(ScalarType); if (!IsCompAssign) - LHS = S.ImpCastExprToType(LHS.take(), ComplexType, + LHS = S.ImpCastExprToType(LHS.get(), ComplexType, CK_IntegralRealToComplex); return ComplexType; } @@ -1215,12 +1215,12 @@ static QualType handleComplexIntConversion(Sema &S, ExprResult &LHS, QualType Sema::UsualArithmeticConversions(ExprResult &LHS, ExprResult &RHS, bool IsCompAssign) { if (!IsCompAssign) { - LHS = UsualUnaryConversions(LHS.take()); + LHS = UsualUnaryConversions(LHS.get()); if (LHS.isInvalid()) return QualType(); } - RHS = UsualUnaryConversions(RHS.take()); + RHS = UsualUnaryConversions(RHS.get()); if (RHS.isInvalid()) return QualType(); @@ -1252,7 +1252,7 @@ QualType Sema::UsualArithmeticConversions(ExprResult &LHS, ExprResult &RHS, if (!LHSBitfieldPromoteTy.isNull()) LHSType = LHSBitfieldPromoteTy; if (LHSType != LHSUnpromotedType && !IsCompAssign) - LHS = ImpCastExprToType(LHS.take(), LHSType, CK_IntegralCast); + LHS = ImpCastExprToType(LHS.get(), LHSType, CK_IntegralCast); // If both types are identical, no conversion is needed. if (LHSType == RHSType) @@ -1324,7 +1324,7 @@ Sema::CreateGenericSelectionExpr(SourceLocation KeyLoc, if (ControllingExpr->getType()->isPlaceholderType()) { ExprResult result = CheckPlaceholderExpr(ControllingExpr); if (result.isInvalid()) return ExprError(); - ControllingExpr = result.take(); + ControllingExpr = result.get(); } bool TypeErrorFound = false, @@ -2018,7 +2018,7 @@ ExprResult Sema::ActOnIdExpression(Scope *S, if (E.isInvalid()) return ExprError(); - if (Expr *Ex = E.takeAs<Expr>()) + if (Expr *Ex = E.getAs<Expr>()) return Owned(Ex); } } @@ -2276,7 +2276,7 @@ Sema::LookupInObjCMethod(LookupResult &Lookup, Scope *S, if (SelfExpr.isInvalid()) return ExprError(); - SelfExpr = DefaultLvalueConversion(SelfExpr.take()); + SelfExpr = DefaultLvalueConversion(SelfExpr.get()); if (SelfExpr.isInvalid()) return ExprError(); @@ -2289,7 +2289,7 @@ Sema::LookupInObjCMethod(LookupResult &Lookup, Scope *S, ObjCIvarRefExpr *Result = new (Context) ObjCIvarRefExpr(IV, IV->getType(), Loc, IV->getLocation(), - SelfExpr.take(), + SelfExpr.get(), true, true); if (getLangOpts().ObjCAutoRefCount) { @@ -2449,7 +2449,7 @@ Sema::PerformObjectMemberConversion(Expr *From, if (PointerConversions) QType = Context.getPointerType(QType); From = ImpCastExprToType(From, QType, CK_UncheckedDerivedToBase, - VK, &BasePath).take(); + VK, &BasePath).get(); FromType = QType; FromRecordType = QRecordType; @@ -2486,7 +2486,7 @@ Sema::PerformObjectMemberConversion(Expr *From, if (PointerConversions) UType = Context.getPointerType(UType); From = ImpCastExprToType(From, UType, CK_UncheckedDerivedToBase, - VK, &BasePath).take(); + VK, &BasePath).get(); FromType = UType; FromRecordType = URecordType; } @@ -3101,10 +3101,10 @@ ExprResult Sema::ActOnNumericConstant(const Token &Tok, Scope *UDLScope) { if (Ty == Context.DoubleTy) { if (getLangOpts().SinglePrecisionConstants) { - Res = ImpCastExprToType(Res, Context.FloatTy, CK_FloatingCast).take(); + Res = ImpCastExprToType(Res, Context.FloatTy, CK_FloatingCast).get(); } else if (getLangOpts().OpenCL && !getOpenCLOptions().cl_khr_fp64) { Diag(Tok.getLocation(), diag::warn_double_const_requires_fp64); - Res = ImpCastExprToType(Res, Context.FloatTy, CK_FloatingCast).take(); + Res = ImpCastExprToType(Res, Context.FloatTy, CK_FloatingCast).get(); } } } else if (!Literal.isIntegerLiteral()) { @@ -3569,7 +3569,7 @@ Sema::CreateUnaryExprOrTypeTraitExpr(Expr *E, SourceLocation OpLoc, if (ExprKind == UETT_SizeOf && E->getType()->isVariableArrayType()) { PE = TransformToPotentiallyEvaluated(E); if (PE.isInvalid()) return ExprError(); - E = PE.take(); + E = PE.get(); } // C99 6.5.3.4p4: the type (an unsigned integer type) is size_t. @@ -3606,7 +3606,7 @@ static QualType CheckRealImagOperand(Sema &S, ExprResult &V, SourceLocation Loc, // _Real and _Imag are only l-values for normal l-values. if (V.get()->getObjectKind() != OK_Ordinary) { - V = S.DefaultLvalueConversion(V.take()); + V = S.DefaultLvalueConversion(V.get()); if (V.isInvalid()) return QualType(); } @@ -3648,7 +3648,7 @@ Sema::ActOnPostfixUnaryOp(Scope *S, SourceLocation OpLoc, // Since this might is a postfix expression, get rid of ParenListExprs. ExprResult Result = MaybeConvertParenListExprToParenExpr(S, Input); if (Result.isInvalid()) return ExprError(); - Input = Result.take(); + Input = Result.get(); return BuildUnaryOp(S, OpLoc, Opc, Input); } @@ -3677,7 +3677,7 @@ Sema::ActOnArraySubscriptExpr(Scope *S, Expr *base, SourceLocation lbLoc, if (isa<ParenListExpr>(base)) { ExprResult result = MaybeConvertParenListExprToParenExpr(S, base); if (result.isInvalid()) return ExprError(); - base = result.take(); + base = result.get(); } // Handle any non-overload placeholder types in the base and index @@ -3688,12 +3688,12 @@ Sema::ActOnArraySubscriptExpr(Scope *S, Expr *base, SourceLocation lbLoc, if (base->getType()->isNonOverloadPlaceholderType()) { ExprResult result = CheckPlaceholderExpr(base); if (result.isInvalid()) return ExprError(); - base = result.take(); + base = result.get(); } if (idx->getType()->isNonOverloadPlaceholderType()) { ExprResult result = CheckPlaceholderExpr(idx); if (result.isInvalid()) return ExprError(); - idx = result.take(); + idx = result.get(); } // Build an unanalyzed expression if either operand is type-dependent. @@ -3734,12 +3734,12 @@ Sema::CreateBuiltinArraySubscriptExpr(Expr *Base, SourceLocation LLoc, ExprResult Result = DefaultFunctionArrayLvalueConversion(LHSExp); if (Result.isInvalid()) return ExprError(); - LHSExp = Result.take(); + LHSExp = Result.get(); } ExprResult Result = DefaultFunctionArrayLvalueConversion(RHSExp); if (Result.isInvalid()) return ExprError(); - RHSExp = Result.take(); + RHSExp = Result.get(); QualType LHSTy = LHSExp->getType(), RHSTy = RHSExp->getType(); ExprValueKind VK = VK_LValue; @@ -3805,7 +3805,7 @@ Sema::CreateBuiltinArraySubscriptExpr(Expr *Base, SourceLocation LLoc, Diag(LHSExp->getLocStart(), diag::ext_subscript_non_lvalue) << LHSExp->getSourceRange(); LHSExp = ImpCastExprToType(LHSExp, Context.getArrayDecayedType(LHSTy), - CK_ArrayToPointerDecay).take(); + CK_ArrayToPointerDecay).get(); LHSTy = LHSExp->getType(); BaseExpr = LHSExp; @@ -3816,7 +3816,7 @@ Sema::CreateBuiltinArraySubscriptExpr(Expr *Base, SourceLocation LLoc, Diag(RHSExp->getLocStart(), diag::ext_subscript_non_lvalue) << RHSExp->getSourceRange(); RHSExp = ImpCastExprToType(RHSExp, Context.getArrayDecayedType(RHSTy), - CK_ArrayToPointerDecay).take(); + CK_ArrayToPointerDecay).get(); RHSTy = RHSExp->getType(); BaseExpr = RHSExp; @@ -3912,14 +3912,14 @@ ExprResult Sema::BuildCXXDefaultArgExpr(SourceLocation CallLoc, InitializationKind Kind = InitializationKind::CreateCopy(Param->getLocation(), /*FIXME:EqualLoc*/UninstExpr->getLocStart()); - Expr *ResultE = Result.takeAs<Expr>(); + Expr *ResultE = Result.getAs<Expr>(); InitializationSequence InitSeq(*this, Entity, Kind, ResultE); Result = InitSeq.Perform(*this, Entity, Kind, ResultE); if (Result.isInvalid()) return ExprError(); - Expr *Arg = Result.takeAs<Expr>(); + Expr *Arg = Result.getAs<Expr>(); CheckCompletedExpr(Arg, Param->getOuterLocStart()); // Build the default argument expression. return Owned(CXXDefaultArgExpr::Create(Context, CallLoc, Param, Arg)); @@ -4209,7 +4209,7 @@ bool Sema::GatherArgumentsForCall(SourceLocation CallLoc, FunctionDecl *FDecl, if (ArgE.isInvalid()) return true; - Arg = ArgE.takeAs<Expr>(); + Arg = ArgE.getAs<Expr>(); } else { assert(Param && "can't use default arguments without a known callee"); @@ -4218,7 +4218,7 @@ bool Sema::GatherArgumentsForCall(SourceLocation CallLoc, FunctionDecl *FDecl, if (ArgExpr.isInvalid()) return true; - Arg = ArgExpr.takeAs<Expr>(); + Arg = ArgExpr.getAs<Expr>(); } // Check for array bounds violations for each argument to the call. This @@ -4242,7 +4242,7 @@ bool Sema::GatherArgumentsForCall(SourceLocation CallLoc, FunctionDecl *FDecl, QualType paramType; // ignored ExprResult arg = checkUnknownAnyArg(CallLoc, Args[i], paramType); Invalid |= arg.isInvalid(); - AllArgs.push_back(arg.take()); + AllArgs.push_back(arg.get()); } // Otherwise do argument promotion, (C99 6.5.2.2p7). @@ -4251,7 +4251,7 @@ bool Sema::GatherArgumentsForCall(SourceLocation CallLoc, FunctionDecl *FDecl, ExprResult Arg = DefaultVariadicArgumentPromotion(Args[i], CallType, FDecl); Invalid |= Arg.isInvalid(); - AllArgs.push_back(Arg.take()); + AllArgs.push_back(Arg.get()); } } @@ -4373,7 +4373,7 @@ static bool checkArgsForPlaceholders(Sema &S, MultiExprArg args) { if (isPlaceholderToRemoveAsArg(args[i]->getType())) { ExprResult result = S.CheckPlaceholderExpr(args[i]); if (result.isInvalid()) hasInvalid = true; - else args[i] = result.take(); + else args[i] = result.get(); } } return hasInvalid; @@ -4389,7 +4389,7 @@ Sema::ActOnCallExpr(Scope *S, Expr *Fn, SourceLocation LParenLoc, // Since this might be a postfix expression, get rid of ParenListExprs. ExprResult Result = MaybeConvertParenListExprToParenExpr(S, Fn); if (Result.isInvalid()) return ExprError(); - Fn = Result.take(); + Fn = Result.get(); if (checkArgsForPlaceholders(*this, ArgExprs)) return ExprError(); @@ -4412,7 +4412,7 @@ Sema::ActOnCallExpr(Scope *S, Expr *Fn, SourceLocation LParenLoc, if (Fn->getType() == Context.PseudoObjectTy) { ExprResult result = CheckPlaceholderExpr(Fn); if (result.isInvalid()) return ExprError(); - Fn = result.take(); + Fn = result.get(); } // Determine whether this is a dependent call inside a C++ template, @@ -4445,7 +4445,7 @@ Sema::ActOnCallExpr(Scope *S, Expr *Fn, SourceLocation LParenLoc, if (Fn->getType() == Context.UnknownAnyTy) { ExprResult result = rebuildUnknownAnyFunction(*this, Fn); if (result.isInvalid()) return ExprError(); - Fn = result.take(); + Fn = result.get(); } if (Fn->getType() == Context.BoundMemberTy) { @@ -4475,7 +4475,7 @@ Sema::ActOnCallExpr(Scope *S, Expr *Fn, SourceLocation LParenLoc, if (Fn->getType() == Context.UnknownAnyTy) { ExprResult result = rebuildUnknownAnyFunction(*this, Fn); if (result.isInvalid()) return ExprError(); - Fn = result.take(); + Fn = result.get(); } Expr *NakedFn = Fn->IgnoreParens(); @@ -4582,13 +4582,13 @@ Sema::BuildResolvedCallExpr(Expr *Fn, NamedDecl *NDecl, if (BuiltinID && Fn->getType()->isSpecificBuiltinType(BuiltinType::BuiltinFn)) { Result = ImpCastExprToType(Fn, Context.getPointerType(FDecl->getType()), - CK_BuiltinFnToFnPtr).take(); + CK_BuiltinFnToFnPtr).get(); } else { Result = CallExprUnaryConversions(Fn); } if (Result.isInvalid()) return ExprError(); - Fn = Result.take(); + Fn = Result.get(); // Make the call expr early, before semantic checks. This guarantees cleanup // of arguments and function on error. @@ -4623,7 +4623,7 @@ Sema::BuildResolvedCallExpr(Expr *Fn, NamedDecl *NDecl, if (Fn->getType() == Context.UnknownAnyTy) { ExprResult rewrite = rebuildUnknownAnyFunction(*this, Fn); if (rewrite.isInvalid()) return ExprError(); - Fn = rewrite.take(); + Fn = rewrite.get(); TheCall->setCallee(Fn); goto retry; } @@ -4698,7 +4698,7 @@ Sema::BuildResolvedCallExpr(Expr *Fn, NamedDecl *NDecl, if (ArgE.isInvalid()) return true; - Arg = ArgE.takeAs<Expr>(); + Arg = ArgE.getAs<Expr>(); } else { ExprResult ArgE = DefaultArgumentPromotion(Arg); @@ -4706,7 +4706,7 @@ Sema::BuildResolvedCallExpr(Expr *Fn, NamedDecl *NDecl, if (ArgE.isInvalid()) return true; - Arg = ArgE.takeAs<Expr>(); + Arg = ArgE.getAs<Expr>(); } if (RequireCompleteType(Arg->getLocStart(), @@ -4823,7 +4823,7 @@ Sema::ActOnInitList(SourceLocation LBraceLoc, MultiExprArg InitArgList, // of one failure would be terrible for indexing/etc. if (result.isInvalid()) continue; - InitArgList[I] = result.take(); + InitArgList[I] = result.get(); } } @@ -4930,12 +4930,12 @@ CastKind Sema::PrepareScalarCast(ExprResult &Src, QualType DestTy) { case Type::STK_Floating: return CK_IntegralToFloating; case Type::STK_IntegralComplex: - Src = ImpCastExprToType(Src.take(), + Src = ImpCastExprToType(Src.get(), DestTy->castAs<ComplexType>()->getElementType(), CK_IntegralCast); return CK_IntegralRealToComplex; case Type::STK_FloatingComplex: - Src = ImpCastExprToType(Src.take(), + Src = ImpCastExprToType(Src.get(), DestTy->castAs<ComplexType>()->getElementType(), CK_IntegralToFloating); return CK_FloatingRealToComplex; @@ -4953,12 +4953,12 @@ CastKind Sema::PrepareScalarCast(ExprResult &Src, QualType DestTy) { case Type::STK_Integral: return CK_FloatingToIntegral; case Type::STK_FloatingComplex: - Src = ImpCastExprToType(Src.take(), + Src = ImpCastExprToType(Src.get(), DestTy->castAs<ComplexType>()->getElementType(), CK_FloatingCast); return CK_FloatingRealToComplex; case Type::STK_IntegralComplex: - Src = ImpCastExprToType(Src.take(), + Src = ImpCastExprToType(Src.get(), DestTy->castAs<ComplexType>()->getElementType(), CK_FloatingToIntegral); return CK_IntegralRealToComplex; @@ -4981,13 +4981,13 @@ CastKind Sema::PrepareScalarCast(ExprResult &Src, QualType DestTy) { QualType ET = SrcTy->castAs<ComplexType>()->getElementType(); if (Context.hasSameType(ET, DestTy)) return CK_FloatingComplexToReal; - Src = ImpCastExprToType(Src.take(), ET, CK_FloatingComplexToReal); + Src = ImpCastExprToType(Src.get(), ET, CK_FloatingComplexToReal); return CK_FloatingCast; } case Type::STK_Bool: return CK_FloatingComplexToBoolean; case Type::STK_Integral: - Src = ImpCastExprToType(Src.take(), + Src = ImpCastExprToType(Src.get(), SrcTy->castAs<ComplexType>()->getElementType(), CK_FloatingComplexToReal); return CK_FloatingToIntegral; @@ -5010,13 +5010,13 @@ CastKind Sema::PrepareScalarCast(ExprResult &Src, QualType DestTy) { QualType ET = SrcTy->castAs<ComplexType>()->getElementType(); if (Context.hasSameType(ET, DestTy)) return CK_IntegralComplexToReal; - Src = ImpCastExprToType(Src.take(), ET, CK_IntegralComplexToReal); + Src = ImpCastExprToType(Src.get(), ET, CK_IntegralComplexToReal); return CK_IntegralCast; } case Type::STK_Bool: return CK_IntegralComplexToBoolean; case Type::STK_Floating: - Src = ImpCastExprToType(Src.take(), + Src = ImpCastExprToType(Src.get(), SrcTy->castAs<ComplexType>()->getElementType(), CK_IntegralComplexToReal); return CK_IntegralToFloating; @@ -5131,7 +5131,7 @@ ExprResult Sema::CheckExtVectorCast(SourceRange R, QualType DestTy, CastKind CK = PrepareScalarCast(CastExprRes, DestElemTy); if (CastExprRes.isInvalid()) return ExprError(); - CastExpr = ImpCastExprToType(CastExprRes.take(), DestElemTy, CK).take(); + CastExpr = ImpCastExprToType(CastExprRes.get(), DestElemTy, CK).get(); Kind = CK_VectorSplat; return Owned(CastExpr); @@ -5190,7 +5190,7 @@ Sema::ActOnCastExpr(Scope *S, SourceLocation LParenLoc, if (isa<ParenListExpr>(CastExpr)) { ExprResult Result = MaybeConvertParenListExprToParenExpr(S, CastExpr); if (Result.isInvalid()) return ExprError(); - CastExpr = Result.take(); + CastExpr = Result.get(); } if (getLangOpts().CPlusPlus && !castType->isVoidType() && @@ -5245,9 +5245,9 @@ ExprResult Sema::BuildVectorLiteral(SourceLocation LParenLoc, ExprResult Literal = DefaultLvalueConversion(exprs[0]); if (Literal.isInvalid()) return ExprError(); - Literal = ImpCastExprToType(Literal.take(), ElemTy, + Literal = ImpCastExprToType(Literal.get(), ElemTy, PrepareScalarCast(Literal, ElemTy)); - return BuildCStyleCastExpr(LParenLoc, TInfo, RParenLoc, Literal.take()); + return BuildCStyleCastExpr(LParenLoc, TInfo, RParenLoc, Literal.get()); } else if (numExprs < numElems) { Diag(E->getExprLoc(), @@ -5267,9 +5267,9 @@ ExprResult Sema::BuildVectorLiteral(SourceLocation LParenLoc, ExprResult Literal = DefaultLvalueConversion(exprs[0]); if (Literal.isInvalid()) return ExprError(); - Literal = ImpCastExprToType(Literal.take(), ElemTy, + Literal = ImpCastExprToType(Literal.get(), ElemTy, PrepareScalarCast(Literal, ElemTy)); - return BuildCStyleCastExpr(LParenLoc, TInfo, RParenLoc, Literal.take()); + return BuildCStyleCastExpr(LParenLoc, TInfo, RParenLoc, Literal.get()); } initExprs.append(exprs, exprs + numExprs); @@ -5386,8 +5386,8 @@ static bool checkConditionalConvertScalarsToVectors(Sema &S, ExprResult &LHS, } // Implicity convert these scalars to the type of the condition. - LHS = S.ImpCastExprToType(LHS.take(), CondTy, CK_IntegralCast); - RHS = S.ImpCastExprToType(RHS.take(), CondTy, CK_IntegralCast); + LHS = S.ImpCastExprToType(LHS.get(), CondTy, CK_IntegralCast); + RHS = S.ImpCastExprToType(RHS.get(), CondTy, CK_IntegralCast); return false; } @@ -5403,8 +5403,8 @@ static QualType checkConditionalVoidType(Sema &S, ExprResult &LHS, if (!RHSExpr->getType()->isVoidType()) S.Diag(LHSExpr->getLocStart(), diag::ext_typecheck_cond_one_void) << LHSExpr->getSourceRange(); - LHS = S.ImpCastExprToType(LHS.take(), S.Context.VoidTy, CK_ToVoid); - RHS = S.ImpCastExprToType(RHS.take(), S.Context.VoidTy, CK_ToVoid); + LHS = S.ImpCastExprToType(LHS.get(), S.Context.VoidTy, CK_ToVoid); + RHS = S.ImpCastExprToType(RHS.get(), S.Context.VoidTy, CK_ToVoid); return S.Context.VoidTy; } @@ -5417,7 +5417,7 @@ static bool checkConditionalNullPointer(Sema &S, ExprResult &NullExpr, Expr::NPC_ValueDependentIsNull)) return true; - NullExpr = S.ImpCastExprToType(NullExpr.take(), PointerTy, CK_NullToPointer); + NullExpr = S.ImpCastExprToType(NullExpr.get(), PointerTy, CK_NullToPointer); return false; } @@ -5476,8 +5476,8 @@ static QualType checkConditionalPointerCompatibility(Sema &S, ExprResult &LHS, // reason, but this is what gcc does, and we do have to pick // to get a consistent AST. QualType incompatTy = S.Context.getPointerType(S.Context.VoidTy); - LHS = S.ImpCastExprToType(LHS.take(), incompatTy, CK_BitCast); - RHS = S.ImpCastExprToType(RHS.take(), incompatTy, CK_BitCast); + LHS = S.ImpCastExprToType(LHS.get(), incompatTy, CK_BitCast); + RHS = S.ImpCastExprToType(RHS.get(), incompatTy, CK_BitCast); return incompatTy; } @@ -5488,8 +5488,8 @@ static QualType checkConditionalPointerCompatibility(Sema &S, ExprResult &LHS, else ResultTy = S.Context.getPointerType(ResultTy); - LHS = S.ImpCastExprToType(LHS.take(), ResultTy, CK_BitCast); - RHS = S.ImpCastExprToType(RHS.take(), ResultTy, CK_BitCast); + LHS = S.ImpCastExprToType(LHS.get(), ResultTy, CK_BitCast); + RHS = S.ImpCastExprToType(RHS.get(), ResultTy, CK_BitCast); return ResultTy; } @@ -5504,8 +5504,8 @@ static QualType checkConditionalBlockPointerCompatibility(Sema &S, if (!LHSTy->isBlockPointerType() || !RHSTy->isBlockPointerType()) { if (LHSTy->isVoidPointerType() || RHSTy->isVoidPointerType()) { QualType destType = S.Context.getPointerType(S.Context.VoidTy); - LHS = S.ImpCastExprToType(LHS.take(), destType, CK_BitCast); - RHS = S.ImpCastExprToType(RHS.take(), destType, CK_BitCast); + LHS = S.ImpCastExprToType(LHS.get(), destType, CK_BitCast); + RHS = S.ImpCastExprToType(RHS.get(), destType, CK_BitCast); return destType; } S.Diag(Loc, diag::err_typecheck_cond_incompatible_operands) @@ -5538,9 +5538,9 @@ checkConditionalObjectPointersCompatibility(Sema &S, ExprResult &LHS, = S.Context.getQualifiedType(lhptee, rhptee.getQualifiers()); QualType destType = S.Context.getPointerType(destPointee); // Add qualifiers if necessary. - LHS = S.ImpCastExprToType(LHS.take(), destType, CK_NoOp); + LHS = S.ImpCastExprToType(LHS.get(), destType, CK_NoOp); // Promote to void*. - RHS = S.ImpCastExprToType(RHS.take(), destType, CK_BitCast); + RHS = S.ImpCastExprToType(RHS.get(), destType, CK_BitCast); return destType; } if (rhptee->isVoidType() && lhptee->isIncompleteOrObjectType()) { @@ -5548,9 +5548,9 @@ checkConditionalObjectPointersCompatibility(Sema &S, ExprResult &LHS, = S.Context.getQualifiedType(rhptee, lhptee.getQualifiers()); QualType destType = S.Context.getPointerType(destPointee); // Add qualifiers if necessary. - RHS = S.ImpCastExprToType(RHS.take(), destType, CK_NoOp); + RHS = S.ImpCastExprToType(RHS.get(), destType, CK_NoOp); // Promote to void*. - LHS = S.ImpCastExprToType(LHS.take(), destType, CK_BitCast); + LHS = S.ImpCastExprToType(LHS.get(), destType, CK_BitCast); return destType; } @@ -5572,7 +5572,7 @@ static bool checkPointerIntegerMismatch(Sema &S, ExprResult &Int, S.Diag(Loc, diag::warn_typecheck_cond_pointer_integer_mismatch) << Expr1->getType() << Expr2->getType() << Expr1->getSourceRange() << Expr2->getSourceRange(); - Int = S.ImpCastExprToType(Int.take(), PointerExpr->getType(), + Int = S.ImpCastExprToType(Int.get(), PointerExpr->getType(), CK_IntegralToPointer); return true; } @@ -5601,7 +5601,7 @@ QualType Sema::CheckConditionalOperands(ExprResult &Cond, ExprResult &LHS, OK = OK_Ordinary; // First, check the condition. - Cond = UsualUnaryConversions(Cond.take()); + Cond = UsualUnaryConversions(Cond.get()); if (Cond.isInvalid()) return QualType(); if (checkCondition(*this, Cond.get())) @@ -5707,34 +5707,34 @@ QualType Sema::FindCompositeObjCPointerType(ExprResult &LHS, ExprResult &RHS, // redefinition type if an attempt is made to access its fields. if (LHSTy->isObjCClassType() && (Context.hasSameType(RHSTy, Context.getObjCClassRedefinitionType()))) { - RHS = ImpCastExprToType(RHS.take(), LHSTy, CK_CPointerToObjCPointerCast); + RHS = ImpCastExprToType(RHS.get(), LHSTy, CK_CPointerToObjCPointerCast); return LHSTy; } if (RHSTy->isObjCClassType() && (Context.hasSameType(LHSTy, Context.getObjCClassRedefinitionType()))) { - LHS = ImpCastExprToType(LHS.take(), RHSTy, CK_CPointerToObjCPointerCast); + LHS = ImpCastExprToType(LHS.get(), RHSTy, CK_CPointerToObjCPointerCast); return RHSTy; } // And the same for struct objc_object* / id if (LHSTy->isObjCIdType() && (Context.hasSameType(RHSTy, Context.getObjCIdRedefinitionType()))) { - RHS = ImpCastExprToType(RHS.take(), LHSTy, CK_CPointerToObjCPointerCast); + RHS = ImpCastExprToType(RHS.get(), LHSTy, CK_CPointerToObjCPointerCast); return LHSTy; } if (RHSTy->isObjCIdType() && (Context.hasSameType(LHSTy, Context.getObjCIdRedefinitionType()))) { - LHS = ImpCastExprToType(LHS.take(), RHSTy, CK_CPointerToObjCPointerCast); + LHS = ImpCastExprToType(LHS.get(), RHSTy, CK_CPointerToObjCPointerCast); return RHSTy; } // And the same for struct objc_selector* / SEL if (Context.isObjCSelType(LHSTy) && (Context.hasSameType(RHSTy, Context.getObjCSelRedefinitionType()))) { - RHS = ImpCastExprToType(RHS.take(), LHSTy, CK_BitCast); + RHS = ImpCastExprToType(RHS.get(), LHSTy, CK_BitCast); return LHSTy; } if (Context.isObjCSelType(RHSTy) && (Context.hasSameType(LHSTy, Context.getObjCSelRedefinitionType()))) { - LHS = ImpCastExprToType(LHS.take(), RHSTy, CK_BitCast); + LHS = ImpCastExprToType(LHS.get(), RHSTy, CK_BitCast); return RHSTy; } // Check constraints for Objective-C object pointers types. @@ -5783,13 +5783,13 @@ QualType Sema::FindCompositeObjCPointerType(ExprResult &LHS, ExprResult &RHS, << LHSTy << RHSTy << LHS.get()->getSourceRange() << RHS.get()->getSourceRange(); QualType incompatTy = Context.getObjCIdType(); - LHS = ImpCastExprToType(LHS.take(), incompatTy, CK_BitCast); - RHS = ImpCastExprToType(RHS.take(), incompatTy, CK_BitCast); + LHS = ImpCastExprToType(LHS.get(), incompatTy, CK_BitCast); + RHS = ImpCastExprToType(RHS.get(), incompatTy, CK_BitCast); return incompatTy; } // The object pointer types are compatible. - LHS = ImpCastExprToType(LHS.take(), compositeType, CK_BitCast); - RHS = ImpCastExprToType(RHS.take(), compositeType, CK_BitCast); + LHS = ImpCastExprToType(LHS.get(), compositeType, CK_BitCast); + RHS = ImpCastExprToType(RHS.get(), compositeType, CK_BitCast); return compositeType; } // Check Objective-C object pointer types and 'void *' @@ -5808,9 +5808,9 @@ QualType Sema::FindCompositeObjCPointerType(ExprResult &LHS, ExprResult &RHS, = Context.getQualifiedType(lhptee, rhptee.getQualifiers()); QualType destType = Context.getPointerType(destPointee); // Add qualifiers if necessary. - LHS = ImpCastExprToType(LHS.take(), destType, CK_NoOp); + LHS = ImpCastExprToType(LHS.get(), destType, CK_NoOp); // Promote to void*. - RHS = ImpCastExprToType(RHS.take(), destType, CK_BitCast); + RHS = ImpCastExprToType(RHS.get(), destType, CK_BitCast); return destType; } if (LHSTy->isObjCObjectPointerType() && RHSTy->isVoidPointerType()) { @@ -5828,9 +5828,9 @@ QualType Sema::FindCompositeObjCPointerType(ExprResult &LHS, ExprResult &RHS, = Context.getQualifiedType(rhptee, lhptee.getQualifiers()); QualType destType = Context.getPointerType(destPointee); // Add qualifiers if necessary. - RHS = ImpCastExprToType(RHS.take(), destType, CK_NoOp); + RHS = ImpCastExprToType(RHS.get(), destType, CK_NoOp); // Promote to void*. - LHS = ImpCastExprToType(LHS.take(), destType, CK_BitCast); + LHS = ImpCastExprToType(LHS.get(), destType, CK_BitCast); return destType; } return QualType(); @@ -5972,7 +5972,7 @@ ExprResult Sema::ActOnConditionalOp(SourceLocation QuestionLoc, if (commonExpr->hasPlaceholderType()) { ExprResult result = CheckPlaceholderExpr(commonExpr); if (!result.isUsable()) return ExprError(); - commonExpr = result.take(); + commonExpr = result.get(); } // We usually want to apply unary conversions *before* saving, except // in the special case of a C++ l-value conditional. @@ -5986,7 +5986,7 @@ ExprResult Sema::ActOnConditionalOp(SourceLocation QuestionLoc, ExprResult commonRes = UsualUnaryConversions(commonExpr); if (commonRes.isInvalid()) return ExprError(); - commonExpr = commonRes.take(); + commonExpr = commonRes.get(); } opaqueValue = new (Context) OpaqueValueExpr(commonExpr->getExprLoc(), @@ -6010,13 +6010,13 @@ ExprResult Sema::ActOnConditionalOp(SourceLocation QuestionLoc, RHS.get()); if (!commonExpr) - return Owned(new (Context) ConditionalOperator(Cond.take(), QuestionLoc, - LHS.take(), ColonLoc, - RHS.take(), result, VK, OK)); + return Owned(new (Context) ConditionalOperator(Cond.get(), QuestionLoc, + LHS.get(), ColonLoc, + RHS.get(), result, VK, OK)); return Owned(new (Context) - BinaryConditionalOperator(commonExpr, opaqueValue, Cond.take(), LHS.take(), - RHS.take(), QuestionLoc, ColonLoc, result, VK, + BinaryConditionalOperator(commonExpr, opaqueValue, Cond.get(), LHS.get(), + RHS.get(), QuestionLoc, ColonLoc, result, VK, OK)); } @@ -6269,7 +6269,7 @@ Sema::CheckAssignmentConstraints(QualType LHSType, ExprResult &RHS, if (result != Compatible) return result; if (Kind != CK_NoOp) - RHS = ImpCastExprToType(RHS.take(), AtomicTy->getValueType(), Kind); + RHS = ImpCastExprToType(RHS.get(), AtomicTy->getValueType(), Kind); Kind = CK_NonAtomicToAtomic; return Compatible; } @@ -6300,7 +6300,7 @@ Sema::CheckAssignmentConstraints(QualType LHSType, ExprResult &RHS, QualType elType = cast<ExtVectorType>(LHSType)->getElementType(); if (elType != RHSType) { Kind = PrepareScalarCast(RHS, elType); - RHS = ImpCastExprToType(RHS.take(), elType, Kind); + RHS = ImpCastExprToType(RHS.get(), elType, Kind); } Kind = CK_VectorSplat; return Compatible; @@ -6513,7 +6513,7 @@ static void ConstructTransparentUnion(Sema &S, ASTContext &C, FieldDecl *Field) { // Build an initializer list that designates the appropriate member // of the transparent union. - Expr *E = EResult.take(); + Expr *E = EResult.get(); InitListExpr *Initializer = new (C) InitListExpr(C, SourceLocation(), E, SourceLocation()); Initializer->setType(UnionType); @@ -6549,14 +6549,14 @@ Sema::CheckTransparentUnionArgumentConstraints(QualType ArgType, // 2) null pointer constant if (RHSType->isPointerType()) if (RHSType->castAs<PointerType>()->getPointeeType()->isVoidType()) { - RHS = ImpCastExprToType(RHS.take(), it->getType(), CK_BitCast); + RHS = ImpCastExprToType(RHS.get(), it->getType(), CK_BitCast); InitField = it; break; } if (RHS.get()->isNullPointerConstant(Context, Expr::NPC_ValueDependentIsNull)) { - RHS = ImpCastExprToType(RHS.take(), it->getType(), + RHS = ImpCastExprToType(RHS.get(), it->getType(), CK_NullToPointer); InitField = it; break; @@ -6566,7 +6566,7 @@ Sema::CheckTransparentUnionArgumentConstraints(QualType ArgType, CastKind Kind = CK_Invalid; if (CheckAssignmentConstraints(it->getType(), RHS, Kind) == Compatible) { - RHS = ImpCastExprToType(RHS.take(), it->getType(), Kind); + RHS = ImpCastExprToType(RHS.get(), it->getType(), Kind); InitField = it; break; } @@ -6631,7 +6631,7 @@ Sema::CheckSingleAssignmentConstraints(QualType LHSType, ExprResult &RHS, CastKind Kind; CXXCastPath Path; CheckPointerConversion(RHS.get(), LHSType, Kind, Path, false); - RHS = ImpCastExprToType(RHS.take(), LHSType, Kind, VK_RValue, &Path); + RHS = ImpCastExprToType(RHS.get(), LHSType, Kind, VK_RValue, &Path); return Compatible; } @@ -6642,7 +6642,7 @@ Sema::CheckSingleAssignmentConstraints(QualType LHSType, ExprResult &RHS, // // Suppress this for references: C++ 8.5.3p5. if (!LHSType->isReferenceType()) { - RHS = DefaultFunctionArrayLvalueConversion(RHS.take()); + RHS = DefaultFunctionArrayLvalueConversion(RHS.get()); if (RHS.isInvalid()) return Incompatible; } @@ -6659,7 +6659,7 @@ Sema::CheckSingleAssignmentConstraints(QualType LHSType, ExprResult &RHS, // does not have reference type. if (result != Incompatible && RHS.get()->getType() != LHSType) { QualType Ty = LHSType.getNonLValueExprType(Context); - Expr *E = RHS.take(); + Expr *E = RHS.get(); if (getLangOpts().ObjCAutoRefCount) CheckObjCARCConversion(SourceRange(), Ty, E, CCK_ImplicitConversion, DiagnoseCFAudited); @@ -6725,8 +6725,8 @@ static bool tryVectorConvertAndSplat(Sema &S, ExprResult *scalar, // Adjust scalar if desired. if (scalar) { if (scalarCast != CK_Invalid) - *scalar = S.ImpCastExprToType(scalar->take(), vectorEltTy, scalarCast); - *scalar = S.ImpCastExprToType(scalar->take(), vectorTy, CK_VectorSplat); + *scalar = S.ImpCastExprToType(scalar->get(), vectorEltTy, scalarCast); + *scalar = S.ImpCastExprToType(scalar->get(), vectorTy, CK_VectorSplat); } return false; } @@ -6734,11 +6734,11 @@ static bool tryVectorConvertAndSplat(Sema &S, ExprResult *scalar, QualType Sema::CheckVectorOperands(ExprResult &LHS, ExprResult &RHS, SourceLocation Loc, bool IsCompAssign) { if (!IsCompAssign) { - LHS = DefaultFunctionArrayLvalueConversion(LHS.take()); + LHS = DefaultFunctionArrayLvalueConversion(LHS.get()); if (LHS.isInvalid()) return QualType(); } - RHS = DefaultFunctionArrayLvalueConversion(RHS.take()); + RHS = DefaultFunctionArrayLvalueConversion(RHS.get()); if (RHS.isInvalid()) return QualType(); @@ -6759,12 +6759,12 @@ QualType Sema::CheckVectorOperands(ExprResult &LHS, ExprResult &RHS, if (LHSVecType && RHSVecType && Context.areCompatibleVectorTypes(LHSType, RHSType)) { if (isa<ExtVectorType>(LHSVecType)) { - RHS = ImpCastExprToType(RHS.take(), LHSType, CK_BitCast); + RHS = ImpCastExprToType(RHS.get(), LHSType, CK_BitCast); return LHSType; } if (!IsCompAssign) - LHS = ImpCastExprToType(LHS.take(), RHSType, CK_BitCast); + LHS = ImpCastExprToType(LHS.get(), RHSType, CK_BitCast); return RHSType; } @@ -6788,7 +6788,7 @@ QualType Sema::CheckVectorOperands(ExprResult &LHS, ExprResult &RHS, // FIXME: We really just pick the LHS type arbitrarily? if (isLaxVectorConversion(RHSType, LHSType)) { QualType resultType = LHSType; - RHS = ImpCastExprToType(RHS.take(), resultType, CK_BitCast); + RHS = ImpCastExprToType(RHS.get(), resultType, CK_BitCast); return resultType; } @@ -7401,14 +7401,14 @@ QualType Sema::CheckShiftOperands(ExprResult &LHS, ExprResult &RHS, // For the LHS, do usual unary conversions, but then reset them away // if this is a compound assignment. ExprResult OldLHS = LHS; - LHS = UsualUnaryConversions(LHS.take()); + LHS = UsualUnaryConversions(LHS.get()); if (LHS.isInvalid()) return QualType(); QualType LHSType = LHS.get()->getType(); if (IsCompAssign) LHS = OldLHS; // The RHS is simpler. - RHS = UsualUnaryConversions(RHS.take()); + RHS = UsualUnaryConversions(RHS.get()); if (RHS.isInvalid()) return QualType(); QualType RHSType = RHS.get()->getType(); @@ -7520,8 +7520,8 @@ static bool convertPointersToCompositeType(Sema &S, SourceLocation Loc, << LHSType << RHSType << T << LHS.get()->getSourceRange() << RHS.get()->getSourceRange(); - LHS = S.ImpCastExprToType(LHS.take(), T, CK_BitCast); - RHS = S.ImpCastExprToType(RHS.take(), T, CK_BitCast); + LHS = S.ImpCastExprToType(LHS.get(), T, CK_BitCast); + RHS = S.ImpCastExprToType(RHS.get(), T, CK_BitCast); return false; } @@ -7910,7 +7910,7 @@ QualType Sema::CheckCompareOperands(ExprResult &LHS, ExprResult &RHS, if (isSFINAEContext()) return QualType(); - RHS = ImpCastExprToType(RHS.take(), LHSType, CK_BitCast); + RHS = ImpCastExprToType(RHS.get(), LHSType, CK_BitCast); return ResultTy; } } @@ -7946,9 +7946,9 @@ QualType Sema::CheckCompareOperands(ExprResult &LHS, ExprResult &RHS, CastKind Kind = AddrSpaceL != AddrSpaceR ? CK_AddressSpaceConversion : CK_BitCast; if (LHSIsNull && !RHSIsNull) - LHS = ImpCastExprToType(LHS.take(), RHSType, Kind); + LHS = ImpCastExprToType(LHS.get(), RHSType, Kind); else - RHS = ImpCastExprToType(RHS.take(), LHSType, Kind); + RHS = ImpCastExprToType(RHS.get(), LHSType, Kind); } return ResultTy; } @@ -7964,7 +7964,7 @@ QualType Sema::CheckCompareOperands(ExprResult &LHS, ExprResult &RHS, ((LHSType->isAnyPointerType() || LHSType->isNullPtrType()) || (!IsRelational && (LHSType->isMemberPointerType() || LHSType->isBlockPointerType())))) { - RHS = ImpCastExprToType(RHS.take(), LHSType, + RHS = ImpCastExprToType(RHS.get(), LHSType, LHSType->isMemberPointerType() ? CK_NullToMemberPointer : CK_NullToPointer); @@ -7974,7 +7974,7 @@ QualType Sema::CheckCompareOperands(ExprResult &LHS, ExprResult &RHS, ((RHSType->isAnyPointerType() || RHSType->isNullPtrType()) || (!IsRelational && (RHSType->isMemberPointerType() || RHSType->isBlockPointerType())))) { - LHS = ImpCastExprToType(LHS.take(), RHSType, + LHS = ImpCastExprToType(LHS.get(), RHSType, RHSType->isMemberPointerType() ? CK_NullToMemberPointer : CK_NullToPointer); @@ -8010,7 +8010,7 @@ QualType Sema::CheckCompareOperands(ExprResult &LHS, ExprResult &RHS, << LHSType << RHSType << LHS.get()->getSourceRange() << RHS.get()->getSourceRange(); } - RHS = ImpCastExprToType(RHS.take(), LHSType, CK_BitCast); + RHS = ImpCastExprToType(RHS.get(), LHSType, CK_BitCast); return ResultTy; } @@ -8028,11 +8028,11 @@ QualType Sema::CheckCompareOperands(ExprResult &LHS, ExprResult &RHS, << RHS.get()->getSourceRange(); } if (LHSIsNull && !RHSIsNull) - LHS = ImpCastExprToType(LHS.take(), RHSType, + LHS = ImpCastExprToType(LHS.get(), RHSType, RHSType->isPointerType() ? CK_BitCast : CK_AnyPointerToBlockPointerCast); else - RHS = ImpCastExprToType(RHS.take(), LHSType, + RHS = ImpCastExprToType(RHS.get(), LHSType, LHSType->isPointerType() ? CK_BitCast : CK_AnyPointerToBlockPointerCast); return ResultTy; @@ -8052,14 +8052,14 @@ QualType Sema::CheckCompareOperands(ExprResult &LHS, ExprResult &RHS, /*isError*/false); } if (LHSIsNull && !RHSIsNull) { - Expr *E = LHS.take(); + Expr *E = LHS.get(); if (getLangOpts().ObjCAutoRefCount) CheckObjCARCConversion(SourceRange(), RHSType, E, CCK_ImplicitConversion); LHS = ImpCastExprToType(E, RHSType, RPT ? CK_BitCast :CK_CPointerToObjCPointerCast); } else { - Expr *E = RHS.take(); + Expr *E = RHS.get(); if (getLangOpts().ObjCAutoRefCount) CheckObjCARCConversion(SourceRange(), LHSType, E, CCK_ImplicitConversion); RHS = ImpCastExprToType(E, LHSType, @@ -8076,9 +8076,9 @@ QualType Sema::CheckCompareOperands(ExprResult &LHS, ExprResult &RHS, diagnoseObjCLiteralComparison(*this, Loc, LHS, RHS, Opc); if (LHSIsNull && !RHSIsNull) - LHS = ImpCastExprToType(LHS.take(), RHSType, CK_BitCast); + LHS = ImpCastExprToType(LHS.get(), RHSType, CK_BitCast); else - RHS = ImpCastExprToType(RHS.take(), LHSType, CK_BitCast); + RHS = ImpCastExprToType(RHS.get(), LHSType, CK_BitCast); return ResultTy; } } @@ -8110,10 +8110,10 @@ QualType Sema::CheckCompareOperands(ExprResult &LHS, ExprResult &RHS, } if (LHSType->isIntegerType()) - LHS = ImpCastExprToType(LHS.take(), RHSType, + LHS = ImpCastExprToType(LHS.get(), RHSType, LHSIsNull ? CK_NullToPointer : CK_IntegralToPointer); else - RHS = ImpCastExprToType(RHS.take(), LHSType, + RHS = ImpCastExprToType(RHS.get(), LHSType, RHSIsNull ? CK_NullToPointer : CK_IntegralToPointer); return ResultTy; } @@ -8121,12 +8121,12 @@ QualType Sema::CheckCompareOperands(ExprResult &LHS, ExprResult &RHS, // Handle block pointers. if (!IsRelational && RHSIsNull && LHSType->isBlockPointerType() && RHSType->isIntegerType()) { - RHS = ImpCastExprToType(RHS.take(), LHSType, CK_NullToPointer); + RHS = ImpCastExprToType(RHS.get(), LHSType, CK_NullToPointer); return ResultTy; } if (!IsRelational && LHSIsNull && LHSType->isIntegerType() && RHSType->isBlockPointerType()) { - LHS = ImpCastExprToType(LHS.take(), RHSType, CK_NullToPointer); + LHS = ImpCastExprToType(LHS.get(), RHSType, CK_NullToPointer); return ResultTy; } @@ -8232,8 +8232,8 @@ inline QualType Sema::CheckBitwiseOperands( IsCompAssign); if (LHSResult.isInvalid() || RHSResult.isInvalid()) return QualType(); - LHS = LHSResult.take(); - RHS = RHSResult.take(); + LHS = LHSResult.get(); + RHS = RHSResult.get(); if (!compType.isNull() && compType->isIntegralOrUnscopedEnumerationType()) return compType; @@ -8296,11 +8296,11 @@ inline QualType Sema::CheckLogicalOperands( // C99 6.5.[13,14] return InvalidOperands(Loc, LHS, RHS); } - LHS = UsualUnaryConversions(LHS.take()); + LHS = UsualUnaryConversions(LHS.get()); if (LHS.isInvalid()) return QualType(); - RHS = UsualUnaryConversions(RHS.take()); + RHS = UsualUnaryConversions(RHS.get()); if (RHS.isInvalid()) return QualType(); @@ -8615,8 +8615,8 @@ QualType Sema::CheckAssignmentOperands(Expr *LHSExpr, ExprResult &RHS, // C99 6.5.17 static QualType CheckCommaOperands(Sema &S, ExprResult &LHS, ExprResult &RHS, SourceLocation Loc) { - LHS = S.CheckPlaceholderExpr(LHS.take()); - RHS = S.CheckPlaceholderExpr(RHS.take()); + LHS = S.CheckPlaceholderExpr(LHS.get()); + RHS = S.CheckPlaceholderExpr(RHS.get()); if (LHS.isInvalid() || RHS.isInvalid()) return QualType(); @@ -8626,14 +8626,14 @@ static QualType CheckCommaOperands(Sema &S, ExprResult &LHS, ExprResult &RHS, // So we treat the LHS as a ignored value, and in C++ we allow the // containing site to determine what should be done with the RHS. - LHS = S.IgnoredValueConversions(LHS.take()); + LHS = S.IgnoredValueConversions(LHS.get()); if (LHS.isInvalid()) return QualType(); S.DiagnoseUnusedExprResult(LHS.get()); if (!S.getLangOpts().CPlusPlus) { - RHS = S.DefaultFunctionArrayLvalueConversion(RHS.take()); + RHS = S.DefaultFunctionArrayLvalueConversion(RHS.get()); if (RHS.isInvalid()) return QualType(); if (!RHS.get()->getType()->isVoidType()) @@ -8693,7 +8693,7 @@ static QualType CheckIncrementDecrementOperand(Sema &S, Expr *Op, } else if (ResType->isPlaceholderType()) { ExprResult PR = S.CheckPlaceholderExpr(Op); if (PR.isInvalid()) return QualType(); - return CheckIncrementDecrementOperand(S, PR.take(), VK, OpLoc, + return CheckIncrementDecrementOperand(S, PR.get(), VK, OpLoc, IsInc, IsPrefix); } else if (S.getLangOpts().AltiVec && ResType->isVectorType()) { // OK! ( C/C++ Language Extensions for CBEA(Version 2.6) 10.3 ) @@ -8834,7 +8834,7 @@ QualType Sema::CheckAddressOfOperand(ExprResult &OrigOp, SourceLocation OpLoc) { return QualType(); } - OrigOp = CheckPlaceholderExpr(OrigOp.take()); + OrigOp = CheckPlaceholderExpr(OrigOp.get()); if (OrigOp.isInvalid()) return QualType(); } @@ -8876,7 +8876,7 @@ QualType Sema::CheckAddressOfOperand(ExprResult &OrigOp, SourceLocation OpLoc) { return QualType(); // Materialize the temporary as an lvalue so that we can take its address. OrigOp = op = new (Context) - MaterializeTemporaryExpr(op->getType(), OrigOp.take(), true); + MaterializeTemporaryExpr(op->getType(), OrigOp.get(), true); } else if (isa<ObjCSelectorExpr>(op)) { return Context.getPointerType(op->getType()); } else if (lval == Expr::LV_MemberFunction) { @@ -9007,7 +9007,7 @@ static QualType CheckIndirectionOperand(Sema &S, Expr *Op, ExprValueKind &VK, ExprResult ConvResult = S.UsualUnaryConversions(Op); if (ConvResult.isInvalid()) return QualType(); - Op = ConvResult.take(); + Op = ConvResult.get(); QualType OpTy = Op->getType(); QualType Result; @@ -9025,8 +9025,8 @@ static QualType CheckIndirectionOperand(Sema &S, Expr *Op, ExprValueKind &VK, else { ExprResult PR = S.CheckPlaceholderExpr(Op); if (PR.isInvalid()) return QualType(); - if (PR.take() != Op) - return CheckIndirectionOperand(S, PR.take(), VK, OpLoc); + if (PR.get() != Op) + return CheckIndirectionOperand(S, PR.get(), VK, OpLoc); } if (Result.isNull()) { @@ -9217,7 +9217,7 @@ ExprResult Sema::CreateBuiltinBinOp(SourceLocation OpLoc, ExprResult Init = InitSeq.Perform(*this, Entity, Kind, RHSExpr); if (Init.isInvalid()) return Init; - RHSExpr = Init.take(); + RHSExpr = Init.get(); } ExprResult LHS = Owned(LHSExpr), RHS = Owned(RHSExpr); @@ -9355,7 +9355,7 @@ ExprResult Sema::CreateBuiltinBinOp(SourceLocation OpLoc, DiagnoseDirectIsaAccess(*this, OIRE, OpLoc, RHS.get()); if (CompResultTy.isNull()) - return Owned(new (Context) BinaryOperator(LHS.take(), RHS.take(), Opc, + return Owned(new (Context) BinaryOperator(LHS.get(), RHS.get(), Opc, ResultTy, VK, OK, OpLoc, FPFeatures.fp_contract)); if (getLangOpts().CPlusPlus && LHS.get()->getObjectKind() != @@ -9363,7 +9363,7 @@ ExprResult Sema::CreateBuiltinBinOp(SourceLocation OpLoc, VK = VK_LValue; OK = LHS.get()->getObjectKind(); } - return Owned(new (Context) CompoundAssignOperator(LHS.take(), RHS.take(), Opc, + return Owned(new (Context) CompoundAssignOperator(LHS.get(), RHS.get(), Opc, ResultTy, VK, OK, CompLHSTy, CompResultTy, OpLoc, FPFeatures.fp_contract)); @@ -9638,7 +9638,7 @@ ExprResult Sema::BuildBinOp(Scope *S, SourceLocation OpLoc, // instantiates to having an overloadable type. ExprResult resolvedRHS = CheckPlaceholderExpr(RHSExpr); if (resolvedRHS.isInvalid()) return ExprError(); - RHSExpr = resolvedRHS.take(); + RHSExpr = resolvedRHS.get(); if (RHSExpr->isTypeDependent() || RHSExpr->getType()->isOverloadableType()) @@ -9647,7 +9647,7 @@ ExprResult Sema::BuildBinOp(Scope *S, SourceLocation OpLoc, ExprResult LHS = CheckPlaceholderExpr(LHSExpr); if (LHS.isInvalid()) return ExprError(); - LHSExpr = LHS.take(); + LHSExpr = LHS.get(); } // Handle pseudo-objects in the RHS. @@ -9671,7 +9671,7 @@ ExprResult Sema::BuildBinOp(Scope *S, SourceLocation OpLoc, ExprResult resolvedRHS = CheckPlaceholderExpr(RHSExpr); if (!resolvedRHS.isUsable()) return ExprError(); - RHSExpr = resolvedRHS.take(); + RHSExpr = resolvedRHS.get(); } if (getLangOpts().CPlusPlus) { @@ -9713,14 +9713,14 @@ ExprResult Sema::CreateBuiltinUnaryOp(SourceLocation OpLoc, resultType = CheckAddressOfOperand(Input, OpLoc); break; case UO_Deref: { - Input = DefaultFunctionArrayLvalueConversion(Input.take()); + Input = DefaultFunctionArrayLvalueConversion(Input.get()); if (Input.isInvalid()) return ExprError(); resultType = CheckIndirectionOperand(*this, Input.get(), VK, OpLoc); break; } case UO_Plus: case UO_Minus: - Input = UsualUnaryConversions(Input.take()); + Input = UsualUnaryConversions(Input.get()); if (Input.isInvalid()) return ExprError(); resultType = Input.get()->getType(); if (resultType->isDependentType()) @@ -9737,7 +9737,7 @@ ExprResult Sema::CreateBuiltinUnaryOp(SourceLocation OpLoc, << resultType << Input.get()->getSourceRange()); case UO_Not: // bitwise complement - Input = UsualUnaryConversions(Input.take()); + Input = UsualUnaryConversions(Input.get()); if (Input.isInvalid()) return ExprError(); resultType = Input.get()->getType(); @@ -9768,13 +9768,13 @@ ExprResult Sema::CreateBuiltinUnaryOp(SourceLocation OpLoc, case UO_LNot: // logical negation // Unlike +/-/~, integer promotions aren't done here (C99 6.5.3.3p5). - Input = DefaultFunctionArrayLvalueConversion(Input.take()); + Input = DefaultFunctionArrayLvalueConversion(Input.get()); if (Input.isInvalid()) return ExprError(); resultType = Input.get()->getType(); // Though we still have to promote half FP to float... if (resultType->isHalfType() && !Context.getLangOpts().NativeHalfType) { - Input = ImpCastExprToType(Input.take(), Context.FloatTy, CK_FloatingCast).take(); + Input = ImpCastExprToType(Input.get(), Context.FloatTy, CK_FloatingCast).get(); resultType = Context.FloatTy; } @@ -9785,7 +9785,7 @@ ExprResult Sema::CreateBuiltinUnaryOp(SourceLocation OpLoc, if (Context.getLangOpts().CPlusPlus) { // C++03 [expr.unary.op]p8, C++0x [expr.unary.op]p9: // operand contextually converted to bool. - Input = ImpCastExprToType(Input.take(), Context.BoolTy, + Input = ImpCastExprToType(Input.get(), Context.BoolTy, ScalarTypeToBooleanCastKind(resultType)); } else if (Context.getLangOpts().OpenCL && Context.getLangOpts().OpenCLVersion < 120) { @@ -9829,7 +9829,7 @@ ExprResult Sema::CreateBuiltinUnaryOp(SourceLocation OpLoc, VK = Input.get()->getValueKind(); } else if (!getLangOpts().CPlusPlus) { // In C, a volatile scalar is read by __imag. In C++, it is not. - Input = DefaultLvalueConversion(Input.take()); + Input = DefaultLvalueConversion(Input.get()); } break; case UO_Extension: @@ -9848,7 +9848,7 @@ ExprResult Sema::CreateBuiltinUnaryOp(SourceLocation OpLoc, if (Opc != UO_AddrOf && Opc != UO_Deref) CheckArrayAccess(Input.get()); - return Owned(new (Context) UnaryOperator(Input.take(), Opc, resultType, + return Owned(new (Context) UnaryOperator(Input.get(), Opc, resultType, VK, OK, OpLoc)); } @@ -9919,7 +9919,7 @@ ExprResult Sema::BuildUnaryOp(Scope *S, SourceLocation OpLoc, // Anything else needs to be handled now. ExprResult Result = CheckPlaceholderExpr(Input); if (Result.isInvalid()) return ExprError(); - Input = Result.take(); + Input = Result.get(); } if (getLangOpts().CPlusPlus && Input->getType()->isOverloadableType() && @@ -10055,9 +10055,9 @@ Sema::ActOnStmtExpr(SourceLocation LPLoc, Stmt *SubStmt, return ExprError(); if (LastExpr.get() != nullptr) { if (!LastLabelStmt) - Compound->setLastStmt(LastExpr.take()); + Compound->setLastStmt(LastExpr.get()); else - LastLabelStmt->setSubStmt(LastExpr.take()); + LastLabelStmt->setSubStmt(LastExpr.get()); StmtExprMayBindToTemp = true; } } @@ -10124,7 +10124,7 @@ ExprResult Sema::BuildBuiltinOffsetOf(SourceLocation BuiltinLoc, ExprResult IdxRval = DefaultLvalueConversion(static_cast<Expr*>(OC.U.E)); if (IdxRval.isInvalid()) return ExprError(); - Expr *Idx = IdxRval.take(); + Expr *Idx = IdxRval.get(); // The expression must be an integral expression. // FIXME: An integral constant expression? @@ -10289,7 +10289,7 @@ ExprResult Sema::ActOnChooseExpr(SourceLocation BuiltinLoc, diag::err_typecheck_choose_expr_requires_constant, false); if (CondICE.isInvalid()) return ExprError(); - CondExpr = CondICE.take(); + CondExpr = CondICE.get(); CondIsTrue = condEval.getZExtValue(); // If the condition is > zero, then the AST type is the same as the LSHExpr. @@ -10611,7 +10611,7 @@ ExprResult Sema::BuildVAArgExpr(SourceLocation BuiltinLoc, ExprResult Result = UsualUnaryConversions(E); if (Result.isInvalid()) return ExprError(); - E = Result.take(); + E = Result.get(); } else if (VaListType->isRecordType() && getLangOpts().CPlusPlus) { // If va_list is a record type and we are compiling in C++ mode, // check the argument using reference binding. @@ -10621,7 +10621,7 @@ ExprResult Sema::BuildVAArgExpr(SourceLocation BuiltinLoc, ExprResult Init = PerformCopyInitialization(Entity, SourceLocation(), E); if (Init.isInvalid()) return ExprError(); - E = Init.takeAs<Expr>(); + E = Init.getAs<Expr>(); } else { // Otherwise, the va_list argument must be an l-value because // it is modified by va_arg. @@ -10727,7 +10727,7 @@ Sema::ConversionToObjCStringLiteralCheck(QualType DstType, Expr *&Exp) { return false; Diag(SL->getLocStart(), diag::err_missing_atsign_prefix) << FixItHint::CreateInsertion(SL->getLocStart(), "@"); - Exp = BuildObjCStringLiteral(SL->getLocStart(), SL).take(); + Exp = BuildObjCStringLiteral(SL->getLocStart(), SL).get(); return true; } @@ -11003,7 +11003,7 @@ Sema::VerifyIntegerConstantExpression(Expr *E, llvm::APSInt *Result, ConvertDiagnoser); if (Converted.isInvalid()) return Converted; - E = Converted.take(); + E = Converted.get(); if (!E->getType()->isIntegralOrUnscopedEnumerationType()) return ExprError(); } else if (!E->getType()->isIntegralOrUnscopedEnumerationType()) { @@ -11655,7 +11655,7 @@ static bool captureInBlock(BlockScopeInfo *BSI, VarDecl *Var, !cast<CXXConstructExpr>(Result.get())->getConstructor() ->isTrivial()) { Result = S.MaybeCreateExprWithCleanups(Result); - CopyExpr = Result.take(); + CopyExpr = Result.get(); } } } @@ -11787,20 +11787,20 @@ static ExprResult addAsFieldToClosureType(Sema &S, = S.BuildDeclRefExpr(IterationVar, SizeType, VK_LValue, Loc); assert(!IterationVarRef.isInvalid() && "Reference to invented variable cannot fail!"); - IterationVarRef = S.DefaultLvalueConversion(IterationVarRef.take()); + IterationVarRef = S.DefaultLvalueConversion(IterationVarRef.get()); assert(!IterationVarRef.isInvalid() && "Conversion of invented variable cannot fail!"); // Subscript the array with this iteration variable. ExprResult Subscript = S.CreateBuiltinArraySubscriptExpr( - Ref, Loc, IterationVarRef.take(), Loc); + Ref, Loc, IterationVarRef.get(), Loc); if (Subscript.isInvalid()) { S.CleanupVarDeclMarking(); S.DiscardCleanupsInEvaluationContext(); return ExprError(); } - Ref = Subscript.take(); + Ref = Subscript.get(); BaseType = Array->getElementType(); } @@ -11921,7 +11921,7 @@ static bool captureInLambda(LambdaScopeInfo *LSI, CaptureType, DeclRefType, Loc, RefersToEnclosingLocal); if (!Result.isInvalid()) - CopyExpr = Result.take(); + CopyExpr = Result.get(); } // Compute the type of a reference to this captured variable. @@ -12690,7 +12690,7 @@ ExprResult Sema::CheckBooleanCondition(Expr *E, SourceLocation Loc) { ExprResult result = CheckPlaceholderExpr(E); if (result.isInvalid()) return ExprError(); - E = result.take(); + E = result.get(); if (!E->isTypeDependent()) { if (getLangOpts().CPlusPlus) @@ -12699,7 +12699,7 @@ ExprResult Sema::CheckBooleanCondition(Expr *E, SourceLocation Loc) { ExprResult ERes = DefaultFunctionArrayLvalueConversion(E); if (ERes.isInvalid()) return ExprError(); - E = ERes.take(); + E = ERes.get(); QualType T = E->getType(); if (!T->isScalarType()) { // C99 6.8.4.1p1 @@ -12746,7 +12746,7 @@ namespace { ExprResult SubResult = Visit(E->getSubExpr()); if (SubResult.isInvalid()) return ExprError(); - Expr *SubExpr = SubResult.take(); + Expr *SubExpr = SubResult.get(); E->setSubExpr(SubExpr); E->setType(SubExpr->getType()); E->setValueKind(SubExpr->getValueKind()); @@ -12766,7 +12766,7 @@ namespace { ExprResult SubResult = Visit(E->getSubExpr()); if (SubResult.isInvalid()) return ExprError(); - Expr *SubExpr = SubResult.take(); + Expr *SubExpr = SubResult.get(); E->setSubExpr(SubExpr); E->setType(S.Context.getPointerType(SubExpr->getType())); assert(E->getValueKind() == VK_RValue); @@ -12803,7 +12803,7 @@ namespace { static ExprResult rebuildUnknownAnyFunction(Sema &S, Expr *FunctionExpr) { ExprResult Result = RebuildUnknownAnyFunction(S).Visit(FunctionExpr); if (Result.isInvalid()) return ExprError(); - return S.DefaultFunctionArrayConversion(Result.take()); + return S.DefaultFunctionArrayConversion(Result.get()); } namespace { @@ -12840,7 +12840,7 @@ namespace { template <class T> ExprResult rebuildSugarExpr(T *E) { ExprResult SubResult = Visit(E->getSubExpr()); if (SubResult.isInvalid()) return ExprError(); - Expr *SubExpr = SubResult.take(); + Expr *SubExpr = SubResult.get(); E->setSubExpr(SubExpr); E->setType(SubExpr->getType()); E->setValueKind(SubExpr->getValueKind()); @@ -12871,7 +12871,7 @@ namespace { DestType = Ptr->getPointeeType(); ExprResult SubResult = Visit(E->getSubExpr()); if (SubResult.isInvalid()) return ExprError(); - E->setSubExpr(SubResult.take()); + E->setSubExpr(SubResult.get()); return E; } @@ -12993,7 +12993,7 @@ ExprResult RebuildUnknownAnyExpr::VisitCallExpr(CallExpr *E) { // Finally, we can recurse. ExprResult CalleeResult = Visit(CalleeExpr); if (!CalleeResult.isUsable()) return ExprError(); - E->setCallee(CalleeResult.take()); + E->setCallee(CalleeResult.get()); // Bind a temporary if necessary. return S.MaybeBindToTemporary(E); @@ -13034,7 +13034,7 @@ ExprResult RebuildUnknownAnyExpr::VisitImplicitCastExpr(ImplicitCastExpr *E) { ExprResult Result = Visit(E->getSubExpr()); if (!Result.isUsable()) return ExprError(); - E->setSubExpr(Result.take()); + E->setSubExpr(Result.get()); return S.Owned(E); } else if (E->getCastKind() == CK_LValueToRValue) { assert(E->getValueKind() == VK_RValue); @@ -13050,7 +13050,7 @@ ExprResult RebuildUnknownAnyExpr::VisitImplicitCastExpr(ImplicitCastExpr *E) { ExprResult Result = Visit(E->getSubExpr()); if (!Result.isUsable()) return ExprError(); - E->setSubExpr(Result.take()); + E->setSubExpr(Result.get()); return S.Owned(E); } else { llvm_unreachable("Unhandled cast type!"); @@ -13069,7 +13069,7 @@ ExprResult RebuildUnknownAnyExpr::resolveDecl(Expr *E, ValueDecl *VD) { DestType = Ptr->getPointeeType(); ExprResult Result = resolveDecl(E, VD); if (Result.isInvalid()) return ExprError(); - return S.ImpCastExprToType(Result.take(), Type, + return S.ImpCastExprToType(Result.get(), Type, CK_FunctionToPointerDecay, VK_RValue); } @@ -13123,7 +13123,7 @@ ExprResult Sema::checkUnknownAnyCast(SourceRange TypeRange, QualType CastType, ExprResult result = RebuildUnknownAnyExpr(*this, CastType).Visit(CastExpr); if (!result.isUsable()) return ExprError(); - CastExpr = result.take(); + CastExpr = result.get(); VK = CastExpr->getValueKind(); CastKind = CK_NoOp; |