[clangd] Attempt to fix failing Windows buildbots.
The assertion is failing on Windows, probably because path separator is different.
For the failure see:
http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/28072/steps/test/logs/stdio
git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@371422 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/clangd/index/CanonicalIncludes.cpp b/clangd/index/CanonicalIncludes.cpp
index aee6e3f..4f9d2f2 100644
--- a/clangd/index/CanonicalIncludes.cpp
+++ b/clangd/index/CanonicalIncludes.cpp
@@ -47,6 +47,7 @@
int Components = 1;
+ // FIXME: check that this works on Windows and add tests.
for (auto It = llvm::sys::path::rbegin(Header),
End = llvm::sys::path::rend(Header);
It != End && Components <= MaxSuffixComponents; ++It, ++Components) {
@@ -759,12 +760,14 @@
});
// Check MaxSuffixComponents constant is correct.
assert(llvm::all_of(SystemHeaderMap->keys(), [](llvm::StringRef Path) {
- return std::distance(llvm::sys::path::begin(Path),
- llvm::sys::path::end(Path)) <= MaxSuffixComponents;
+ return std::distance(
+ llvm::sys::path::begin(Path, llvm::sys::path::Style::posix),
+ llvm::sys::path::end(Path)) <= MaxSuffixComponents;
}));
// ... and precise.
assert(llvm::find_if(SystemHeaderMap->keys(), [](llvm::StringRef Path) {
- return std::distance(llvm::sys::path::begin(Path),
+ return std::distance(llvm::sys::path::begin(
+ Path, llvm::sys::path::Style::posix),
llvm::sys::path::end(Path)) ==
MaxSuffixComponents;
}) != SystemHeaderMap->keys().end());