mirror of
https://github.com/llvm/llvm-project.git
synced 2025-05-01 15:16:07 +00:00
Make ActOnExprStmt take a FullExprArg.
llvm-svn: 71989
This commit is contained in:
parent
0e70d84e29
commit
24824e5009
@ -460,8 +460,8 @@ public:
|
||||
return StmtEmpty();
|
||||
}
|
||||
|
||||
virtual OwningStmtResult ActOnExprStmt(ExprArg Expr) {
|
||||
return OwningStmtResult(*this, Expr.release());
|
||||
virtual OwningStmtResult ActOnExprStmt(FullExprArg Expr) {
|
||||
return OwningStmtResult(*this, Expr->release());
|
||||
}
|
||||
|
||||
/// ActOnCaseStmt - Note that this handles the GNU 'case 1 ... 4' extension,
|
||||
|
@ -594,6 +594,9 @@ bool Expr::isUnusedResultAWarning(SourceLocation &Loc, SourceRange &R1,
|
||||
// effects (e.g. a placement new with an uninitialized POD).
|
||||
case CXXDeleteExprClass:
|
||||
return false;
|
||||
case CXXExprWithTemporariesClass:
|
||||
return cast<CXXExprWithTemporaries>(this)
|
||||
->getSubExpr()->isUnusedResultAWarning(Loc, R1, R2);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1408,7 +1408,7 @@ Parser::OwningStmtResult Parser::ParseObjCAtStatement(SourceLocation AtLoc) {
|
||||
}
|
||||
// Otherwise, eat the semicolon.
|
||||
ExpectAndConsume(tok::semi, diag::err_expected_semi_after_expr);
|
||||
return Actions.ActOnExprStmt(move(Res));
|
||||
return Actions.ActOnExprStmt(Actions.FullExpr(Res));
|
||||
}
|
||||
|
||||
Parser::OwningExprResult Parser::ParseObjCAtExpression(SourceLocation AtLoc) {
|
||||
|
@ -121,7 +121,7 @@ Parser::ParseStatementOrDeclaration(bool OnlyStatement) {
|
||||
}
|
||||
// Otherwise, eat the semicolon.
|
||||
ExpectAndConsume(tok::semi, diag::err_expected_semi_after_expr);
|
||||
return Actions.ActOnExprStmt(move(Expr));
|
||||
return Actions.ActOnExprStmt(Actions.FullExpr(Expr));
|
||||
}
|
||||
|
||||
case tok::kw_case: // C99 6.8.1: labeled-statement
|
||||
@ -457,7 +457,7 @@ Parser::OwningStmtResult Parser::ParseCompoundStatementBody(bool isStmtExpr) {
|
||||
// Eat the semicolon at the end of stmt and convert the expr into a
|
||||
// statement.
|
||||
ExpectAndConsume(tok::semi, diag::err_expected_semi_after_expr);
|
||||
R = Actions.ActOnExprStmt(move(Res));
|
||||
R = Actions.ActOnExprStmt(Actions.FullExpr(Res));
|
||||
}
|
||||
}
|
||||
|
||||
@ -929,7 +929,7 @@ Parser::OwningStmtResult Parser::ParseForStatement() {
|
||||
|
||||
// Turn the expression into a stmt.
|
||||
if (!Value.isInvalid())
|
||||
FirstPart = Actions.ActOnExprStmt(move(Value));
|
||||
FirstPart = Actions.ActOnExprStmt(Actions.FullExpr(Value));
|
||||
|
||||
if (Tok.is(tok::semi)) {
|
||||
ConsumeToken();
|
||||
|
@ -1155,7 +1155,7 @@ public:
|
||||
//===--------------------------------------------------------------------===//
|
||||
// Statement Parsing Callbacks: SemaStmt.cpp.
|
||||
public:
|
||||
virtual OwningStmtResult ActOnExprStmt(ExprArg Expr);
|
||||
virtual OwningStmtResult ActOnExprStmt(FullExprArg Expr);
|
||||
|
||||
virtual OwningStmtResult ActOnNullStmt(SourceLocation SemiLoc);
|
||||
virtual OwningStmtResult ActOnCompoundStmt(SourceLocation L, SourceLocation R,
|
||||
|
@ -21,8 +21,8 @@
|
||||
#include "clang/Basic/TargetInfo.h"
|
||||
using namespace clang;
|
||||
|
||||
Sema::OwningStmtResult Sema::ActOnExprStmt(ExprArg expr) {
|
||||
Expr *E = expr.takeAs<Expr>();
|
||||
Sema::OwningStmtResult Sema::ActOnExprStmt(FullExprArg expr) {
|
||||
Expr *E = expr->takeAs<Expr>();
|
||||
assert(E && "ActOnExprStmt(): missing expression");
|
||||
|
||||
// C99 6.8.3p2: The expression in an expression statement is evaluated as a
|
||||
|
@ -266,9 +266,9 @@ namespace {
|
||||
return StmtEmpty();
|
||||
}
|
||||
|
||||
virtual OwningStmtResult ActOnExprStmt(ExprArg Expr) {
|
||||
virtual OwningStmtResult ActOnExprStmt(FullExprArg Expr) {
|
||||
llvm::cout << __FUNCTION__ << "\n";
|
||||
return OwningStmtResult(*this, Expr.release());
|
||||
return OwningStmtResult(*this, Expr->release());
|
||||
}
|
||||
|
||||
/// ActOnCaseStmt - Note that this handles the GNU 'case 1 ... 4' extension,
|
||||
|
Loading…
x
Reference in New Issue
Block a user