https://github.com/zeyi2 updated https://github.com/llvm/llvm-project/pull/213681
>From 5ea820d09e4b0483ddfb304eb30f52481d1d7003 Mon Sep 17 00:00:00 2001 From: Zeyi Xu <[email protected]> Date: Mon, 3 Aug 2026 22:09:08 +0800 Subject: [PATCH 1/2] [Tooling] Resolve tool names from PATH in CommonOptionsParser --- clang-tools-extra/docs/ReleaseNotes.rst | 3 +++ clang/lib/Tooling/CommonOptionsParser.cpp | 1 + clang/test/Tooling/clang-check-mac-libcxx-relpath.cpp | 5 +++++ 3 files changed, 9 insertions(+) diff --git a/clang-tools-extra/docs/ReleaseNotes.rst b/clang-tools-extra/docs/ReleaseNotes.rst index 9a5a23f3d8542..df0b3df12708e 100644 --- a/clang-tools-extra/docs/ReleaseNotes.rst +++ b/clang-tools-extra/docs/ReleaseNotes.rst @@ -94,6 +94,9 @@ Improvements to clang-query Improvements to clang-tidy -------------------------- +- Improved :program:`clang-tidy` by resolving tool names without a path in + compilation databases through ``PATH``. + New checks ^^^^^^^^^^ diff --git a/clang/lib/Tooling/CommonOptionsParser.cpp b/clang/lib/Tooling/CommonOptionsParser.cpp index c8c3ca98323e2..454e7ca68a65f 100644 --- a/clang/lib/Tooling/CommonOptionsParser.cpp +++ b/clang/lib/Tooling/CommonOptionsParser.cpp @@ -139,6 +139,7 @@ llvm::Error CommonOptionsParser::init( new FixedCompilationDatabase(".", std::vector<std::string>())); } } + Compilations = inferToolLocation(std::move(Compilations)); auto AdjustingCompilations = std::make_unique<ArgumentsAdjustingCompilations>( std::move(Compilations)); diff --git a/clang/test/Tooling/clang-check-mac-libcxx-relpath.cpp b/clang/test/Tooling/clang-check-mac-libcxx-relpath.cpp index 7a801a2814402..bcee5ad949fbe 100644 --- a/clang/test/Tooling/clang-check-mac-libcxx-relpath.cpp +++ b/clang/test/Tooling/clang-check-mac-libcxx-relpath.cpp @@ -12,6 +12,11 @@ // RUN: cp "%s" "%t/test.cpp" // clang-check will produce an error code if the mock library is not found. // RUN: clang-check -p "%t" "%t/test.cpp" +// +// Resolve a driver without a path through PATH. +// RUN: chmod +x %t/mock-libcxx/bin/clang +// RUN: echo '[{"directory":"%t","command":"clang -stdlib=libc++ -target x86_64-apple-darwin -c test.cpp","file":"test.cpp"}]' | sed -e 's/\\/\//g' > %t/compile_commands.json +// RUN: env "PATH=%t/mock-libcxx/bin%{pathsep}%PATH%" clang-check -p "%t" "%t/test.cpp" #include <mock_vector> vector v; >From f7064f593d1f47746a5ea38bdcd7e55540a8bf40 Mon Sep 17 00:00:00 2001 From: Zeyi Xu <[email protected]> Date: Fri, 14 Aug 2026 21:35:37 +0800 Subject: [PATCH 2/2] update release notes --- clang-tools-extra/docs/ReleaseNotes.md | 3 --- clang/docs/ReleaseNotes.md | 3 +++ 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/clang-tools-extra/docs/ReleaseNotes.md b/clang-tools-extra/docs/ReleaseNotes.md index 47ac59f456a2a..4a4048c5f9637 100644 --- a/clang-tools-extra/docs/ReleaseNotes.md +++ b/clang-tools-extra/docs/ReleaseNotes.md @@ -94,9 +94,6 @@ infrastructure are described first, followed by tool-specific sections. ### Improvements to clang-tidy -- Improved {program}`clang-tidy` by resolving tool names without a path in - compilation databases through `PATH`. - - Improved {program}`check_clang_tidy.py` by adding support of `-std=cXX-or-earlier` values, mirroring the existing `-std=cXX-or-later`. New construct expands to the given standard and every earlier one. diff --git a/clang/docs/ReleaseNotes.md b/clang/docs/ReleaseNotes.md index 9a19bb2f2d5c7..96d0c782ffa25 100644 --- a/clang/docs/ReleaseNotes.md +++ b/clang/docs/ReleaseNotes.md @@ -179,6 +179,9 @@ features cannot lower the translation-unit ABI level; ### Non-comprehensive list of changes in this release +- Clang tools now resolve tool names without a path in compilation databases + through `PATH`. + - Clang now allows GNU computed `goto` extension in `constexpr` functions, matching the relaxed `constexpr` function body rules introduced in C++23. _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
