Convert a bunch of actions to smart pointers, and also bring PrintParserCallbacks a bit more in line with reality.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67029 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Parse/MinimalAction.cpp b/lib/Parse/MinimalAction.cpp
index 41ad36c..fbda832 100644
--- a/lib/Parse/MinimalAction.cpp
+++ b/lib/Parse/MinimalAction.cpp
@@ -19,7 +19,7 @@
#include "llvm/Support/raw_ostream.h"
using namespace clang;
-/// Out-of-line virtual destructor to provide home for Action class.
+/// Out-of-line virtual destructor to provide home for ActionBase class.
ActionBase::~ActionBase() {}
/// Out-of-line virtual destructor to provide home for Action class.
diff --git a/lib/Parse/ParseCXXInlineMethods.cpp b/lib/Parse/ParseCXXInlineMethods.cpp
index cc61f0f..3ed9802 100644
--- a/lib/Parse/ParseCXXInlineMethods.cpp
+++ b/lib/Parse/ParseCXXInlineMethods.cpp
@@ -98,7 +98,7 @@
Actions.ActOnParamDefaultArgumentError(LM.DefaultArgs[I].Param);
else
Actions.ActOnParamDefaultArgument(LM.DefaultArgs[I].Param, EqualLoc,
- DefArgResult.release());
+ move(DefArgResult));
delete Toks;
LM.DefaultArgs[I].Toks = 0;
}
diff --git a/lib/Parse/ParseDecl.cpp b/lib/Parse/ParseDecl.cpp
index 56a1dec..aa96db5 100644
--- a/lib/Parse/ParseDecl.cpp
+++ b/lib/Parse/ParseDecl.cpp
@@ -346,7 +346,7 @@
assert(!Exprs.empty() && Exprs.size()-1 == CommaLocs.size() &&
"Unexpected number of commas!");
Actions.AddCXXDirectInitializerToDecl(LastDeclInGroup, LParenLoc,
- Exprs.take(), Exprs.size(),
+ move_arg(Exprs),
&CommaLocs[0], RParenLoc);
}
} else {
@@ -2184,7 +2184,7 @@
} else {
// Inform the actions module about the default argument
Actions.ActOnParamDefaultArgument(Param, EqualLoc,
- DefArgResult.release());
+ move(DefArgResult));
}
}
}
diff --git a/lib/Parse/ParseExpr.cpp b/lib/Parse/ParseExpr.cpp
index 000cb9d..f2892c1 100644
--- a/lib/Parse/ParseExpr.cpp
+++ b/lib/Parse/ParseExpr.cpp
@@ -625,7 +625,7 @@
case tok::kw___builtin_types_compatible_p:
return ParseBuiltinPrimaryExpression();
case tok::kw___null:
- return Owned(Actions.ActOnGNUNullExpr(ConsumeToken()));
+ return Actions.ActOnGNUNullExpr(ConsumeToken());
break;
case tok::plusplus: // unary-expression: '++' unary-expression
case tok::minusminus: { // unary-expression: '--' unary-expression
@@ -995,8 +995,7 @@
if (Ty.isInvalid())
Res = ExprError();
else
- Res = Actions.ActOnVAArg(StartLoc, Expr.release(), Ty.get(),
- ConsumeParen());
+ Res = Actions.ActOnVAArg(StartLoc, move(Expr), Ty.get(), ConsumeParen());
break;
}
case tok::kw___builtin_offsetof: {
@@ -1092,8 +1091,8 @@
Diag(Tok, diag::err_expected_rparen);
return ExprError();
}
- Res = Actions.ActOnChooseExpr(StartLoc, Cond.release(), Expr1.release(),
- Expr2.release(), ConsumeParen());
+ Res = Actions.ActOnChooseExpr(StartLoc, move(Cond), move(Expr1),
+ move(Expr2), ConsumeParen());
break;
}
case tok::kw___builtin_types_compatible_p:
@@ -1151,8 +1150,7 @@
// If the substmt parsed correctly, build the AST node.
if (!Stmt.isInvalid() && Tok.is(tok::r_paren))
- Result = Actions.ActOnStmtExpr(
- OpenLoc, Stmt.release(), Tok.getLocation());
+ Result = Actions.ActOnStmtExpr(OpenLoc, move(Stmt), Tok.getLocation());
} else if (ExprType >= CompoundLiteral && isTypeIdInParens()) {
// Otherwise, this is a compound literal expression or cast expression.
@@ -1344,7 +1342,7 @@
if (Tok.is(tok::l_brace)) {
OwningStmtResult Stmt(ParseCompoundStatementBody());
if (!Stmt.isInvalid()) {
- Result = Actions.ActOnBlockStmtExpr(CaretLoc, Stmt.release(), CurScope);
+ Result = Actions.ActOnBlockStmtExpr(CaretLoc, move(Stmt), CurScope);
} else {
Actions.ActOnBlockError(CaretLoc, CurScope);
}
diff --git a/lib/Parse/ParseExprCXX.cpp b/lib/Parse/ParseExprCXX.cpp
index 50e6657..e1b5db9 100644
--- a/lib/Parse/ParseExprCXX.cpp
+++ b/lib/Parse/ParseExprCXX.cpp
@@ -328,9 +328,9 @@
if (!Result.isInvalid() && !CastTy.isInvalid())
Result = Actions.ActOnCXXNamedCast(OpLoc, Kind,
- LAngleBracketLoc, CastTy.get(),
+ LAngleBracketLoc, CastTy.get(),
RAngleBracketLoc,
- LParenLoc, Result.release(), RParenLoc);
+ LParenLoc, move(Result), RParenLoc);
return move(Result);
}
@@ -390,7 +390,7 @@
/// 'false'
Parser::OwningExprResult Parser::ParseCXXBoolLiteral() {
tok::TokenKind Kind = Tok.getKind();
- return Owned(Actions.ActOnCXXBoolLiteral(ConsumeToken(), Kind));
+ return Actions.ActOnCXXBoolLiteral(ConsumeToken(), Kind);
}
/// ParseThrowExpression - This handles the C++ throw expression.
@@ -411,12 +411,12 @@
case tok::r_brace:
case tok::colon:
case tok::comma:
- return Owned(Actions.ActOnCXXThrow(ThrowLoc));
+ return Actions.ActOnCXXThrow(ThrowLoc, ExprArg(Actions));
default:
OwningExprResult Expr(ParseAssignmentExpression());
if (Expr.isInvalid()) return move(Expr);
- return Owned(Actions.ActOnCXXThrow(ThrowLoc, Expr.release()));
+ return Actions.ActOnCXXThrow(ThrowLoc, move(Expr));
}
}
@@ -428,7 +428,7 @@
Parser::OwningExprResult Parser::ParseCXXThis() {
assert(Tok.is(tok::kw_this) && "Not 'this'!");
SourceLocation ThisLoc = ConsumeToken();
- return Owned(Actions.ActOnCXXThis(ThisLoc));
+ return Actions.ActOnCXXThis(ThisLoc);
}
/// ParseCXXTypeConstructExpression - Parse construction of a specified type.
@@ -463,10 +463,9 @@
assert((Exprs.size() == 0 || Exprs.size()-1 == CommaLocs.size())&&
"Unexpected number of commas!");
- return Owned(Actions.ActOnCXXTypeConstructExpr(DS.getSourceRange(), TypeRep,
- LParenLoc,
- Exprs.take(), Exprs.size(),
- &CommaLocs[0], RParenLoc));
+ return Actions.ActOnCXXTypeConstructExpr(DS.getSourceRange(), TypeRep,
+ LParenLoc, move_arg(Exprs),
+ &CommaLocs[0], RParenLoc);
}
/// ParseCXXCondition - if/switch/while/for condition expression.
@@ -518,9 +517,9 @@
if (AssignExpr.isInvalid())
return ExprError();
- return Owned(Actions.ActOnCXXConditionDeclarationExpr(CurScope, StartLoc,
- DeclaratorInfo,EqualLoc,
- AssignExpr.release()));
+ return Actions.ActOnCXXConditionDeclarationExpr(CurScope, StartLoc,
+ DeclaratorInfo,EqualLoc,
+ move(AssignExpr));
}
/// ParseCXXSimpleTypeSpecifier - [C++ 7.1.5.2] Simple type specifiers.
@@ -883,11 +882,10 @@
}
}
- return Owned(Actions.ActOnCXXNew(Start, UseGlobal, PlacementLParen,
- PlacementArgs.take(), PlacementArgs.size(),
- PlacementRParen, ParenTypeId, DeclaratorInfo,
- ConstructorLParen, ConstructorArgs.take(),
- ConstructorArgs.size(), ConstructorRParen));
+ return Actions.ActOnCXXNew(Start, UseGlobal, PlacementLParen,
+ move_arg(PlacementArgs), PlacementRParen,
+ ParenTypeId, DeclaratorInfo, ConstructorLParen,
+ move_arg(ConstructorArgs), ConstructorRParen);
}
/// ParseDirectNewDeclarator - Parses a direct-new-declarator. Intended to be
@@ -977,8 +975,7 @@
if (Operand.isInvalid())
return move(Operand);
- return Owned(Actions.ActOnCXXDelete(Start, UseGlobal, ArrayDelete,
- Operand.release()));
+ return Actions.ActOnCXXDelete(Start, UseGlobal, ArrayDelete, move(Operand));
}
static UnaryTypeTrait UnaryTypeTraitFromTokKind(tok::TokenKind kind)