summaryrefslogtreecommitdiff
path: root/lib/Sema/SemaExpr.cpp
diff options
context:
space:
mode:
authorNikola Smiljanic <popizdeh@gmail.com>2014-05-29 10:55:11 +0000
committerNikola Smiljanic <popizdeh@gmail.com>2014-05-29 10:55:11 +0000
commitbe481708fbf991648a06950b0f9c7d1d081800bc (patch)
tree076306a53d87f48ab823686179ff8bde43f6f553 /lib/Sema/SemaExpr.cpp
parent1bb87404d0ed9c92b4e5b1916d3bdce5435e28bb (diff)
downloadclang-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.cpp440
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;