HomePhabricator

[Lexer] Don't merge macro args from different macro files

Description

[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

Details

Committed
vedantkMay 19 2016, 4:44 PM
Differential Revision
D20401: [Lexer] Don't merge macro args from different macro files
Branches
Unknown
Tags
Unknown