[clang-tools-extra] r366545 - [clangd] Handle windows line endings in QueryDriver

Hans Wennborg via cfe-commits cfe-commits at lists.llvm.org
Thu Aug 1 07:46:20 PDT 2019


Merged to release_90 in r367571.

On Fri, Jul 19, 2019 at 11:07 AM Kadir Cetinkaya via cfe-commits
<cfe-commits at lists.llvm.org> wrote:
>
> Author: kadircet
> Date: Fri Jul 19 02:08:22 2019
> New Revision: 366545
>
> URL: http://llvm.org/viewvc/llvm-project?rev=366545&view=rev
> Log:
> [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
>
> Modified:
>     clang-tools-extra/trunk/clangd/QueryDriverDatabase.cpp
>     clang-tools-extra/trunk/clangd/test/system-include-extractor.test
>
> Modified: clang-tools-extra/trunk/clangd/QueryDriverDatabase.cpp
> URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clangd/QueryDriverDatabase.cpp?rev=366545&r1=366544&r2=366545&view=diff
> ==============================================================================
> --- clang-tools-extra/trunk/clangd/QueryDriverDatabase.cpp (original)
> +++ clang-tools-extra/trunk/clangd/QueryDriverDatabase.cpp Fri Jul 19 02:08:22 2019
> @@ -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> parseDriverOutp
>      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 {};
>
> Modified: clang-tools-extra/trunk/clangd/test/system-include-extractor.test
> URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clangd/test/system-include-extractor.test?rev=366545&r1=366544&r2=366545&view=diff
> ==============================================================================
> --- clang-tools-extra/trunk/clangd/test/system-include-extractor.test (original)
> +++ clang-tools-extra/trunk/clangd/test/system-include-extractor.test Fri Jul 19 02:08:22 2019
> @@ -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
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


More information about the cfe-commits mailing list