[libc++][test] Prefers the newer clang-tidy version.
authorMark de Wever <koraq@xs4all.nl>
Fri, 28 Apr 2023 15:38:47 +0000 (17:38 +0200)
committerMark de Wever <koraq@xs4all.nl>
Wed, 31 May 2023 15:24:37 +0000 (17:24 +0200)
Module require Clang 17, since Clang 16 requires the magic # __FILE__
line. Therefore, if available, use clang-tidy 17 too. This change should
be reverted after LLVM 17 is released.

Reviewed By: #libc, ldionne

Differential Revision: https://reviews.llvm.org/D149455

libcxx/test/tools/clang_tidy_checks/CMakeLists.txt
libcxx/utils/libcxx/test/features.py

index bd1611f..1a9f921 100644 (file)
@@ -1,17 +1,17 @@
 
-# Look for the latest package
-set(CMAKE_FIND_PACKAGE_SORT_ORDER NATURAL)
-set(CMAKE_FIND_PACKAGE_SORT_DIRECTION DEC)
-
 # The find_package changes these variables. This leaves the build in an odd
 # state. Calling cmake a second time tries to write site config information in
 # the system's libc++. Restoring these setting after testing fixes this issue.
 set(LLVM_DIR_SAVE ${LLVM_DIR})
 set(Clang_DIR_SAVE ${Clang_DIR})
 
-find_package(Clang 16)
+# TODO LLVM 17 prefer to use teh stable release again instead of ToT.
+# libc++ normally prefers the use the last stable release instead of the ToT.
+# For modules we need ToT since they are still under heavy development. So
+# temporary the ToT version is preferred.
+find_package(Clang 17)
 if (NOT Clang_FOUND)
-  find_package(Clang 17)
+  find_package(Clang 16)
 endif()
 
 set(SOURCES
index b4478b5..fc1680c 100644 (file)
@@ -38,6 +38,10 @@ def _getSuitableClangTidy(cfg):
         ):
             return None
 
+        # TODO MODULES require ToT due module specific fixes.
+        if runScriptExitCode(cfg, ['clang-tidy-17 --version']) == 0:
+          return 'clang-tidy-17'
+
         # TODO This should be the last stable release.
         # LLVM RELEASE bump to latest stable version
         if runScriptExitCode(cfg, ["clang-tidy-16 --version"]) == 0: