-
Notifications
You must be signed in to change notification settings - Fork 667
/
.clang-tidy
63 lines (61 loc) · 2.65 KB
/
.clang-tidy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# `maybe-*` checks are only available on OneFlow custom clang-tidy and clangd
# `-allow-enabling-analyzer-alpha-checkers` should be passed to clang-tidy for CSA checkers named `clang-analyzer-alpha.*` (or `-allow-enabling-alpha-checkers` for run-clang-tidy.py)
# `aggressive-binary-operation-simplification` should be enabled (via `-Xclang -analyzer-config -Xclang aggressive-binary-operation-simplification=true` in clang)
# there is some problem in `clang-analyzer-alpha.clone.*`, so do not enable it
# `clang-analyzer-alpha.deadcode.*` is just too verbose to enable
Checks: >-
-*,
clang-diagnostic-*,
maybe-*,
clang-analyzer-core.*,
clang-analyzer-cplusplus.*,
clang-analyzer-nullability.*,
clang-analyzer-deadcode.*,
clang-analyzer-security.*,
clang-analyzer-optin.cplusplus.*,
clang-analyzer-optin.performance.*,
clang-analyzer-alpha.core.*,
clang-analyzer-alpha.cplusplus.*,
clang-analyzer-alpha.security.*,
cppcoreguidelines-avoid-goto,
cppcoreguidelines-init-variables,
cppcoreguidelines-interfaces-global-init,
cppcoreguidelines-no-malloc,
cppcoreguidelines-prefer-member-initializer,
cppcoreguidelines-pro-type-member-init,
cppcoreguidelines-pro-type-static-cast-downcast,
cppcoreguidelines-slicing,
cppcoreguidelines-special-member-functions,
performance-unnecessary-value-param,
performance-unnecessary-copy-initialization,
performance-noexcept-move-constructor,
performance-no-automatic-move,
performance-move-const-arg,
performance-implicit-conversion-in-loop,
performance-for-range-copy,
google-default-arguments,
google-global-names-in-headers,
google-explicit-constructor,
modernize-use-emplace
# TODO: treat all maybe warnings as errors when existing warnings are all fixed
# `clang-analyzer-cplusplus.NewDelete` cannot model reference counting properly for ObjectMsg
WarningsAsErrors: >-
maybe-unused,
clang-analyzer-nullability.*,
clang-analyzer-cplusplus.*,
performance-implicit-conversion-in-loop,
performance-move-const-arg,
performance-no-automatic-move,
performance-noexcept-move-constructor,
google-default-arguments,
google-global-names-in-headers,
-clang-analyzer-cplusplus.NewDelete,
modernize-use-emplace
CheckOptions:
# `cppcoreguidelines-special-member-functions` is enabled, refer to https://en.cppreference.com/w/cpp/language/rule_of_three
- key: cppcoreguidelines-special-member-functions.AllowSoleDefaultDtor
value: True
- key: performance-move-const-arg.CheckTriviallyCopyableMove
value: False
- key: cppcoreguidelines-special-member-functions.AllowMissingMoveFunctionsWhenCopyIsDeleted
value: True