diff options
| author | Chris Lattner <sabre@nondot.org> | 2006-07-29 07:14:41 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2006-07-29 07:14:41 +0000 |
| commit | f76e62ecad77fa706809f42be8b7424604af733d (patch) | |
| tree | 707cda41e3512716dcbc971e3d8b10614d8bcc7a /clang/Lex/MacroExpander.cpp | |
| parent | 5b123fde96ffc953f46c126325351b4049e93f8c (diff) | |
| download | bcm5719-llvm-f76e62ecad77fa706809f42be8b7424604af733d.tar.gz bcm5719-llvm-f76e62ecad77fa706809f42be8b7424604af733d.zip | |
Implement support for #__VA_ARGS__
llvm-svn: 38791
Diffstat (limited to 'clang/Lex/MacroExpander.cpp')
| -rw-r--r-- | clang/Lex/MacroExpander.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/clang/Lex/MacroExpander.cpp b/clang/Lex/MacroExpander.cpp index c887512ff0e..e7ace59e17f 100644 --- a/clang/Lex/MacroExpander.cpp +++ b/clang/Lex/MacroExpander.cpp @@ -307,7 +307,13 @@ void MacroExpander::ExpandFunctionArguments() { const LexerToken &CurTok = MacroTokens[i]; if (CurTok.getKind() == tok::hash || CurTok.getKind() == tok::hashat) { int ArgNo = Macro->getArgumentNum(MacroTokens[i+1].getIdentifierInfo()); - assert(ArgNo != -1 && "Token following # is not an argument?"); + if (ArgNo == -1) { + // Otherwise, this must be #__VA_ARGS__. + assert(MacroTokens[i+1].getIdentifierInfo() == + PP.get__VA_ARGS__Identifier() && + "Token following # is not an argument?"); + ArgNo = Macro->getNumArgs(); + } LexerToken Res; if (CurTok.getKind() == tok::hash) // Stringify |

