Convert selected expression parsers to use smart pointers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60900 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Parse/ParseExprCXX.cpp b/lib/Parse/ParseExprCXX.cpp
index 8dd2f51..6c13e5c 100644
--- a/lib/Parse/ParseExprCXX.cpp
+++ b/lib/Parse/ParseExprCXX.cpp
@@ -310,7 +310,7 @@
return Actions.ActOnCXXThrow(ThrowLoc);
default:
- OwningExprResult Expr(Actions, ParseAssignmentExpression());
+ OwningExprResult Expr(ParseAssignmentExpression());
if (Expr.isInvalid()) return Expr.result();
return Actions.ActOnCXXThrow(ThrowLoc, Expr.release());
}
@@ -372,7 +372,7 @@
/// [GNU] type-specifier-seq declarator simple-asm-expr[opt] attributes[opt]
/// '=' assignment-expression
///
-Parser::ExprResult Parser::ParseCXXCondition() {
+Parser::OwningExprResult Parser::ParseCXXCondition() {
if (!isCXXConditionDeclaration())
return ParseExpression(); // expression
@@ -391,7 +391,7 @@
OwningExprResult AsmLabel(ParseSimpleAsm());
if (AsmLabel.isInvalid()) {
SkipUntil(tok::semi);
- return true;
+ return ExprError();
}
DeclaratorInfo.setAsmLabel(AsmLabel.release());
}
@@ -402,15 +402,15 @@
// '=' assignment-expression
if (Tok.isNot(tok::equal))
- return Diag(Tok, diag::err_expected_equal_after_declarator);
+ return ExprError(Diag(Tok, diag::err_expected_equal_after_declarator));
SourceLocation EqualLoc = ConsumeToken();
- OwningExprResult AssignExpr(Actions, ParseAssignmentExpression());
+ OwningExprResult AssignExpr(ParseAssignmentExpression());
if (AssignExpr.isInvalid())
- return true;
-
- return Actions.ActOnCXXConditionDeclarationExpr(CurScope, StartLoc,
- DeclaratorInfo, EqualLoc,
- AssignExpr.release());
+ return ExprError();
+
+ return Owned(Actions.ActOnCXXConditionDeclarationExpr(CurScope, StartLoc,
+ DeclaratorInfo,EqualLoc,
+ AssignExpr.release()));
}
/// ParseCXXSimpleTypeSpecifier - [C++ 7.1.5.2] Simple type specifiers.
@@ -776,8 +776,8 @@
bool first = true;
while (Tok.is(tok::l_square)) {
SourceLocation LLoc = ConsumeBracket();
- OwningExprResult Size(Actions, first ? ParseExpression()
- : ParseConstantExpression());
+ OwningExprResult Size(first ? ParseExpression()
+ : ParseConstantExpression());
if (Size.isInvalid()) {
// Recover
SkipUntil(tok::r_square);
@@ -851,7 +851,7 @@
return true;
}
- OwningExprResult Operand(Actions, ParseCastExpression(false));
+ OwningExprResult Operand(ParseCastExpression(false));
if (Operand.isInvalid())
return Operand.result();