From c0ef730caff5b4aceaa93c90374f3a546fb39acd Mon Sep 17 00:00:00 2001 From: Nikolas Klauser Date: Fri, 27 Dec 2024 11:05:25 +0100 Subject: [PATCH 1/2] [libc++] run clang-tidy on src/ in the CI --- libcxx/src/.clang-tidy | 16 +++++++++++++++- libcxx/test/configs/cmake-bridge.cfg.in | 1 + libcxx/test/libcxx/clang_tidy.sh.py | 11 +++++++++++ libcxx/utils/ci/run-buildbot | 1 + 4 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 libcxx/test/libcxx/clang_tidy.sh.py diff --git a/libcxx/src/.clang-tidy b/libcxx/src/.clang-tidy index ec8f2e0a76a3c..3d5493d965558 100644 --- a/libcxx/src/.clang-tidy +++ b/libcxx/src/.clang-tidy @@ -1,4 +1,18 @@ InheritParentConfig: true Checks: > - -readability-identifier-naming + -clang-analyzer-*, + + -llvm-include-order, + + -modernize-loop-convert, + -modernize-use-equals-delete, + -modernize-use-nullptr, + -modernize-use-override, + + -readability-identifier-naming, + -readability-function-cognitive-complexity, + -readability-function-size, + -readability-simplify-boolean-expr, + +# TODO: Consider enabling clang-analyzer. Without the checks clang-tidy runs 18x faster on my system. diff --git a/libcxx/test/configs/cmake-bridge.cfg.in b/libcxx/test/configs/cmake-bridge.cfg.in index 61f821a7e4f6b..d7d588669032d 100644 --- a/libcxx/test/configs/cmake-bridge.cfg.in +++ b/libcxx/test/configs/cmake-bridge.cfg.in @@ -23,6 +23,7 @@ config.recursiveExpansionLimit = 10 config.test_exec_root = os.path.join('@LIBCXX_BINARY_DIR@', 'test') # Add substitutions for bootstrapping the test suite configuration +config.substitutions.append(('%{bin-dir}', '@LIBCXX_BINARY_DIR@')) config.substitutions.append(('%{libcxx-dir}', '@LIBCXX_SOURCE_DIR@')) config.substitutions.append(('%{install-prefix}', '@LIBCXX_TESTING_INSTALL_PREFIX@')) config.substitutions.append(('%{include-dir}', '@LIBCXX_TESTING_INSTALL_PREFIX@/@LIBCXX_INSTALL_INCLUDE_DIR@')) diff --git a/libcxx/test/libcxx/clang_tidy.sh.py b/libcxx/test/libcxx/clang_tidy.sh.py new file mode 100644 index 0000000000000..46f281f359209 --- /dev/null +++ b/libcxx/test/libcxx/clang_tidy.sh.py @@ -0,0 +1,11 @@ +# ===----------------------------------------------------------------------===## +# +# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +# See https://llvm.org/LICENSE.txt for license information. +# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +# +# ===----------------------------------------------------------------------===## + +# REQUIRES: has-clang-tidy + +# RUN: %{python} %{libcxx-dir}/../clang-tools-extra/clang-tidy/tool/run-clang-tidy.py -clang-tidy-binary %{clang-tidy} -warnings-as-errors "*" -source-filter=".*libcxx/src.*" -quiet -p %{bin-dir}/.. diff --git a/libcxx/utils/ci/run-buildbot b/libcxx/utils/ci/run-buildbot index 5c809fafe2cf5..fadaeb877a31c 100755 --- a/libcxx/utils/ci/run-buildbot +++ b/libcxx/utils/ci/run-buildbot @@ -147,6 +147,7 @@ function generate-cmake() { generate-cmake-base \ -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi;libunwind" \ -DLIBCXX_CXX_ABI=libcxxabi \ + -DCMAKE_EXPORT_COMPILE_COMMANDS=On \ "${@}" } From b2c056ebe10e5d75540efd72e83e824d0bda26d6 Mon Sep 17 00:00:00 2001 From: Nikolas Klauser Date: Thu, 15 May 2025 10:33:48 +0200 Subject: [PATCH 2/2] Update libcxx/utils/ci/run-buildbot Co-authored-by: Louis Dionne --- libcxx/utils/ci/run-buildbot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libcxx/utils/ci/run-buildbot b/libcxx/utils/ci/run-buildbot index fadaeb877a31c..d8b23be9a0323 100755 --- a/libcxx/utils/ci/run-buildbot +++ b/libcxx/utils/ci/run-buildbot @@ -147,7 +147,7 @@ function generate-cmake() { generate-cmake-base \ -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi;libunwind" \ -DLIBCXX_CXX_ABI=libcxxabi \ - -DCMAKE_EXPORT_COMPILE_COMMANDS=On \ + -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ "${@}" }