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 | fdf5706440543c744cd9faf55235a757a7278daa (patch) | |
tree | 68938ed3a67032d46cd240709ca2a172944fe4ea /lib/Lex | |
parent | f799ae1afb897151a84a7170951e367d8307ae04 (diff) |
[libclang] Fix assertion hit when code-completing inside a function macro with more
arguments than it should accept.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175925 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Lex')
-rw-r--r-- | lib/Lex/PPMacroExpansion.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/Lex/PPMacroExpansion.cpp b/lib/Lex/PPMacroExpansion.cpp index 3e68fbdf01..99ab1346c0 100644 --- a/lib/Lex/PPMacroExpansion.cpp +++ b/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 |