From: Argyrios Kyrtzidis Date: Wed, 31 Mar 2010 00:38:09 +0000 (+0000) Subject: Add a few asserts to be on the safe side. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c50a5e09c6c49577ecee7fb49ece97dc38ee1219;p=clang Add a few asserts to be on the safe side. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99973 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Parse/ParseCXXInlineMethods.cpp b/lib/Parse/ParseCXXInlineMethods.cpp index 44a14c3315..87e22fa9dc 100644 --- a/lib/Parse/ParseCXXInlineMethods.cpp +++ b/lib/Parse/ParseCXXInlineMethods.cpp @@ -189,6 +189,9 @@ void Parser::ParseLexedMethodDefs(ParsingClass &Class) { if (LM.TemplateScope) Actions.ActOnReenterTemplateScope(CurScope, LM.D); + // Save the current token position. + SourceLocation origLoc = Tok.getLocation(); + assert(!LM.Toks.empty() && "Empty body!"); // Append the current token at the end of the new token stream so that it // doesn't get lost. @@ -207,6 +210,11 @@ void Parser::ParseLexedMethodDefs(ParsingClass &Class) { if (Tok.is(tok::kw_try)) { ParseFunctionTryBlock(LM.D); + assert(!PP.getSourceManager().isBeforeInTranslationUnit(origLoc, + Tok.getLocation()) && + "ParseFunctionTryBlock went over the cached tokens!"); + assert(Tok.getLocation() == origLoc && + "ParseFunctionTryBlock left tokens in the token stream!"); continue; } if (Tok.is(tok::colon)) @@ -216,6 +224,11 @@ void Parser::ParseLexedMethodDefs(ParsingClass &Class) { // FIXME: What if ParseConstructorInitializer doesn't leave us with a '{'?? ParseFunctionStatementBody(LM.D); + assert(!PP.getSourceManager().isBeforeInTranslationUnit(origLoc, + Tok.getLocation()) && + "We consumed more than the cached tokens!"); + assert(Tok.getLocation() == origLoc && + "Tokens were left in the token stream!"); } for (unsigned I = 0, N = Class.NestedClasses.size(); I != N; ++I)