summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKadir Cetinkaya <kadircet@google.com>2019-07-19 09:08:22 +0000
committerKadir Cetinkaya <kadircet@google.com>2019-07-19 09:08:22 +0000
commitf3ae501d36eb742a82041707d1fe2aba2613e5fc (patch)
tree3a49e583fc5b8ca3cc6d78c1d15056b9f16f151e
parent2711e16b354fbb830c54e621c22bf6ee5823437a (diff)
downloadbcm5719-llvm-f3ae501d36eb742a82041707d1fe2aba2613e5fc.tar.gz
bcm5719-llvm-f3ae501d36eb742a82041707d1fe2aba2613e5fc.zip
[clangd] Handle windows line endings in QueryDriver
Summary: The previous patch did not fix the end mark. D64789 fixes second case of https://github.com/clangd/clangd/issues/93 Patch by @lh123 ! Reviewers: sammccall, kadircet Reviewed By: kadircet Subscribers: MaskRay, ilya-biryukov, jkorous, arphaman, cfe-commits Tags: #clang-tools-extra, #clang Differential Revision: https://reviews.llvm.org/D64970 llvm-svn: 366545
-rw-r--r--clang-tools-extra/clangd/QueryDriverDatabase.cpp6
-rw-r--r--clang-tools-extra/clangd/test/system-include-extractor.test2
2 files changed, 5 insertions, 3 deletions
diff --git a/clang-tools-extra/clangd/QueryDriverDatabase.cpp b/clang-tools-extra/clangd/QueryDriverDatabase.cpp
index 28596dafb60..bec6ea7186b 100644
--- a/clang-tools-extra/clangd/QueryDriverDatabase.cpp
+++ b/clang-tools-extra/clangd/QueryDriverDatabase.cpp
@@ -59,7 +59,7 @@ namespace {
std::vector<std::string> parseDriverOutput(llvm::StringRef Output) {
std::vector<std::string> SystemIncludes;
const char SIS[] = "#include <...> search starts here:";
- constexpr char const *SIE = "End of search list.";
+ const char SIE[] = "End of search list.";
llvm::SmallVector<llvm::StringRef, 8> Lines;
Output.split(Lines, '\n', /*MaxSplit=*/-1, /*KeepEmpty=*/false);
@@ -70,7 +70,9 @@ std::vector<std::string> parseDriverOutput(llvm::StringRef Output) {
return {};
}
++StartIt;
- const auto EndIt = std::find(StartIt, Lines.end(), SIE);
+ const auto EndIt =
+ llvm::find_if(llvm::make_range(StartIt, Lines.end()),
+ [SIE](llvm::StringRef Line) { return Line.trim() == SIE; });
if (EndIt == Lines.end()) {
elog("System include extraction: end marker missing: {0}", Output);
return {};
diff --git a/clang-tools-extra/clangd/test/system-include-extractor.test b/clang-tools-extra/clangd/test/system-include-extractor.test
index 8f99db9122a..9f1a3de48bc 100644
--- a/clang-tools-extra/clangd/test/system-include-extractor.test
+++ b/clang-tools-extra/clangd/test/system-include-extractor.test
@@ -8,7 +8,7 @@
# RUN: echo 'echo -e "#include <...> search starts here:\r" >&2' >> %t.dir/my_driver.sh
# RUN: echo 'echo %t.dir/my/dir/ >&2' >> %t.dir/my_driver.sh
# RUN: echo 'echo %t.dir/my/dir2/ >&2' >> %t.dir/my_driver.sh
-# RUN: echo 'echo End of search list. >&2' >> %t.dir/my_driver.sh
+# RUN: echo 'echo -e "End of search list.\r" >&2' >> %t.dir/my_driver.sh
# RUN: chmod +x %t.dir/my_driver.sh
# Create header files my/dir/a.h and my/dir2/b.h
OpenPOWER on IntegriCloud