10
10
# Checks list: https://clang.llvm.org/extra/clang-tidy/checks/list.html
11
11
SUPPRESSED_CHECKS = {
12
# These are also disabled in the project .clang-tidy config file
12
14
# TODO(Nordfriese): Investigate which android-* and fuchsia-* checks we want to enable
13
15
# (currently they're all excluded in the clang-tidy invokation)
15
17
# Checks we strictly need and cannot clean up for the time being
16
'[llvm-header-guard]', # We have our own header style with a codecheck rule on it
17
'[cert-dcl50-cpp]', # We need this for our logger
18
'[cppcoreguidelines-pro-type-vararg]', # We need this for our logger
18
'llvm-header-guard', # We have our own header style with a codecheck rule on it
19
'cert-dcl50-cpp', # We need this for our logger
20
'cppcoreguidelines-pro-type-vararg', # We need this for our logger
21
23
# Checks that probably do not make sense for us
22
24
# (up for discussion; see https://github.com/widelands/widelands/discussions/5262)
23
'[llvmlibc-callee-namespace]',
24
'[modernize-use-trailing-return-type]',
25
'[cppcoreguidelines-avoid-c-arrays]',
26
'[hicpp-avoid-c-arrays]',
27
'[modernize-avoid-c-arrays]',
28
'[cppcoreguidelines-avoid-goto]',
30
'[cppcoreguidelines-no-malloc]',
32
'[cppcoreguidelines-non-private-member-variables-in-classes]',
33
'[misc-non-private-member-variables-in-classes]',
34
'[cppcoreguidelines-owning-memory]',
35
'[cppcoreguidelines-pro-bounds-array-to-pointer-decay]',
36
'[hicpp-no-array-decay]',
37
'[cppcoreguidelines-pro-bounds-constant-array-index]',
38
'[cppcoreguidelines-pro-bounds-pointer-arithmetic]',
39
'[cppcoreguidelines-pro-type-const-cast]',
40
'[cppcoreguidelines-pro-type-reinterpret-cast]',
41
'[cppcoreguidelines-pro-type-union-access]',
42
'[google-default-arguments]',
43
'[hicpp-uppercase-literal-suffix]',
44
'[readability-uppercase-literal-suffix]',
46
'[modernize-use-auto]',
47
'[modernize-raw-string-literal]',
48
'[modernize-return-braced-init-list]',
49
'[altera-id-dependent-backward-branch]',
50
'[altera-unroll-loops]',
51
'[llvmlibc-implementation-in-namespace]',
52
'[llvmlibc-restrict-system-libc-headers]',
53
'[misc-no-recursion]',
54
'[modernize-replace-disallow-copy-and-assign-macro]',
55
'[readability-identifier-length]',
25
'llvmlibc-callee-namespace',
26
'modernize-use-trailing-return-type',
27
'cppcoreguidelines-avoid-c-arrays',
28
'hicpp-avoid-c-arrays',
29
'modernize-avoid-c-arrays',
30
'cppcoreguidelines-avoid-goto',
32
'cppcoreguidelines-no-malloc',
34
'cppcoreguidelines-non-private-member-variables-in-classes',
35
'misc-non-private-member-variables-in-classes',
36
'cppcoreguidelines-owning-memory',
37
'cppcoreguidelines-pro-bounds-array-to-pointer-decay',
38
'hicpp-no-array-decay',
39
'cppcoreguidelines-pro-bounds-constant-array-index',
40
'cppcoreguidelines-pro-bounds-pointer-arithmetic',
41
'cppcoreguidelines-pro-type-const-cast',
42
'cppcoreguidelines-pro-type-reinterpret-cast',
43
'cppcoreguidelines-pro-type-union-access',
44
'google-default-arguments',
45
'hicpp-uppercase-literal-suffix',
46
'readability-uppercase-literal-suffix',
49
'modernize-raw-string-literal',
50
'modernize-return-braced-init-list',
51
'altera-id-dependent-backward-branch',
52
'altera-unroll-loops',
53
'llvmlibc-implementation-in-namespace',
54
'llvmlibc-restrict-system-libc-headers',
56
'modernize-replace-disallow-copy-and-assign-macro',
57
'readability-identifier-length',
58
'boost-use-to-string',
57
60
# Checks we probably want to clean up sometime (discussible; see link above)
58
'[boost-use-to-string]',
59
'[bugprone-exception-escape]',
60
'[bugprone-macro-parentheses]',
61
'[bugprone-narrowing-conversions]',
62
'[bugprone-not-null-terminated-result]',
63
'[bugprone-signed-char-misuse]',
64
'[bugprone-too-small-loop-variable]',
68
'[clang-analyzer-core.CallAndMessage]',
69
'[clang-analyzer-core.NonNullParamChecker]',
70
'[clang-analyzer-core.UndefinedBinaryOperatorResult]',
71
'[clang-analyzer-cplusplus.NewDelete]',
72
'[clang-analyzer-cplusplus.NewDeleteLeaks]',
73
'[clang-analyzer-optin.cplusplus.UninitializedObject]',
74
'[clang-analyzer-optin.cplusplus.VirtualCall]',
75
'[clang-diagnostic-documentation-unknown-command]',
76
'[cppcoreguidelines-avoid-magic-numbers]',
77
'[cppcoreguidelines-init-variables]',
78
'[cppcoreguidelines-macro-usage]',
79
'[cppcoreguidelines-narrowing-conversions]',
80
'[cppcoreguidelines-pro-type-member-init]',
81
'[cppcoreguidelines-slicing]',
82
'[cppcoreguidelines-special-member-functions]',
83
'[google-readability-function-size]',
84
'[google-runtime-references]',
85
'[hicpp-function-size]',
86
'[hicpp-member-init]',
87
'[hicpp-multiway-paths-covered]',
88
'[hicpp-signed-bitwise]',
89
'[hicpp-special-member-functions]',
90
'[misc-macro-parentheses]',
91
'[modernize-make-unique]',
92
'[modernize-pass-by-value]',
93
'[performance-unnecessary-value-param]',
94
'[readability-const-return-type]',
95
'[readability-convert-member-functions-to-static]',
96
'[readability-function-size]',
97
'[readability-magic-numbers]',
98
'[altera-struct-pack-align]',
99
'[bugprone-easily-swappable-parameters]',
101
'[concurrency-mt-unsafe]',
102
'[cppcoreguidelines-avoid-non-const-global-variables]',
103
'[cppcoreguidelines-prefer-member-initializer]',
104
'[google-readability-casting]',
105
'[hicpp-named-parameter]',
106
'[readability-named-parameter]',
107
'[modernize-use-default-member-init]',
108
'[readability-function-cognitive-complexity]',
109
'[readability-suspicious-call-argument]',
110
'[performance-no-int-to-ptr]',
61
'bugprone-exception-escape',
62
'bugprone-macro-parentheses',
63
'bugprone-narrowing-conversions',
64
'bugprone-not-null-terminated-result',
65
'bugprone-signed-char-misuse',
66
'bugprone-too-small-loop-variable',
70
'clang-analyzer-core.CallAndMessage',
71
'clang-analyzer-core.NonNullParamChecker',
72
'clang-analyzer-cplusplus.NewDelete',
73
'clang-analyzer-cplusplus.NewDeleteLeaks',
74
'clang-analyzer-optin.cplusplus.UninitializedObject',
75
'clang-analyzer-optin.cplusplus.VirtualCall',
76
'clang-diagnostic-documentation-unknown-command',
77
'cppcoreguidelines-avoid-magic-numbers',
78
'cppcoreguidelines-init-variables',
79
'cppcoreguidelines-macro-usage',
80
'cppcoreguidelines-narrowing-conversions',
81
'cppcoreguidelines-pro-type-member-init',
82
'cppcoreguidelines-slicing',
83
'cppcoreguidelines-special-member-functions',
84
'google-readability-function-size',
85
'google-runtime-references',
86
'hicpp-function-size',
88
'hicpp-multiway-paths-covered',
89
'hicpp-signed-bitwise',
90
'hicpp-special-member-functions',
91
'misc-macro-parentheses',
92
'modernize-make-unique',
93
'modernize-pass-by-value',
94
'performance-unnecessary-value-param',
95
'readability-const-return-type',
96
'readability-convert-member-functions-to-static',
97
'readability-function-size',
98
'readability-magic-numbers',
99
'altera-struct-pack-align',
100
'bugprone-easily-swappable-parameters',
102
'concurrency-mt-unsafe',
103
'cppcoreguidelines-avoid-non-const-global-variables',
104
'cppcoreguidelines-prefer-member-initializer',
105
'google-readability-casting',
106
'hicpp-named-parameter',
107
'readability-named-parameter',
108
'modernize-use-default-member-init',
109
'readability-function-cognitive-complexity',
110
'readability-suspicious-call-argument',
111
'performance-no-int-to-ptr',
113
CHECK_REGEX = re.compile(r'.*\[([A-Za-z0-9.-]+)\]$')
114
CHECK_REGEX = re.compile(r'.*\[([A-Za-z0-9.,-]+)\]$')