diff options
Diffstat (limited to 'clang/test/Preprocessor/nonportable-include-with-hmap.c')
| -rw-r--r-- | clang/test/Preprocessor/nonportable-include-with-hmap.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/clang/test/Preprocessor/nonportable-include-with-hmap.c b/clang/test/Preprocessor/nonportable-include-with-hmap.c index bbbd669a0f3..6fd407c4fa5 100644 --- a/clang/test/Preprocessor/nonportable-include-with-hmap.c +++ b/clang/test/Preprocessor/nonportable-include-with-hmap.c @@ -1,5 +1,9 @@ +// REQUIRES: shell + // RUN: rm -f %t.hmap -// RUN: %hmaptool write %S/Inputs/nonportable-hmaps/foo.hmap.json %t.hmap +// RUN: sed -e "s:INPUTS_DIR:%S/Inputs:g" \ +// RUN: %S/Inputs/nonportable-hmaps/foo.hmap.json > %t.hmap.json +// RUN: %hmaptool write %t.hmap.json %t.hmap // RUN: %clang_cc1 -Eonly \ // RUN: -I%t.hmap \ // RUN: -I%S/Inputs/nonportable-hmaps \ @@ -15,4 +19,16 @@ // 5. Return. // // There is nothing nonportable; -Wnonportable-include-path should not fire. -#include "Foo/Foo.h" // expected-no-diagnostics +#include "Foo/Foo.h" // no warning + +// Verify files with absolute paths in the header map are handled too. +// "Bar.h" is included twice to make sure that when we see potentially +// nonportable path, the file has been already discovered through a relative +// path which triggers the file to be opened and `FileEntry::RealPathName` +// to be set. +#include "Bar.h" +#include "Foo/Bar.h" // no warning + +// But the presence of the absolute path in the header map is not enough. If we +// didn't use it to discover a file, shouldn't suppress the warning. +#include "headers/Foo/Baz.h" // expected-warning {{non-portable path}} |

