diff options
author | Sebastian Redl <sebastian.redl@getdesigned.at> | 2008-12-09 13:15:23 +0000 |
---|---|---|
committer | Sebastian Redl <sebastian.redl@getdesigned.at> | 2008-12-09 13:15:23 +0000 |
commit | 17f2c7d2514aa1b45c0ff25e777a72f59018788b (patch) | |
tree | 98505df512a34e442d66d23b1a606cebbcfbb129 /clang/lib/Parse/Parser.cpp | |
parent | 08628db9d2183b29a6d7a757523e18313f4cf135 (diff) | |
download | bcm5719-llvm-17f2c7d2514aa1b45c0ff25e777a72f59018788b.tar.gz bcm5719-llvm-17f2c7d2514aa1b45c0ff25e777a72f59018788b.zip |
Consistently use smart pointers for stmt and expr nodes in parser local variables.
llvm-svn: 60761
Diffstat (limited to 'clang/lib/Parse/Parser.cpp')
-rw-r--r-- | clang/lib/Parse/Parser.cpp | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/clang/lib/Parse/Parser.cpp b/clang/lib/Parse/Parser.cpp index 8a5498828e3..f2d0ce4cc40 100644 --- a/clang/lib/Parse/Parser.cpp +++ b/clang/lib/Parse/Parser.cpp @@ -17,6 +17,7 @@ #include "clang/Parse/Scope.h" #include "ExtensionRAIIObject.h" #include "ParsePragma.h" +#include "AstGuard.h" using namespace clang; Parser::Parser(Preprocessor &pp, Action &actions) @@ -333,13 +334,13 @@ Parser::DeclTy *Parser::ParseExternalDeclaration() { return ParseExternalDeclaration(); } case tok::kw_asm: { - ExprResult Result = ParseSimpleAsm(); + ExprOwner Result(Actions, ParseSimpleAsm()); ExpectAndConsume(tok::semi, diag::err_expected_semi_after, "top-level asm block"); - if (!Result.isInvalid) - return Actions.ActOnFileScopeAsmDecl(Tok.getLocation(), Result.Val); + if (!Result.isInvalid()) + return Actions.ActOnFileScopeAsmDecl(Tok.getLocation(), Result.move()); return 0; } case tok::at: @@ -669,12 +670,12 @@ Parser::ExprResult Parser::ParseAsmStringLiteral() { return true; } - ExprResult Res = ParseStringLiteralExpression(); - if (Res.isInvalid) return true; + ExprOwner Res(Actions, ParseStringLiteralExpression()); + if (Res.isInvalid()) return true; // TODO: Diagnose: wide string literal in 'asm' - return Res; + return Res.move(); } /// ParseSimpleAsm @@ -693,14 +694,14 @@ Parser::ExprResult Parser::ParseSimpleAsm() { ConsumeParen(); - ExprResult Result = ParseAsmStringLiteral(); + ExprOwner Result(Actions, ParseAsmStringLiteral()); - if (Result.isInvalid) + if (Result.isInvalid()) SkipUntil(tok::r_paren); else MatchRHSPunctuation(tok::r_paren, Loc); - return Result; + return Result.move(); } /// TryAnnotateTypeOrScopeToken - If the current token position is on a |