diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2013-02-22 22:28:58 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2013-02-22 22:28:58 +0000 |
commit | fb70380f2f4d546c5ac37bb5bb98ad2c46810c41 (patch) | |
tree | e027857222904d28e476b644fd5f47886ab82d38 /clang/lib/Lex/PPMacroExpansion.cpp | |
parent | 3f875c589fb6b581429d422b4257e7eb325bcbb2 (diff) | |
download | bcm5719-llvm-fb70380f2f4d546c5ac37bb5bb98ad2c46810c41.tar.gz bcm5719-llvm-fb70380f2f4d546c5ac37bb5bb98ad2c46810c41.zip |
[libclang] Fix assertion hit when code-completing inside a function macro with more
arguments than it should accept.
llvm-svn: 175925
Diffstat (limited to 'clang/lib/Lex/PPMacroExpansion.cpp')
-rw-r--r-- | clang/lib/Lex/PPMacroExpansion.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/clang/lib/Lex/PPMacroExpansion.cpp b/clang/lib/Lex/PPMacroExpansion.cpp index 3e68fbdf011..99ab1346c03 100644 --- a/clang/lib/Lex/PPMacroExpansion.cpp +++ b/clang/lib/Lex/PPMacroExpansion.cpp @@ -620,8 +620,10 @@ MacroArgs *Preprocessor::ReadFunctionLikeMacroArgs(Token &MacroName, EOFTok.setLength(0); ArgTokens.push_back(EOFTok); ++NumActuals; - assert(NumFixedArgsLeft != 0 && "Too many arguments parsed"); - --NumFixedArgsLeft; + if (!ContainsCodeCompletionTok || NumFixedArgsLeft != 0) { + assert(NumFixedArgsLeft != 0 && "Too many arguments parsed"); + --NumFixedArgsLeft; + } } // Okay, we either found the r_paren. Check to see if we parsed too few |