diff options
-rw-r--r-- | include/clang/Lex/Preprocessor.h | 7 | ||||
-rw-r--r-- | lib/Lex/PPDirectives.cpp | 5 |
2 files changed, 6 insertions, 6 deletions
diff --git a/include/clang/Lex/Preprocessor.h b/include/clang/Lex/Preprocessor.h index fa9c417af5..591a4498eb 100644 --- a/include/clang/Lex/Preprocessor.h +++ b/include/clang/Lex/Preprocessor.h @@ -1120,9 +1120,10 @@ private: /// ReadMacroDefinitionArgList - The ( starting an argument list of a macro /// definition has just been read. Lex the rest of the arguments and the - /// closing ), updating MI with what we learn. Return true if an error occurs - /// parsing the arg list. - bool ReadMacroDefinitionArgList(MacroInfo *MI); + /// closing ), updating MI with what we learn and saving in LastTok the + /// last token read. + /// Return true if an error occurs parsing the arg list. + bool ReadMacroDefinitionArgList(MacroInfo *MI, Token& LastTok); /// SkipExcludedConditionalBlock - We just read a #if or related directive and /// decided that the subsequent tokens are in the #if'd out portion of the diff --git a/lib/Lex/PPDirectives.cpp b/lib/Lex/PPDirectives.cpp index aa3d1bf66d..625a204af9 100644 --- a/lib/Lex/PPDirectives.cpp +++ b/lib/Lex/PPDirectives.cpp @@ -1549,10 +1549,9 @@ void Preprocessor::HandleIncludeMacrosDirective(SourceLocation HashLoc, /// definition has just been read. Lex the rest of the arguments and the /// closing ), updating MI with what we learn. Return true if an error occurs /// parsing the arg list. -bool Preprocessor::ReadMacroDefinitionArgList(MacroInfo *MI) { +bool Preprocessor::ReadMacroDefinitionArgList(MacroInfo *MI, Token &Tok) { SmallVector<IdentifierInfo*, 32> Arguments; - Token Tok; while (1) { LexUnexpandedToken(Tok); switch (Tok.getKind()) { @@ -1671,7 +1670,7 @@ void Preprocessor::HandleDefineDirective(Token &DefineTok) { } else if (Tok.is(tok::l_paren)) { // This is a function-like macro definition. Read the argument list. MI->setIsFunctionLike(); - if (ReadMacroDefinitionArgList(MI)) { + if (ReadMacroDefinitionArgList(MI, LastTok)) { // Forget about MI. ReleaseMacroInfo(MI); // Throw away the rest of the line. |