In `DirectoryLookup::LookupFile` parameter `HasBeenMapped` doesn't cover the case when clang finds a file through a header map but doesn't remap the lookup filename because the target path is an absolute path. As a result, -Wnonportable-include-path suppression for header maps introduced in r301592 wasn't triggered. Change parameter `HasBeenMapped` to `IsInHeaderMap` and use parameter `MappedName` to track the filename remapping. This way we can handle both relative and absolute paths in header maps, and account for their specific properties, like filename remapping being a property preserved across lookups in multiple directories. rdar://problem/39516483 Reviewers: dexonsmith, bruno Reviewed By: dexonsmith Subscribers: jkorous, cfe-commits, ributzka Differential Revision: https://reviews.llvm.org/D58094 llvm-svn: 371655
10 lines
239 B
JSON
10 lines
239 B
JSON
{
|
|
"mappings" :
|
|
{
|
|
"Foo/Foo.h" : "headers/foo/Foo.h",
|
|
"Bar.h" : "headers/foo/Bar.h",
|
|
"Foo/Bar.h" : "INPUTS_DIR/nonportable-hmaps/headers/foo/Bar.h",
|
|
"headers/Foo/Baz.h" : "/not/existing/absolute/path/Baz.h"
|
|
}
|
|
}
|