Commit f3ae501d authored by Kadir Cetinkaya's avatar Kadir Cetinkaya
Browse files

[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
parent 2711e16b
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -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 {};
+1 −1
Original line number Diff line number Diff line
@@ -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