Skip to content

Commit a4964e8

Browse files
authored
updated CI to Clang 16 (#291)
1 parent db1f61a commit a4964e8

File tree

3 files changed

+16
-5
lines changed

3 files changed

+16
-5
lines changed

.clang-tidy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
Checks: '*,-abseil-*,-altera-*,-android-*,-cert-*,-cppcoreguidelines-*,-fuchsia-*,-google-*,-hicpp-*,-linuxkernel-*,-llvm-*,-llvmlibc-*,-mpi-*,-objc-*,-openmp-*,-zircon-*,-misc-non-private-member-variables-in-classes,-modernize-avoid-c-arrays,-modernize-use-default-member-init,-modernize-use-using,-readability-braces-around-statements,-readability-function-size,-readability-implicit-bool-conversion,-readability-isolate-declaration,-readability-magic-numbers,-readability-simplify-boolean-expr,-readability-uppercase-literal-suffix,-modernize-use-auto,-modernize-use-trailing-return-type,-bugprone-branch-clone,-modernize-pass-by-value,-modernize-loop-convert,-modernize-use-emplace,-modernize-use-equals-default,-performance-noexcept-move-constructor,-modernize-use-equals-delete,-readability-identifier-length,-readability-function-cognitive-complexity,-modernize-return-braced-init-list,-misc-no-recursion,-bugprone-easily-swappable-parameters,-bugprone-narrowing-conversions,-concurrency-mt-unsafe,-modernize-loop-convert,-clang-analyzer-core.NullDereference,-performance-move-constructor-init,-performance-inefficient-string-concatenation,-performance-no-automatic-move,-modernize-use-override'
2+
Checks: '*,-abseil-*,-altera-*,-android-*,-cert-*,-cppcoreguidelines-*,-fuchsia-*,-google-*,-hicpp-*,-linuxkernel-*,-llvm-*,-llvmlibc-*,-mpi-*,-objc-*,-openmp-*,-zircon-*,-misc-non-private-member-variables-in-classes,-modernize-avoid-c-arrays,-modernize-use-default-member-init,-modernize-use-using,-readability-braces-around-statements,-readability-function-size,-readability-implicit-bool-conversion,-readability-isolate-declaration,-readability-magic-numbers,-readability-simplify-boolean-expr,-readability-uppercase-literal-suffix,-modernize-use-auto,-modernize-use-trailing-return-type,-bugprone-branch-clone,-modernize-pass-by-value,-modernize-loop-convert,-modernize-use-emplace,-modernize-use-equals-default,-performance-noexcept-move-constructor,-modernize-use-equals-delete,-readability-identifier-length,-readability-function-cognitive-complexity,-modernize-return-braced-init-list,-misc-no-recursion,-bugprone-easily-swappable-parameters,-bugprone-narrowing-conversions,-concurrency-mt-unsafe,-modernize-loop-convert,-clang-analyzer-*,-performance-move-constructor-init,-performance-inefficient-string-concatenation,-performance-no-automatic-move,-modernize-use-override,-misc-use-anonymous-namespace,-modernize-use-nodiscard'
33
HeaderFilterRegex: '.*'
44
WarningsAsErrors: '*'
55
CheckOptions:

.github/workflows/clang-tidy.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,15 @@ jobs:
2121
run: |
2222
wget https://apt.llvm.org/llvm.sh
2323
chmod +x llvm.sh
24-
sudo ./llvm.sh 15
25-
sudo apt-get install clang-tidy-15
24+
sudo ./llvm.sh 16
25+
sudo apt-get install clang-tidy-16
2626
2727
- name: Prepare CMake
2828
run: |
2929
cmake -S . -B cmake.output -G "Unix Makefiles" -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DDISABLE_CPP03_SYNTAX_CHECK=ON
3030
env:
31-
CXX: clang-15
31+
CXX: clang-16
3232

3333
- name: Clang-Tidy
3434
run: |
35-
run-clang-tidy-15 -q -j $(nproc) -p=cmake.output
35+
run-clang-tidy-16 -q -j $(nproc) -p=cmake.output

CMakeLists.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,16 @@ project (simplecpp LANGUAGES CXX)
33

44
option(DISABLE_CPP03_SYNTAX_CHECK "Disable the C++03 syntax check." OFF)
55

6+
include(CheckCXXCompilerFlag)
7+
8+
function(add_compile_options_safe FLAG)
9+
string(MAKE_C_IDENTIFIER "HAS_CXX_FLAG${FLAG}" mangled_flag)
10+
check_cxx_compiler_flag(${FLAG} ${mangled_flag})
11+
if (${mangled_flag})
12+
add_compile_options(${FLAG})
13+
endif()
14+
endfunction()
15+
616
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU")
717
add_compile_options(-Wall -Wextra -pedantic -Wcast-qual -Wfloat-equal -Wmissing-declarations -Wmissing-format-attribute -Wredundant-decls -Wshadow -Wundef -Wold-style-cast -Wno-multichar)
818
elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
@@ -11,6 +21,7 @@ elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
1121
add_compile_options(-Wno-c++98-compat-pedantic)
1222
# these are not really fixable
1323
add_compile_options(-Wno-exit-time-destructors -Wno-global-constructors -Wno-weak-vtables)
24+
add_compile_options_safe(-Wno-unsafe-buffer-usage)
1425
# we are not interested in these
1526
add_compile_options(-Wno-multichar -Wno-four-char-constants)
1627
# ignore C++11-specific warning

0 commit comments

Comments
 (0)