xref: /aosp_15_r20/build/make/tools/warn/tidy_warn_patterns.py (revision 9e94795a3d4ef5c1d47486f9a02bb378756cea8a)
1*9e94795aSAndroid Build Coastguard Worker# python3
2*9e94795aSAndroid Build Coastguard Worker# Copyright (C) 2019 The Android Open Source Project
3*9e94795aSAndroid Build Coastguard Worker#
4*9e94795aSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License");
5*9e94795aSAndroid Build Coastguard Worker# you may not use this file except in compliance with the License.
6*9e94795aSAndroid Build Coastguard Worker# You may obtain a copy of the License at
7*9e94795aSAndroid Build Coastguard Worker#
8*9e94795aSAndroid Build Coastguard Worker#      http://www.apache.org/licenses/LICENSE-2.0
9*9e94795aSAndroid Build Coastguard Worker#
10*9e94795aSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software
11*9e94795aSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS,
12*9e94795aSAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*9e94795aSAndroid Build Coastguard Worker# See the License for the specific language governing permissions and
14*9e94795aSAndroid Build Coastguard Worker# limitations under the License.
15*9e94795aSAndroid Build Coastguard Worker
16*9e94795aSAndroid Build Coastguard Worker"""Warning patterns for clang-tidy."""
17*9e94795aSAndroid Build Coastguard Worker
18*9e94795aSAndroid Build Coastguard Worker# No need of doc strings for trivial small functions.
19*9e94795aSAndroid Build Coastguard Worker# pylint:disable=missing-function-docstring
20*9e94795aSAndroid Build Coastguard Worker
21*9e94795aSAndroid Build Coastguard Worker# pylint:disable=relative-beyond-top-level
22*9e94795aSAndroid Build Coastguard Workerfrom .cpp_warn_patterns import compile_patterns
23*9e94795aSAndroid Build Coastguard Workerfrom .severity import Severity
24*9e94795aSAndroid Build Coastguard Worker
25*9e94795aSAndroid Build Coastguard Worker
26*9e94795aSAndroid Build Coastguard Workerdef tidy_warn(description, patterns):
27*9e94795aSAndroid Build Coastguard Worker  return {
28*9e94795aSAndroid Build Coastguard Worker      'category': 'C/C++',
29*9e94795aSAndroid Build Coastguard Worker      'severity': Severity.TIDY,
30*9e94795aSAndroid Build Coastguard Worker      'description': 'clang-tidy ' + description,
31*9e94795aSAndroid Build Coastguard Worker      'patterns': patterns,
32*9e94795aSAndroid Build Coastguard Worker  }
33*9e94795aSAndroid Build Coastguard Worker
34*9e94795aSAndroid Build Coastguard Worker
35*9e94795aSAndroid Build Coastguard Workerdef tidy_warn_pattern(description, pattern):
36*9e94795aSAndroid Build Coastguard Worker  return tidy_warn(description, [r'.*: .+\[' + pattern + r'\]$'])
37*9e94795aSAndroid Build Coastguard Worker
38*9e94795aSAndroid Build Coastguard Worker
39*9e94795aSAndroid Build Coastguard Workerdef simple_tidy_warn_pattern(description):
40*9e94795aSAndroid Build Coastguard Worker  return tidy_warn_pattern(description, description)
41*9e94795aSAndroid Build Coastguard Worker
42*9e94795aSAndroid Build Coastguard Worker
43*9e94795aSAndroid Build Coastguard Workerdef group_tidy_warn_pattern(description):
44*9e94795aSAndroid Build Coastguard Worker  return tidy_warn_pattern(description, description + r'-.+')
45*9e94795aSAndroid Build Coastguard Worker
46*9e94795aSAndroid Build Coastguard Worker
47*9e94795aSAndroid Build Coastguard Workerdef analyzer_high(description, patterns):
48*9e94795aSAndroid Build Coastguard Worker  return {
49*9e94795aSAndroid Build Coastguard Worker      'category': 'C/C++',
50*9e94795aSAndroid Build Coastguard Worker      'severity': Severity.HIGH,
51*9e94795aSAndroid Build Coastguard Worker      'description': description,
52*9e94795aSAndroid Build Coastguard Worker      'patterns': patterns
53*9e94795aSAndroid Build Coastguard Worker  }
54*9e94795aSAndroid Build Coastguard Worker
55*9e94795aSAndroid Build Coastguard Worker
56*9e94795aSAndroid Build Coastguard Workerdef analyzer_high_check(check):
57*9e94795aSAndroid Build Coastguard Worker  return analyzer_high(check, [r'.*: .+\[' + check + r'\]$'])
58*9e94795aSAndroid Build Coastguard Worker
59*9e94795aSAndroid Build Coastguard Worker
60*9e94795aSAndroid Build Coastguard Workerdef analyzer_group_high(check):
61*9e94795aSAndroid Build Coastguard Worker  return analyzer_high(check, [r'.*: .+\[' + check + r'.+\]$'])
62*9e94795aSAndroid Build Coastguard Worker
63*9e94795aSAndroid Build Coastguard Worker
64*9e94795aSAndroid Build Coastguard Workerdef analyzer_warn(description, patterns):
65*9e94795aSAndroid Build Coastguard Worker  return {
66*9e94795aSAndroid Build Coastguard Worker      'category': 'C/C++',
67*9e94795aSAndroid Build Coastguard Worker      'severity': Severity.ANALYZER,
68*9e94795aSAndroid Build Coastguard Worker      'description': description,
69*9e94795aSAndroid Build Coastguard Worker      'patterns': patterns
70*9e94795aSAndroid Build Coastguard Worker  }
71*9e94795aSAndroid Build Coastguard Worker
72*9e94795aSAndroid Build Coastguard Worker
73*9e94795aSAndroid Build Coastguard Workerdef analyzer_warn_check(check):
74*9e94795aSAndroid Build Coastguard Worker  return analyzer_warn(check, [r'.*: .+\[' + check + r'\]$'])
75*9e94795aSAndroid Build Coastguard Worker
76*9e94795aSAndroid Build Coastguard Worker
77*9e94795aSAndroid Build Coastguard Workerdef analyzer_group_check(check):
78*9e94795aSAndroid Build Coastguard Worker  return analyzer_warn(check, [r'.*: .+\[' + check + r'.+\]$'])
79*9e94795aSAndroid Build Coastguard Worker
80*9e94795aSAndroid Build Coastguard Worker
81*9e94795aSAndroid Build Coastguard Workerwarn_patterns = [
82*9e94795aSAndroid Build Coastguard Worker    # pylint does not recognize g-inconsistent-quotes
83*9e94795aSAndroid Build Coastguard Worker    # pylint:disable=line-too-long,bad-option-value,g-inconsistent-quotes
84*9e94795aSAndroid Build Coastguard Worker    group_tidy_warn_pattern('altera'),
85*9e94795aSAndroid Build Coastguard Worker    group_tidy_warn_pattern('android'),
86*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('abseil-string-find-startswith'),
87*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('bugprone-argument-comment'),
88*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('bugprone-branch-clone'),
89*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('bugprone-copy-constructor-init'),
90*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('bugprone-fold-init-type'),
91*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('bugprone-forward-declaration-namespace'),
92*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('bugprone-forwarding-reference-overload'),
93*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('bugprone-inaccurate-erase'),
94*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('bugprone-incorrect-roundings'),
95*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('bugprone-integer-division'),
96*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('bugprone-lambda-function-name'),
97*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('bugprone-macro-parentheses'),
98*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('bugprone-misplaced-widening-cast'),
99*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('bugprone-move-forwarding-reference'),
100*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('bugprone-parent-virtual-call'),
101*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('bugprone-posix-return'),
102*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('bugprone-sizeof-container'),
103*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('bugprone-sizeof-expression'),
104*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('bugprone-string-constructor'),
105*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('bugprone-string-integer-assignment'),
106*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('bugprone-suspicious-enum-usage'),
107*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('bugprone-suspicious-missing-comma'),
108*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('bugprone-suspicious-string-compare'),
109*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('bugprone-suspicious-semicolon'),
110*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('bugprone-terminating-continue'),
111*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('bugprone-too-small-loop-variable'),
112*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('bugprone-undefined-memory-manipulation'),
113*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('bugprone-unhandled-self-assignment'),
114*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('bugprone-unused-raii'),
115*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('bugprone-unused-return-value'),
116*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('bugprone-use-after-move'),
117*9e94795aSAndroid Build Coastguard Worker    group_tidy_warn_pattern('bugprone'),
118*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('cert-dcl16-c'),
119*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('cert-dcl21-cpp'),
120*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('cert-dcl50-cpp'),
121*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('cert-dcl54-cpp'),
122*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('cert-dcl59-cpp'),
123*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('cert-env33-c'),
124*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('cert-err34-c'),
125*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('cert-err52-cpp'),
126*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('cert-msc30-c'),
127*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('cert-msc50-cpp'),
128*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('cert-oop54-cpp'),
129*9e94795aSAndroid Build Coastguard Worker    group_tidy_warn_pattern('cert'),
130*9e94795aSAndroid Build Coastguard Worker    group_tidy_warn_pattern('clang-diagnostic'),
131*9e94795aSAndroid Build Coastguard Worker    group_tidy_warn_pattern('concurrency'),
132*9e94795aSAndroid Build Coastguard Worker    group_tidy_warn_pattern('cppcoreguidelines'),
133*9e94795aSAndroid Build Coastguard Worker    group_tidy_warn_pattern('fuchsia'),
134*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('google-default-arguments'),
135*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('google-runtime-int'),
136*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('google-runtime-operator'),
137*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('google-runtime-references'),
138*9e94795aSAndroid Build Coastguard Worker    group_tidy_warn_pattern('google-build'),
139*9e94795aSAndroid Build Coastguard Worker    group_tidy_warn_pattern('google-explicit'),
140*9e94795aSAndroid Build Coastguard Worker    group_tidy_warn_pattern('google-redability'),
141*9e94795aSAndroid Build Coastguard Worker    group_tidy_warn_pattern('google-global'),
142*9e94795aSAndroid Build Coastguard Worker    group_tidy_warn_pattern('google-redability'),
143*9e94795aSAndroid Build Coastguard Worker    group_tidy_warn_pattern('google-redability'),
144*9e94795aSAndroid Build Coastguard Worker    group_tidy_warn_pattern('google'),
145*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('hicpp-explicit-conversions'),
146*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('hicpp-function-size'),
147*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('hicpp-invalid-access-moved'),
148*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('hicpp-member-init'),
149*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('hicpp-delete-operators'),
150*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('hicpp-special-member-functions'),
151*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('hicpp-use-equals-default'),
152*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('hicpp-use-equals-delete'),
153*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('hicpp-no-assembler'),
154*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('hicpp-noexcept-move'),
155*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('hicpp-use-override'),
156*9e94795aSAndroid Build Coastguard Worker    group_tidy_warn_pattern('hicpp'),
157*9e94795aSAndroid Build Coastguard Worker    group_tidy_warn_pattern('llvm'),
158*9e94795aSAndroid Build Coastguard Worker    group_tidy_warn_pattern('llvmlibc'),
159*9e94795aSAndroid Build Coastguard Worker    group_tidy_warn_pattern('misc'),
160*9e94795aSAndroid Build Coastguard Worker    group_tidy_warn_pattern('modernize'),
161*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('performance-faster-string-find'),
162*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('performance-for-range-copy'),
163*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('performance-implicit-cast-in-loop'),
164*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('performance-inefficient-string-concatenation'),
165*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('performance-type-promotion-in-math-fn'),
166*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('performance-unnecessary-copy-initialization'),
167*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('performance-unnecessary-value-param'),
168*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('portability-simd-intrinsics'),
169*9e94795aSAndroid Build Coastguard Worker    group_tidy_warn_pattern('performance'),
170*9e94795aSAndroid Build Coastguard Worker    group_tidy_warn_pattern('readability'),
171*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('abseil-string-find-startwith'),
172*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('abseil-faster-strsplit-delimiter'),
173*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('abseil-no-namespace'),
174*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('abseil-no-internal-dependencies'),
175*9e94795aSAndroid Build Coastguard Worker    group_tidy_warn_pattern('abseil'),
176*9e94795aSAndroid Build Coastguard Worker    simple_tidy_warn_pattern('portability-simd-intrinsics'),
177*9e94795aSAndroid Build Coastguard Worker    group_tidy_warn_pattern('portability'),
178*9e94795aSAndroid Build Coastguard Worker
179*9e94795aSAndroid Build Coastguard Worker    tidy_warn('TIMEOUT', [r".*: warning: clang-tidy aborted "]),
180*9e94795aSAndroid Build Coastguard Worker    tidy_warn('Long Runs', [r".*: warning: clang-tidy used "]),
181*9e94795aSAndroid Build Coastguard Worker
182*9e94795aSAndroid Build Coastguard Worker    # warnings from clang-tidy's clang-analyzer checks
183*9e94795aSAndroid Build Coastguard Worker    analyzer_high('clang-analyzer-core, null pointer',
184*9e94795aSAndroid Build Coastguard Worker                  [r".*: warning: .+ pointer is null .*\[clang-analyzer-core"]),
185*9e94795aSAndroid Build Coastguard Worker    analyzer_high('clang-analyzer-core, uninitialized value',
186*9e94795aSAndroid Build Coastguard Worker                  [r".*: warning: .+ uninitialized (value|data) .*\[clang-analyzer-core"]),
187*9e94795aSAndroid Build Coastguard Worker    analyzer_warn('clang-analyzer-optin.performance.Padding',
188*9e94795aSAndroid Build Coastguard Worker                  [r".*: warning: Excessive padding in '.*'"]),
189*9e94795aSAndroid Build Coastguard Worker    # analyzer_warn('clang-analyzer Unreachable code',
190*9e94795aSAndroid Build Coastguard Worker    #               [r".*: warning: This statement is never executed.*UnreachableCode"]),
191*9e94795aSAndroid Build Coastguard Worker    analyzer_warn('clang-analyzer Size of malloc may overflow',
192*9e94795aSAndroid Build Coastguard Worker                  [r".*: warning: .* size of .* may overflow .*MallocOverflow"]),
193*9e94795aSAndroid Build Coastguard Worker    analyzer_warn('clang-analyzer sozeof() on a pointer type',
194*9e94795aSAndroid Build Coastguard Worker                  [r".*: warning: .*calls sizeof.* on a pointer type.*SizeofPtr"]),
195*9e94795aSAndroid Build Coastguard Worker    analyzer_warn('clang-analyzer Pointer arithmetic on non-array variables',
196*9e94795aSAndroid Build Coastguard Worker                  [r".*: warning: Pointer arithmetic on non-array variables .*PointerArithm"]),
197*9e94795aSAndroid Build Coastguard Worker    analyzer_warn('clang-analyzer Subtraction of pointers of different memory chunks',
198*9e94795aSAndroid Build Coastguard Worker                  [r".*: warning: Subtraction of two pointers .*PointerSub"]),
199*9e94795aSAndroid Build Coastguard Worker    analyzer_warn('clang-analyzer Access out-of-bound array element',
200*9e94795aSAndroid Build Coastguard Worker                  [r".*: warning: Access out-of-bound array element .*ArrayBound"]),
201*9e94795aSAndroid Build Coastguard Worker    analyzer_warn('clang-analyzer Out of bound memory access',
202*9e94795aSAndroid Build Coastguard Worker                  [r".*: warning: Out of bound memory access .*ArrayBoundV2"]),
203*9e94795aSAndroid Build Coastguard Worker    analyzer_warn('clang-analyzer Possible lock order reversal',
204*9e94795aSAndroid Build Coastguard Worker                  [r".*: warning: .* Possible lock order reversal.*PthreadLock"]),
205*9e94795aSAndroid Build Coastguard Worker    analyzer_warn('clang-analyzer call path problems',
206*9e94795aSAndroid Build Coastguard Worker                  [r".*: warning: Call Path : .+"]),
207*9e94795aSAndroid Build Coastguard Worker    analyzer_warn_check('clang-analyzer-core.CallAndMessage'),
208*9e94795aSAndroid Build Coastguard Worker    analyzer_high_check('clang-analyzer-core.NonNullParamChecker'),
209*9e94795aSAndroid Build Coastguard Worker    analyzer_high_check('clang-analyzer-core.NullDereference'),
210*9e94795aSAndroid Build Coastguard Worker    analyzer_warn_check('clang-analyzer-core.UndefinedBinaryOperatorResult'),
211*9e94795aSAndroid Build Coastguard Worker    analyzer_warn_check('clang-analyzer-core.DivideZero'),
212*9e94795aSAndroid Build Coastguard Worker    analyzer_warn_check('clang-analyzer-core.VLASize'),
213*9e94795aSAndroid Build Coastguard Worker    analyzer_warn_check('clang-analyzer-core.uninitialized.ArraySubscript'),
214*9e94795aSAndroid Build Coastguard Worker    analyzer_warn_check('clang-analyzer-core.uninitialized.Assign'),
215*9e94795aSAndroid Build Coastguard Worker    analyzer_warn_check('clang-analyzer-core.uninitialized.UndefReturn'),
216*9e94795aSAndroid Build Coastguard Worker    analyzer_warn_check('clang-analyzer-cplusplus.Move'),
217*9e94795aSAndroid Build Coastguard Worker    analyzer_warn_check('clang-analyzer-deadcode.DeadStores'),
218*9e94795aSAndroid Build Coastguard Worker    analyzer_warn_check('clang-analyzer-optin.cplusplus.UninitializedObject'),
219*9e94795aSAndroid Build Coastguard Worker    analyzer_warn_check('clang-analyzer-optin.cplusplus.VirtualCall'),
220*9e94795aSAndroid Build Coastguard Worker    analyzer_warn_check('clang-analyzer-portability.UnixAPI'),
221*9e94795aSAndroid Build Coastguard Worker    analyzer_warn_check('clang-analyzer-unix.cstring.NullArg'),
222*9e94795aSAndroid Build Coastguard Worker    analyzer_high_check('clang-analyzer-unix.MallocSizeof'),
223*9e94795aSAndroid Build Coastguard Worker    analyzer_warn_check('clang-analyzer-valist.Uninitialized'),
224*9e94795aSAndroid Build Coastguard Worker    analyzer_warn_check('clang-analyzer-valist.Unterminated'),
225*9e94795aSAndroid Build Coastguard Worker    analyzer_group_check('clang-analyzer-core.uninitialized'),
226*9e94795aSAndroid Build Coastguard Worker    analyzer_group_check('clang-analyzer-deadcode'),
227*9e94795aSAndroid Build Coastguard Worker    analyzer_warn_check('clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling'),
228*9e94795aSAndroid Build Coastguard Worker    analyzer_warn_check('clang-analyzer-security.insecureAPI.bcmp'),
229*9e94795aSAndroid Build Coastguard Worker    analyzer_warn_check('clang-analyzer-security.insecureAPI.bcopy'),
230*9e94795aSAndroid Build Coastguard Worker    analyzer_warn_check('clang-analyzer-security.insecureAPI.bzero'),
231*9e94795aSAndroid Build Coastguard Worker    analyzer_warn_check('clang-analyzer-security.insecureAPI.strcpy'),
232*9e94795aSAndroid Build Coastguard Worker    analyzer_group_high('clang-analyzer-security.insecureAPI'),
233*9e94795aSAndroid Build Coastguard Worker    analyzer_group_high('clang-analyzer-security'),
234*9e94795aSAndroid Build Coastguard Worker    analyzer_high_check('clang-analyzer-unix.Malloc'),
235*9e94795aSAndroid Build Coastguard Worker    analyzer_high_check('clang-analyzer-cplusplus.NewDeleteLeaks'),
236*9e94795aSAndroid Build Coastguard Worker    analyzer_high_check('clang-analyzer-cplusplus.NewDelete'),
237*9e94795aSAndroid Build Coastguard Worker    analyzer_group_check('clang-analyzer-unix'),
238*9e94795aSAndroid Build Coastguard Worker    analyzer_group_check('clang-analyzer'),  # catch all
239*9e94795aSAndroid Build Coastguard Worker]
240*9e94795aSAndroid Build Coastguard Worker
241*9e94795aSAndroid Build Coastguard Worker
242*9e94795aSAndroid Build Coastguard Workercompile_patterns(warn_patterns)
243