The open source OpenXR runtime

improve clang-tidy check list

Part-of: <https://gitlab.freedesktop.org/monado/monado/-/merge_requests/2592>

Changed files
+189 -25
src
external
+179 -25
.clang-tidy
··· 1 - --- 2 # SPDX-License-Identifier: CC0-1.0 3 - # SPDX-FileCopyrightText: 2018-2023, Collabora, Ltd. and the Monado contributors 4 - # Ideally we'd turn back on some of these that are disabled. 5 - # Things on the same line are synonyms 6 Checks: | 7 - clang-diagnostic-*, 8 - clang-analyzer-*, 9 - hicpp-signed-bitwise, 10 - performance-*, 11 bugprone-*, 12 cert-*, 13 readability-*, 14 - misc-*, 15 - -modernize-*, 16 -bugprone-macro-parentheses, 17 - -bugprone-reserved-identifier,-cert-dcl37-c,-cert-dcl51-cpp, 18 - -cert-dcl21-cpp, 19 -clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling, 20 -clang-analyzer-security.insecureAPI.strcpy, 21 - -clang-diagnostic-missing-braces, 22 - -clang-diagnostic-missing-field-initializers, 23 - -clang-diagnostic-unused-function, 24 -misc-non-private-member-variables-in-classes, 25 - -misc-static-assert,-cert-dcl03-c, 26 -misc-unused-using-decls, 27 - -misc-unused-parameters, 28 -misc-use-anonymous-namespace, 29 -performance-no-int-to-ptr, 30 -readability-braces-around-statements, 31 -readability-function-cognitive-complexity, 32 -readability-identifier-length, 33 -readability-implicit-bool-conversion, 34 -readability-redundant-access-specifiers, 35 - -readability-uppercase-literal-suffix,-hicpp-uppercase-literal-suffix, 36 - # Notes: 37 - # misc-static-assert turns our assert(false) in failure/bad cases into static_asserts. We should revise them, but not like that. 38 - # cert-dcl21-cpp is an overkill "recommendation" to return a special type from iterator post-increment 39 - WarningsAsErrors: '' 40 - HeaderFilterRegex: 'src/xrt/.*' 41 - AnalyzeTemporaryDtors: false 42 FormatStyle: file 43 - ...
··· 1 # SPDX-License-Identifier: CC0-1.0 2 + # SPDX-FileCopyrightText: 2018-2025, Collabora, Ltd. and the Monado contributors 3 + 4 + # The first block contains the enabled checks, the second block contains the disabled checks, 5 + # and the third block contains the temporarily disabled checks 6 Checks: | 7 + android-*, 8 bugprone-*, 9 cert-*, 10 + clang-analyzer-*, 11 + clang-diagnostic-*, 12 + concurrency-*, 13 + cppcoreguidelines-*', 14 + hicpp-*, 15 + misc-*, 16 + modernize-*, 17 + performance-*, 18 + portability-*, 19 readability-*, 20 + 21 + -android-cloexec-dup, 22 + -android-cloexec-fopen, 23 + -android-cloexec-open, 24 + -bugprone-assignment-in-if-condition, 25 + -bugprone-bool-pointer-implicit-conversion, 26 + -bugprone-branch-clone, 27 + -bugprone-casting-through-void, 28 + -bugprone-crtp-constructor-accessibility, 29 + -bugprone-easily-swappable-parameters, 30 + -bugprone-exception-escape, 31 + -bugprone-implicit-widening-of-multiplication-result, 32 + -bugprone-inc-dec-in-conditions, 33 + -bugprone-incorrect-roundings, 34 + -bugprone-integer-division, 35 -bugprone-macro-parentheses, 36 + -bugprone-misplaced-widening-cast, 37 + -bugprone-multi-level-implicit-pointer-conversion, 38 + -bugprone-narrowing-conversions, 39 + -bugprone-reserved-identifier, 40 + -bugprone-signed-char-misuse, 41 + -bugprone-sizeof-expression, 42 + -bugprone-suspicious-include, 43 + -bugprone-suspicious-memory-comparison, 44 + -bugprone-suspicious-realloc-usage, 45 + -bugprone-suspicious-string-compare, 46 + -bugprone-switch-missing-default-case, 47 + -bugprone-undefined-memory-manipulation, 48 + -bugprone-unhandled-self-assignment, 49 + -cert-dcl03-c, 50 + -cert-dcl16-c, 51 + -cert-dcl37-c, 52 + -cert-dcl50-cpp, 53 + -cert-dcl51-cpp, 54 + -cert-err33-c, 55 + -cert-err34-c, 56 + -cert-err58-cpp, 57 + -cert-exp42-c, 58 + -cert-flp30-c, 59 + -cert-flp37-c, 60 + -cert-int09-c, 61 + -cert-msc30-c, 62 + -cert-msc32-c, 63 + -cert-msc50-cpp, 64 + -cert-msc51-cpp, 65 + -cert-oop54-cpp, 66 + -cert-str34-c, 67 + -clang-analyzer-core.CallAndMessage, 68 + -clang-analyzer-core.NonNullParamChecker, 69 + -clang-analyzer-core.NullDereference, 70 + -clang-analyzer-core.UndefinedBinaryOperatorResult, 71 + -clang-analyzer-core.uninitialized.Assign, 72 + -clang-analyzer-core.uninitialized.Branch, 73 + -clang-analyzer-cplusplus.InnerPointer, 74 + -clang-analyzer-deadcode.DeadStores, 75 + -clang-analyzer-optin.core.EnumCastOutOfRange, 76 + -clang-analyzer-optin.cplusplus.UninitializedObject, 77 + -clang-analyzer-optin.performance.Padding, 78 + -clang-analyzer-optin.portability.UnixAPI, 79 + -clang-analyzer-security.FloatLoopCounter, 80 -clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling, 81 -clang-analyzer-security.insecureAPI.strcpy, 82 + -clang-analyzer-unix.Malloc, 83 + -clang-analyzer-unix.StdCLibraryFunctions, 84 + -clang-diagnostic-newline-eof, 85 + -concurrency-mt-unsafe, 86 + -hicpp-avoid-c-arrays, 87 + -hicpp-braces-around-statements, 88 + -hicpp-deprecated-headers, 89 + -hicpp-explicit-conversions, 90 + -hicpp-function-size, 91 + -hicpp-member-init, 92 + -hicpp-move-const-arg, 93 + -hicpp-multiway-paths-covered, 94 + -hicpp-named-parameter, 95 + -hicpp-no-array-decay, 96 + -hicpp-no-malloc, 97 + -hicpp-noexcept-move, 98 + -hicpp-signed-bitwise, 99 + -hicpp-special-member-functions, 100 + -hicpp-static-assert, 101 + -hicpp-uppercase-literal-suffix, 102 + -hicpp-use-auto, 103 + -hicpp-use-emplace, 104 + -hicpp-use-equals-default, 105 + -hicpp-use-nullptr, 106 + -hicpp-use-override, 107 + -hicpp-vararg, 108 + -misc-const-correctness, 109 + -misc-header-include-cycle, 110 + -misc-include-cleaner, 111 + -misc-misplaced-const, 112 + -misc-no-recursion, 113 -misc-non-private-member-variables-in-classes, 114 + -misc-redundant-expression, 115 + -misc-static-assert, 116 + -misc-unused-parameters, 117 -misc-unused-using-decls, 118 + -misc-unusedparameters, 119 -misc-use-anonymous-namespace, 120 + -misc-use-internal-linkage, 121 + -modernize-avoid-c-arrays, 122 + -modernize-concat-nested-namespaces, 123 + -modernize-deprecated-headers, 124 + -modernize-loop-convert, 125 + -modernize-macro-to-enum, 126 + -modernize-min-max-use-initializer-list, 127 + -modernize-pass-by-value, 128 + -modernize-raw-string-literal, 129 + -modernize-redundant-void-arg, 130 + -modernize-return-braced-init-list, 131 + -modernize-type-traits, 132 + -modernize-use-auto, 133 + -modernize-use-bool-literals, 134 + -modernize-use-constraints, 135 + -modernize-use-designated-initializers, 136 + -modernize-use-emplace, 137 + -modernize-use-equals-default, 138 + -modernize-use-nodiscard, 139 + -modernize-use-nullptr, 140 + -modernize-use-override, 141 + -modernize-use-ranges, 142 + -modernize-use-std-numbers, 143 + -modernize-use-trailing-return-type, 144 + -modernize-use-transparent-functors, 145 + -modernize-use-using, 146 + -performance-avoid-endl, 147 + -performance-enum-size, 148 + -performance-inefficient-string-concatenation, 149 + -performance-inefficient-vector-operation, 150 + -performance-move-const-arg, 151 -performance-no-int-to-ptr, 152 + -performance-noexcept-move-constructor, 153 + -performance-type-promotion-in-math-fn, 154 + -performance-unnecessary-copy-initialization, 155 + -performance-unnecessary-value-param, 156 + -readability-avoid-const-params-in-decls, 157 + -readability-avoid-nested-conditional-operator, 158 + -readability-avoid-return-with-void-value, 159 + -readability-avoid-unconditional-preprocessor-if, 160 -readability-braces-around-statements, 161 + -readability-const-return-type, 162 + -readability-container-contains, 163 + -readability-container-data-pointer, 164 + -readability-container-size-empty, 165 + -readability-convert-member-functions-to-static, 166 + -readability-duplicate-include, 167 + -readability-else-after-return, 168 + -readability-enum-initial-value, 169 -readability-function-cognitive-complexity, 170 + -readability-function-size, 171 -readability-identifier-length, 172 -readability-implicit-bool-conversion, 173 + -readability-inconsistent-declaration-parameter-name, 174 + -readability-isolate-declaration, 175 + -readability-magic-numbers, 176 + -readability-make-member-function-const, 177 + -readability-math-missing-parentheses, 178 + -readability-named-parameter, 179 + -readability-non-const-parameter, 180 + -readability-qualified-auto, 181 -readability-redundant-access-specifiers, 182 + -readability-redundant-casting, 183 + -readability-redundant-control-flow, 184 + -readability-redundant-declaration, 185 + -readability-redundant-inline-specifier, 186 + -readability-redundant-member-init, 187 + -readability-simplify-boolean-expr, 188 + -readability-static-accessed-through-instance, 189 + -readability-static-definition-in-anonymous-namespace, 190 + -readability-suspicious-call-argument, 191 + -readability-uppercase-literal-suffix, 192 + -readability-use-anyofallof, 193 + -readability-use-std-min-max, 194 + 195 + WarningsAsErrors: '*' 196 + HeaderFilterRegex: '' 197 FormatStyle: file
+10
src/external/.clang-tidy
···
··· 1 + # SPDX-License-Identifier: CC0-1.0 2 + # SPDX-FileCopyrightText: 2025, Collabora, Ltd. and the Monado contributors 3 + 4 + # Disable all checks in this folder. 5 + # misc-definitions-in-headers is a dummy check to avoid the `Error: no checks enabled.` error from 6 + # clang-tidy prior to version 18 without the `--allow-empty-check` option 7 + # See https://stackoverflow.com/a/58379342/22230066 8 + Checks: '-*,misc-definitions-in-headers' 9 + CheckOptions: 10 + - { key: HeaderFileExtensions, value: "x" }