llvm-project/clang/lib/Lex
Vedant Kumar 95a2a7f2a1 [Lexer] Don't merge macro args from different macro files
The lexer sets the end location of macro arguments incorrectly *if*,
while merging consecutive args to fit into a single SLocEntry, it finds
args which come from different macro files.

Fix the issue by using separate SLocEntries in this situation.

This fixes a code coverage crasher (rdar://problem/26181005). Because
the lexer reported end locations for certain macro args incorrectly, we
would generate bogus coverage mappings with negative line offsets.

Reviewed-by: akyrtzi

Differential Revision: http://reviews.llvm.org/D20401

llvm-svn: 270160
2016-05-19 23:44:02 +00:00
..
CMakeLists.txt
HeaderMap.cpp Lex: Return "" when HeaderMap::lookupFilename fails 2016-02-23 00:48:16 +00:00
HeaderSearch.cpp NFC: simplify logic. 2016-05-17 18:04:38 +00:00
Lexer.cpp [Lexer] Let the compiler infer string lengths. No functionality change intended. 2016-04-01 10:04:07 +00:00
LiteralSupport.cpp Enable support for __float128 in Clang and enable it on pertinent platforms 2016-05-09 08:52:33 +00:00
MacroArgs.cpp [modules] Stop trying to fake up a linear MacroDirective history. 2015-04-29 23:20:19 +00:00
MacroInfo.cpp Annotate dump() methods with LLVM_DUMP_METHOD, addressing Richard Smith r259192 post commit comment. 2016-01-29 19:38:18 +00:00
ModuleMap.cpp [Lex] inferModuleFromLocation should do no work if there are no modules 2016-05-16 20:30:03 +00:00
PPCaching.cpp [Parser] Update CachedTokens while parsing ObjectiveC template argument list 2016-01-31 00:47:51 +00:00
PPCallbacks.cpp
PPConditionalDirectiveRecord.cpp Switch PPCallbacks to take the new MacroDefinition instead of MacroDirective*, in order to preserve full information on module macro expansion. 2015-05-04 03:15:40 +00:00
PPDirectives.cpp Modules: set SystemHeader to true if we are building a system module. 2016-05-17 02:15:12 +00:00
PPExpressions.cpp Improve diagnostic for the case when a non-defined function-like macro is used 2016-04-16 00:07:09 +00:00
PPLexerChange.cpp PR24667: fix quadratic runtime if textually-included modular headers define large numbers of macros. 2016-02-23 23:20:51 +00:00
PPMacroExpansion.cpp [esan] EfficiencySanitizer driver flags 2016-04-21 21:32:04 +00:00
PTHLexer.cpp Roll-back r250822. 2015-10-20 13:23:58 +00:00
Pragma.cpp Add a PragmaHandler Registry for plugins to add PragmaHandlers to 2016-04-04 14:22:58 +00:00
PreprocessingRecord.cpp Roll-back r250822. 2015-10-20 13:23:58 +00:00
Preprocessor.cpp AnnotateFunctions: Tweak for mingw. 2016-04-04 15:30:44 +00:00
PreprocessorLexer.cpp
ScratchBuffer.cpp MSan told me that we actually dump the entire scratch buffer into PCH files, initialize it. 2015-04-06 20:01:49 +00:00
TokenConcatenation.cpp [clang] Refactoring of conditions so they use isOneOf() instead of multiple is(). 2015-06-18 10:59:26 +00:00
TokenLexer.cpp [Lexer] Don't merge macro args from different macro files 2016-05-19 23:44:02 +00:00
UnicodeCharSets.h Header guard canonicalization, clang part. 2014-08-13 16:25:19 +00:00