Home | History | Annotate | Download | only in tools

Lines Matching full:warning

4 """Grep warnings messages and output HTML tables or warning counts in CSV.
6 Default is to output warnings in HTML tables grouped by warning severity.
8 Use option --gencsv to output warning counts in CSV format.
13 # To parse and keep warning message in the input file:
17 # severity.column_headers for the warning count table
18 # severity.headers for warning message tables
20 # warn_patterns[w]['category'] tool that issued the warning, not used now
23 # warn_patterns[w]['option'] compiler flag to control the warning
31 # warning_messages array of each warning message, without source url
41 # To emit html page of warning messages:
68 # StatsHeader: warning count table header row
69 # StatsRows: array of warning count table rows
87 help='Save CSV warning file to the passed absolute path',
162 'description': 'clang-analyzer Security warning',
163 'patterns': [r".*: warning: .+\[clang-analyzer-security.*\]"]},
166 'patterns': [r".*: warning: overriding commands for target .+",
167 r".*: warning: ignoring old commands for target .+"]},
170 'patterns': [r".*: warning: LOCAL_CLANG is set to false"]},
173 'patterns': [r".*: warning: .+ \(.*app:sdk.*\) should not link to .+ \(native:platform\)"]},
176 'patterns': [r".*: warning: .+ \(.+\) should not link to .+ \(partition:.+\)"]},
179 'patterns': [r".*: warning: .+ \(.+\) should not link to .+ \(.+\)"]},
182 'patterns': [r".*: warning: implicit declaration of function .+",
183 r".*: warning: implicitly declaring library function"]},
186 'patterns': [r".*: warning: conflicting types for '.+'"]},
189 'patterns': [r".*: warning: comparison is always .+ due to limited range of data type",
190 r".*: warning: comparison of unsigned .*expression .+ is always true",
191 r".*: warning: comparison of unsigned .*expression .+ is always false"]},
194 'patterns': [r".*: warning: Potential leak of memory",
195 r".*: warning: Potential memory leak",
196 r".*: warning: Memory allocated by alloca\(\) should not be deallocated",
197 r".*: warning: Memory allocated by .+ should be deallocated by .+ not .+",
198 r".*: warning: 'delete' applied to a pointer that was allocated",
199 r".*: warning: Use of memory after it is freed",
200 r".*: warning: Argument to .+ is the address of .+ variable",
201 r".*: warning: Argument to free\(\) is offset by .+ of memory allocated by",
202 r".*: warning: Attempt to .+ released memory"]},
205 'patterns': [r".*: warning: .+Using such transient memory for the control value is .*dangerous."]},
208 'patterns': [r".*: warning: Address of stack memory .+ returned to caller",
209 r".*: warning: Address of stack memory .+ will be a dangling reference"]},
212 'patterns': [r".*: warning: This .+ is prohibited after a successful vfork",
213 r".*: warning: Call to function '.+' is insecure "]},
216 'patterns': [r".*: warning: all paths through this function will call itself"]},
219 'patterns': [r".*: warning: Size argument is greater than .+ the destination buffer",
220 r".*: warning: Potential buffer overflow.",
221 r".*: warning: String copy function overflows destination buffer"]},
224 'patterns': [r".*: warning: assignment from incompatible pointer type",
225 r".*: warning: return from incompatible pointer type",
226 r".*: warning: passing argument [0-9]+ of '.*' from incompatible pointer type",
227 r".*: warning: initialization from incompatible pointer type"]},
230 'patterns': [r".*: warning: incompatible implicit declaration of built-in function .+"]},
233 'patterns': [r".*: warning: incompatible redeclaration of library function .+"]},
236 'patterns': [r".*: warning: Null passed to a callee that requires a non-null"]},
239 'patterns': [r".*: warning: unused parameter '.*'"]},
242 'patterns': [r".*: warning: '.+' defined but not used",
243 r".*: warning: unused function '.+'",
244 r".*: warning: lambda capture .* is not used",
245 r".*: warning: private field '.+' is not used",
246 r".*: warning: unused variable '.+'"]},
249 'patterns': [r".*: warning: statement with no effect",
250 r".*: warning: expression result unused"]},
253 'patterns': [r".*: warning: ignoring return value of function .+Wunused-result"]},
256 'patterns': [r".*: warning: missing initializer"]},
259 'patterns': [r".*: warning: delete called .* has virtual functions but non-virtual destructor"]},
262 'patterns': [r".*: warning: \(near initialization for '.+'\)"]},
265 'patterns': [r".*: warning: expansion of date or time macro is not reproducible"]},
268 'patterns': [r".*: warning: format '.+' expects type '.+', but argument [0-9]+ has type '.+'",
269 r".*: warning: more '%' conversions than data arguments",
270 r".*: warning: data argument not used by format string",
271 r".*: warning: incomplete format specifier",
272 r".*: warning: unknown conversion type .* in format",
273 r".*: warning: format .+ expects .+ but argument .+Wformat=",
274 r".*: warning: field precision should have .+ but argument has .+Wformat",
275 r".*: warning: format specifies type .+ but the argument has .*type .+Wformat"]},
278 'patterns': [r".*: warning: too many arguments for format"]},
281 'patterns': [r".*: warning: too many arguments in call to "]},
284 'patterns': [r".*: warning: invalid .+ specifier '.+'.+format-invalid-specifier"]},
287 'patterns': [r".*: warning: comparison between signed and unsigned",
288 r".*: warning: comparison of promoted \~unsigned with unsigned",
289 r".*: warning: signed and unsigned type in conditional expression"]},
292 'patterns': [r".*: warning: enumeral and non-enumeral type in conditional expression"]},
295 'patterns': [r".*libpng warning: Ignoring attempt to set cHRM RGB triangle with zero area"]},
298 'patterns': [r".*: warning: No comment for public symbol .+"]},
301 'patterns': [r".*: warning: missing braces around initializer.*"]},
304 'patterns': [r".*: warning: no newline at end of file"]},
307 'patterns': [r".*: warning: missing whitespace after the macro name"]},
310 'patterns': [r".*: warning: cast from .* to .* increases required alignment .*"]},
313 'patterns': [r".*: warning: passing argument [0-9]+ of '.+' discards qualifiers from pointer target type",
314 r".*: warning: assignment discards qualifiers from pointer target type",
315 r".*: warning: passing .+ to parameter of type .+ discards qualifiers",
316 r".*: warning: assigning to .+ from .+ discards qualifiers",
317 r".*: warning: initializing .+ discards qualifiers .+types-discards-qualifiers",
318 r".*: warning: return discards qualifiers from pointer target type"]},
321 'patterns': [r".*: warning: unknown attribute '.+'"]},
324 'patterns': [r".*: warning: '_*packed_*' attribute ignored",
325 r".*: warning: attribute declaration must precede definition .+ignored-attributes"]},
328 'patterns': [r".*: warning: declaration of '.+' will not be visible outside of this function"]},
331 'patterns': [r".*: warning: '.+' declared with greater visibility than the type of its field '.+'"]},
334 'patterns': [r".*: warning: (left|right) shift count >= width of type"]},
337 'patterns': [r".*: warning: '.+' initialized and declared 'extern'",
338 r".*: warning: 'extern' variable has an initializer"]},
341 'patterns': [r".*: warning: 'static' is not at beginning of declaration"]},
344 'patterns': [r".*: warning: control reaches end of non-void function"]},
347 'patterns': [r".*: warning: type specifier missing, defaults to 'int'",
348 r".*: warning: type defaults to 'int' in declaration of '.+'"]},
351 'patterns': [r".*: warning: return type of 'main' is not 'int'"]},
354 'patterns': [r".*: warning: '.+' may be used uninitialized in this function"]},
357 'patterns': [r".*: warning: '.+' is used uninitialized in this function",
358 r".*: warning: variable '.+' is uninitialized when used here"]},
361 'patterns': [r".*: warning: .* uses variable-size enums yet the output is to use 32-bit enums; use of enum values across objects may fail"]},
364 'patterns': [r".*: warning: pointer targets in initialization differ in signedness",
365 r".*: warning: pointer targets in assignment differ in signedness",
366 r".*: warning: pointer targets in return differ in signedness",
367 r".*: warning: pointer targets in passing argument [0-9]+ of '.+' differ in signedness"]},
370 'patterns': [r".*: warning: assuming signed overflow does not occur when assuming that .* is always (true|false)"]},
373 'patterns': [r".*: warning: suggest braces around empty body in an 'if' statement",
374 r".*: warning: empty body in an if-statement",
375 r".*: warning: suggest braces around empty body in an 'else' statement",
376 r".*: warning: empty body in an else-statement"]},
379 'patterns': [r".*: warning: suggest explicit braces to avoid ambiguous 'else'",
380 r".*: warning: suggest parentheses around arithmetic in operand of '.+'",
381 r".*: warning: suggest parentheses around comparison in operand of '.+'",
382 r".*: warning: logical not is only applied to the left hand side of this comparison",
383 r".*: warning: using the result of an assignment as a condition without parentheses",
384 r".*: warning: .+ has lower precedence than .+ be evaluated first .+Wparentheses",
385 r".*: warning: suggest parentheses around '.+?' .+ '.+?'",
386 r".*: warning: suggest parentheses around assignment used as truth value"]},
389 'patterns': [r".*: warning: '.+' is static but used in inline function '.+' which is not static"]},
392 'patterns': [r".*: warning: data definition has no type or storage class"]},
395 'patterns': [r".*: warning: Dereference of null pointer",
396 r".*: warning: Called .+ pointer is null",
397 r".*: warning: Forming reference to null pointer",
398 r".*: warning: Returning null reference",
399 r".*: warning: Null pointer passed as an argument to a 'nonnull' parameter",
400 r".*: warning: .+ results in a null pointer dereference",
401 r".*: warning: Access to .+ results in a dereference of a null pointer",
402 r".*: warning: Null pointer argument in"]},
405 'patterns': [r".*: warning: parameter names \(without types\) in function declaration"]},
408 'patterns': [r".*: warning: dereferencing .* break strict-aliasing rules"]},
411 'patterns': [r".*: warning: cast from pointer to integer of different size",
412 r".*: warning: initialization makes pointer from integer without a cast"]},
415 'patterns': [r".*: warning: cast to pointer from integer of different size"]},
418 'patterns': [r".*: warning: "".+"" redefined"]},
421 'patterns': [r".*: warning: this is the location of the previous definition"]},
424 'patterns': [r".*: warning: type and size of dynamic symbol `.+' are not defined"]},
427 'patterns': [r".*: warning: assignment makes pointer from integer without a cast"]},
430 'patterns': [r".*: warning: passing argument [0-9]+ of '.+' makes pointer from integer without a cast"]},
433 'patterns': [r".*: warning: assignment makes integer from pointer without a cast"]},
436 'patterns': [r".*: warning: passing argument [0-9]+ of '.+' makes integer from pointer without a cast"]},
439 'patterns': [r".*: warning: return makes integer from pointer without a cast"]},
442 'patterns': [r".*: warning: ignoring #pragma .+"]},
444 'description': 'Pragma warning messages',
445 'patterns': [r".*: warning: .+W#pragma-messages"]},
448 'patterns': [r".*: warning: variable '.+' might be clobbered by 'longjmp' or 'vfork'"]},
451 'patterns': [r".*: warning: argument '.+' might be clobbered by 'longjmp' or 'vfork'"]},
454 'patterns': [r".*: warning: redundant redeclaration of '.+'"]},
457 'patterns': [r".*: warning: previous declaration of '.+' was here"]},
460 'patterns': [r".*: warning: .*enumeration value.* not handled in switch.+Wswitch"]},
463 'patterns': [r".*: warning: .* \[-Wuser-defined-warnings\]$"]},
466 'patterns': [r".*: warning: unmappable character for encoding ascii"]},
469 'patterns': [r".*: warning: non-varargs call of varargs method with inexact argument type for last parameter"]},
472 'patterns': [r".*: warning: \[unchecked\] unchecked method invocation: .+ in class .+"]},
475 'patterns': [r".*: warning: \[unchecked\] unchecked conversion"]},
478 'patterns': [r".*: warning: '_' used as an identifier"]},
481 'patterns': [r".*: warning: .* is internal proprietary API and may be removed"]},
487 'patterns': [r'.*: warning: \[deprecation\] .+']},
491 'patterns': [r'.*: warning: \[unchecked\] .+']},
498 'patterns': [r".*: warning: \[EmptySetMultibindingContributions\] .+"]},
503 'patterns': [r".*: warning: \[PrivateConstructorForNoninstantiableModuleTest\] .+"]},
508 'patterns': [r".*: warning: \[UseBinds\] .+"]},
513 'patterns': [r".*: warning: \[FieldMissingNullable\] .+"]},
518 'patterns': [r".*: warning: \[ParameterNotNullable\] .+"]},
523 'patterns': [r".*: warning: \[ReturnMissingNullable\] .+"]},
528 'patterns': [r".*: warning: \[BooleanParameter\] .+"]},
533 'patterns': [r".*: warning: \[ConstantField\] .+"]},
538 'patterns': [r".*: warning: \[DepAnn\] .+"]},
543 'patterns': [r".*: warning: \[LambdaFunctionalInterface\] .+"]},
548 'patterns': [r".*: warning: \[LongLiteralLowerCaseSuffix\] .+"]},
553 'patterns': [r".*: warning: \[MethodCanBeStatic\] .+"]},
558 'patterns': [r".*: warning: \[MixedArrayDimensions\] .+"]},
563 'patterns': [r".*: warning: \[MultiVariableDeclaration\] .+"]},
568 'patterns': [r".*: warning: \[MultipleTopLevelClasses\] .+"]},
573 'patterns': [r".*: warning: \[MultipleUnaryOperatorsInMethodCall\] .+"]},
578 'patterns': [r".*: warning: \[PackageLocation\] .+"]},
583 'patterns': [r".*: warning: \[ParameterComment\] .+"]},
588 'patterns': [r".*: warning: \[PrivateConstructorForUtilityClass\] .+"]},
593 'patterns': [r".*: warning: \[RemoveUnusedImports\] .+"]},
598 'patterns': [r".*: warning: \[SwitchDefault\] .+"]},
603 'patterns': [r".*: warning: \[ThrowsUncheckedException\] .+"]},
608 'patterns': [r".*: warning: \[TypeParameterNaming\] .+"]},
613 'patterns': [r".*: warning: \[UngroupedOverloads\] .+"]},
618 'patterns': [r".*: warning: \[UnnecessarySetDefault\] .+"]},
623 'patterns': [r".*: warning: \[UnnecessaryStaticImport\] .+"]},
628 'patterns': [r".*: warning: \[WildcardImport\] .+"]},
633 'patterns': [r".*: warning: \[RemoveFieldPrefixes\] .+"]},
638 'patterns': [r".*: warning: \[ExpectedExceptionMigration\] .+"]},
643 'patterns': [r".*: warning: \[LoggerVariableCase\] .+"]},
648 'patterns': [r".*: warning: \[TestExceptionMigration\] .+"]},
653 'patterns': [r".*: warning: \[NonFinalPublicFields\] .+"]},
658 'patterns': [r".*: warning: \[PrivateFieldsNotAssigned\] .+"]},
663 'patterns': [r".*: warning: \[ReturnedListNotImmutable\] .+"]},
668 'patterns': [r".*: warning: \[SaferLoggerFormat\] .+"]},
673 'patterns': [r".*: warning: \[SaferLoggerToString\] .+"]},
678 'patterns': [r".*: warning: \[BinderIdentityRestoredDangerously\] .+"]},
683 'patterns': [r".*: warning: \[FragmentInjection\] .+"]},
688 'patterns': [r".*: warning: \[FragmentNotInstantiable\] .+"]},
693 'patterns': [r".*: warning: \[HardCodedSdCardPath\] .+"]},
698 'patterns': [r".*: warning: \[WakelockReleasedDangerously\] .+"]},
703 'patterns': [r".*: warning: \[ArgumentSelectionDefectChecker\] .+"]},
708 'patterns': [r".*: warning: \[AssertEqualsArgumentOrderChecker\] .+"]},
713 'patterns': [r".*: warning: \[EqualsIncompatibleType\] .+"]},
718 'patterns': [r".*: warning: \[AssistedInjectAndInjectOnConstructors\] .+"]},
723 'patterns': [r".*: warning: \[InjectOnConstructorOfAbstractClass\] .+"]},
728 'patterns': [r".*: warning: \[QualifierWithTypeUse\] .+"]},
733 'patterns': [r".*: warning: \[BindingToUnqualifiedCommonType\] .+"]},
738 'patterns': [r".*: warning: \[OverridesGuiceInjectableMethod\] .+"]},
743 'patterns': [r".*: warning: \[InconsistentOverloads\] .+"]},
748 'patterns': [r".*: warning: \[DoubleCheckedLocking\] .+"]},
753 'patterns': [r".*: warning: \[ImmutableAnnotationChecker\] .+"]},
758 'patterns': [r".*: warning: \[ImmutableEnumChecker\] .+"]},
763 'patterns': [r".*: warning: \[StaticGuardedByInstance\] .+"]},
768 'patterns': [r".*: warning: \[SynchronizeOnNonFinalField\] .+"]},
773 'patterns': [r".*: warning: \[AmbiguousMethodReference\] .+"]},
778 'patterns': [r".*: warning: \[AssertFalse\] .+"]},
783 'patterns': [r".*: warning: \[AssertionFailureIgnored\] .+"]},
788 'patterns': [r".*: warning: \[BadAnnotationImplementation\] .+"]},
793 'patterns': [r".*: warning: \[BadComparable\] .+"]},
798 'patterns': [r".*: warning: \[BigDecimalLiteralDouble\] .+"]},
803 'patterns': [r".*: warning: \[BoxedPrimitiveConstructor\] .+"]},
808 'patterns': [r".*: warning: \[CannotMockFinalClass\] .+"]},
813 'patterns': [r".*: warning: \[CanonicalDuration\] .+"]},
818 'patterns': [r".*: warning: \[CatchAndPrintStackTrace\] .+"]},
823 'patterns': [r".*: warning: \[CatchFail\] .+"]},
828 'patterns': [r".*: warning: \[ClassCanBeStatic\] .+"]},
833 'patterns': [r".*: warning: \[ClassNewInstance\] .+"]},
838 'patterns': [r".*: warning: \[CollectionToArraySafeParameter\] .+"]},
843 'patterns': [r".*: warning: \[CollectorShouldNotUseState\] .+"]},
848 'patterns': [r".*: warning: \[ComparableAndComparator\] .+"]},
853 'patterns': [r".*: warning: \[ConstructorInvokesOverridable\] .+"]},
858 'patterns': [r".*: warning: \[ConstructorLeaksThis\] .+"]},
863 'patterns': [r".*: warning: \[DateFormatConstant\] .+"]},
868 'patterns': [r".*: warning: \[DefaultCharset\] .+"]},
873 'patterns': [r".*: warning: \[EmptyTopLevelDeclaration\] .+"]},
878 'patterns': [r".*: warning: \[EqualsHashCode\] .+"]},
883 'patterns': [r".*: warning: \[ExpectedExceptionChecker\] .+"]},
888 'patterns': [r".*: warning: \[FallThrough\] .+"]},
893 'patterns': [r".*: warning: \[Finally\] .+"]},
898 'patterns': [r".*: warning: \[FloatCast\] .+"]},
903 'patterns': [r".*: warning: \[FloatingPointLiteralPrecision\] .+"]},
908 'patterns': [r".*: warning: \[FunctionalInterfaceClash\] .+"]},
913 'patterns': [r".*: warning: \[FutureReturnValueIgnored\] .+"]},
918 'patterns': [r".*: warning: \[GetClassOnEnum\] .+"]},
923 'patterns': [r".*: warning: \[HidingField\] .+"]},
928 'patterns': [r".*: warning: \[IncompatibleModifiers\] .+"]},
933 'patterns': [r".*: warning: \[IncrementInForLoopAndHeader\] .+"]},
938 'patterns': [r".*: warning: \[InputStreamSlowMultibyteRead\] .+"]},
943 'patterns': [r".*: warning: \[InstanceOfAndCastMatchWrongType\] .+"]},
948 'patterns': [r".*: warning: \[IntLongMath\] .+"]},
953 'patterns': [r".*: warning: \[IterableAndIterator\] .+"]},
958 'patterns': [r".*: warning: \[JUnit3FloatingPointComparisonWithoutDelta\] .+"]},
963 'patterns': [r".*: warning: \[JUnit4ClassUsedInJUnit3\] .+"]},
968 'patterns': [r".*: warning: \[JUnitAmbiguousTestClass\] .+"]},
973 'patterns': [r".*: warning: \[JavaLangClash\] .+"]},
978 'patterns': [r".*: warning: \[JdkObsolete\] .+"]},
983 'patterns': [r".*: warning: \[LogicalAssignment\] .+"]},
988 'patterns': [r".*: warning: \[MissingCasesInEnumSwitch\] .+"]},
993 'patterns': [r".*: warning: \[MissingDefault\] .+"]},
998 'patterns': [r".*: warning: \[MissingFail\] .+"]},
1003 'patterns': [r".*: warning: \[MissingOverride\] .+"]},
1008 'patterns': [r".*: warning: \[ModifyCollectionInEnhancedForLoop\] .+"]},
1013 'patterns': [r".*: warning: \[MultipleParallelOrSequentialCalls\] .+"]},
1018 'patterns': [r".*: warning: \[MutableConstantField\] .+"]},
1023 'patterns': [r".*: warning: \[MutableMethodReturnType\] .+"]},
1028 'patterns': [r".*: warning: \[NarrowingCompoundAssignment\] .+"]},
1033 'patterns': [r".*: warning: \[NestedInstanceOfConditions\] .+"]},
1038 'patterns': [r".*: warning: \[NonAtomicVolatileUpdate\] .+"]},
1043 'patterns': [r".*: warning: \[NonCanonicalStaticMemberImport\] .+"]},
1048 'patterns': [r".*: warning: \[NonOverridingEquals\] .+"]},
1053 'patterns': [r".*: warning: \[NullableConstructor\] .+"]},
1058 'patterns': [r".*: warning: \[NullablePrimitive\] .+"]},
1063 'patterns': [r".*: warning: \[NullableVoid\] .+"]},
1068 'patterns': [r".*: warning: \[OperatorPrecedence\] .+"]},
1073 'patterns': [r".*: warning: \[OptionalNotPresent\] .+"]},
1078 'patterns': [r".*: warning: \[OrphanedFormatString\] .+"]},
1083 'patterns': [r".*: warning: \[OverrideThrowableToString\] .+"]},
1088 'patterns': [r".*: warning: \[Overrides\] .+"]},
1093 'patterns': [r".*: warning: \[ParameterName\] .+"]},
1098 'patterns': [r".*: warning: \[PreconditionsInvalidPlaceholder\] .+"]},
1103 'patterns': [r".*: warning: \[PrimitiveArrayPassedToVarargsMethod\] .+"]},
1108 'patterns': [r".*: warning: \[ProtoFieldPreconditionsCheckNotNull\] .+"]},
1113 'patterns': [r".*: warning: \[ProvidesFix\] .+"]},
1118 'patterns': [r".*: warning: \[ReachabilityFenceUsage\] .+"]},
1123 'patterns': [r".*: warning: \[RedundantThrows\] .+"]},
1128 'patterns': [r".*: warning: \[ReferenceEquality\] .+"]},
1133 'patterns': [r".*: warning: \[RequiredModifiers\] .+"]},
1138 'patterns': [r".*: warning: \[ShortCircuitBoolean\] .+"]},
1143 'patterns': [r".*: warning: \[StaticQualifiedUsingExpression\] .+"]},
1148 'patterns': [r".*: warning: \[StreamResourceLeak\] .+"]},
1153 'patterns': [r".*: warning: \[StringEquality\] .+"]},
1158 'patterns': [r".*: warning: \[StringSplit\] .+"]},
1163 'patterns': [r".*: warning: \[StringSplitter\] .+"]},
1168 'patterns': [r".*: warning: \[TestExceptionChecker\] .+"]},
1173 'patterns': [r".*: warning: \[ThreadJoinLoop\] .+"]},
1178 'patterns': [r".*: warning: \[ThreadLocalUsage\] .+"]},
1183 'patterns': [r".*: warning: \[ThreeLetterTimeZoneID\] .+"]},
1188 'patterns': [r".*: warning: \[TruthConstantAsserts\] .+"]},
1193 'patterns': [r".*: warning: \[TypeParameterShadowing\] .+"]},
1198 'patterns': [r".*: warning: \[TypeParameterUnusedInFormals\] .+"]},
1203 'patterns': [r".*: warning: \[URLEqualsHashCode\] .+"]},
1208 'patterns': [r".*: warning: \[UnnecessaryDefaultInEnumSwitch\] .+"]},
1213 'patterns': [r".*: warning: \[UnsafeFinalization\] .+"]},
1218 'patterns': [r".*: warning: \[UnsynchronizedOverridesSynchronized\] .+"]},
1223 'patterns': [r".*: warning: \[UseCorrectAssertInTests\] .+"]},
1228 'patterns': [r".*: warning: \[Var\] .+"]},
1233 'patterns': [r".*: warning: \[WaitNotInLoop\] .+"]},
1238 'patterns': [r".*: warning: \[PluggableTypeChecker\] .+"]},
1243 'patterns': [r".*: warning: \[FloggerMessageFormat\] .+"]},
1248 'patterns': [r".*: warning: \[FloggerRedundantIsEnabled\] .+"]},
1253 'patterns': [r".*: warning: \[FloggerWithCause\] .+"]},
1258 'patterns': [r".*: warning: \[FloggerWithoutCause\] .+"]},
1263 'patterns': [r".*: warning: \[IgnoredTestWithoutBug\] .+"]},
1268 'patterns': [r".*: warning: \[JUnit4SuppressWithoutIgnore\] .+"]},
1273 'patterns': [r".*: warning: \[JUnit4TestAttributeMissing\] .+"]},
1278 'patterns': [r".*: warning: \[JavaNetIdn\] .+"]},
1283 'patterns': [r".*: warning: \[JodaDurationFlagStrictParsing\] .+"]},
1288 'patterns': [r".*: warning: \[LogAndThrow\] .+"]},
1293 'patterns': [r".*: warning: \[MisusedFormattingLogger\] .+"]},
1298 'patterns': [r".*: warning: \[NonFinalFlag\] .+"]},
1303 'patterns': [r".*: warning: \[StaticFlagUsage\] .+"]},
1308 'patterns': [r".*: warning: \[UnsafeSdkVersionCheck\] .+"]},
1313 'patterns': [r".*: warning: \[LogTagLength\] .+"]},
1318 'patterns': [r".*: warning: \[RelativeComponentName\] .+"]},
1323 'patterns': [r".*: warning: \[EnumerateAllCasesInEnumSwitch\] .+"]},
1328 'patterns': [r".*: warning: \[JUnitAssumeExperiment\] .+"]},
1333 'patterns': [r".*: warning: \[VisibleForTestingChecker\] .+"]},
1338 'patterns': [r".*: warning: \[ErrorPronePluginCorrectness\] .+"]},
1343 'patterns': [r".*: warning: \[ParcelableCreatorType\] .+"]},
1348 'patterns': [r".*: warning: \[ReflectedParcelable\] .+"]},
1353 'patterns': [r".*: warning: \[OnHandleIntentNullableChecker\] .+"]},
1358 'patterns': [r".*: warning: \[UUIDChecker\] .+"]},
1363 'patterns': [r".*: warning: \[NoFindViewByIdInOnDrawChecker\] .+"]},
1368 'patterns': [r".*: warning: \[WrongThrowableArgumentInLogChecker\] .+"]},
1373 'patterns': [r".*: warning: \[BlacklistedSplicerPathChecker\] .+"]},
1378 'patterns': [r".*: warning: \[BundleDeserializationCast\] .+"]},
1383 'patterns': [r".*: warning: \[IsLoggableTagLength\] .+"]},
1388 'patterns': [r".*: warning: \[MislabeledAndroidString\] .+"]},
1393 'patterns': [r".*: warning: \[RectIntersectReturnValueIgnored\] .+"]},
1398 'patterns': [r".*: warning: \[CollectionIncompatibleType\] .+"]},
1403 'patterns': [r".*: warning: \[CompatibleWithAnnotationMisuse\] .+"]},
1408 'patterns': [r".*: warning: \[IncompatibleArgumentType\] .+"]},
1413 'patterns': [r".*: warning: \[FormatString\] .+"]},
1418 'patterns': [r".*: warning: \[FormatStringAnnotation\] .+"]},
1423 'patterns': [r".*: warning: \[GuardedBy\] .+"]},
1428 'patterns': [r".*: warning: \[Immutable\] .+"]},
1433 'patterns': [r".*: warning: \[LockMethodChecker\] .+"]},
1438 'patterns': [r".*: warning: \[UnlockMethod\] .+"]},
1443 'patterns': [r".*: warning: \[ArrayEquals\] .+"]},
1448 'patterns': [r".*: warning: \[ArrayFillIncompatibleType\] .+"]},
1453 'patterns': [r".*: warning: \[ArrayHashCode\] .+"]},
1458 'patterns': [r".*: warning: \[ArrayToString\] .+"]},
1463 'patterns': [r".*: warning: \[ArraysAsListPrimitiveArray\] .+"]},
1468 'patterns': [r".*: warning: \[AsyncCallableReturnsNull\] .+"]},
1473 'patterns': [r".*: warning: \[AsyncFunctionReturnsNull\] .+"]},
1478 'patterns': [r".*: warning: \[BadShiftAmount\] .+"]},
1483 'patterns': [r".*: warning: \[ChainingConstructorIgnoresParameter\] .+"]},
1488 'patterns': [r".*: warning: \[CheckReturnValue\] .+"]},
1493 'patterns': [r".*: warning: \[ClassName\] .+"]},
1498 'patterns': [r".*: warning: \[ComparableType\] .+"]},
1503 'patterns': [r".*: warning: \[ComparisonContractViolated\] .+"]},
1508 'patterns': [r".*: warning: \[ComparisonOutOfRange\] .+"]},
1513 'patterns': [r".*: warning: \[CompileTimeConstant\] .+"]},
1518 'patterns': [r".*: warning: \[ComplexBooleanConstant\] .+"]},
1523 'patterns': [r".*: warning: \[ConditionalExpressionNumericPromotion\] .+"]},
1528 'patterns': [r".*: warning: \[ConstantOverflow\] .+"]},
1533 'patterns': [r".*: warning: \[DeadException\] .+"]},
1538 'patterns': [r".*: warning: \[DeadThread\] .+"]},
1543 'patterns': [r".*: warning: \[DivZero\] .+"]},
1548 'patterns': [r".*: warning: \[DoNotCall\] .+"]},
1553 'patterns': [r".*: warning: \[EmptyIf\] .+"]},
1558 'patterns': [r".*: warning: \[EqualsNaN\] .+"]},
1563 warning: \[EqualsReference\] .+"]},
1568 'patterns': [r".*: warning: \[ForOverride\] .+"]},
1573 'patterns': [r".*: warning: \[FunctionalInterfaceMethodChanged\] .+"]},
1578 'patterns': [r".*: warning: \[FuturesGetCheckedIllegalExceptionType\] .+"]},
1583 'patterns': [r".*: warning: \[FuzzyEqualsShouldNotBeUsedInEqualsMethod\] .+"]},
1588 'patterns': [r".*: warning: \[GetClassOnAnnotation\] .+"]},
1593 'patterns': [r".*: warning: \[GetClassOnClass\] .+"]},
1598 'patterns': [r".*: warning: \[HashtableContains\] .+"]},
1603 'patterns': [r".*: warning: \[IdentityBinaryExpression\] .+"]},
1608 'patterns': [r".*: warning: \[ImmutableModification\] .+"]},
1613 'patterns': [r".*: warning: \[IndexOfChar\] .+"]},
1618 'patterns': [r".*: warning: \[InexactVarargsConditional\] .+"]},
1623 'patterns': [r".*: warning: \[InfiniteRecursion\] .+"]},
1628 'patterns': [r".*: warning: \[InsecureCryptoUsage\] .+"]},
1633 'patterns': [r".*: warning: \[InvalidPatternSyntax\] .+"]},
1638 'patterns': [r".*: warning: \[InvalidTimeZoneID\] .+"]},
1643 'patterns': [r".*: warning: \[IsInstanceOfClass\] .+"]},
1648 'patterns': [r".*: warning: \[IterablePathParameter\] .+"]},
1653 'patterns': [r".*: warning: \[JMockTestWithoutRunWithOrRuleAnnotation\] .+"]},
1658 'patterns': [r".*: warning: \[JUnit3TestNotRun\] .+"]},
1663 'patterns': [r".*: warning: \[JUnit4ClassAnnotationNonStatic\] .+"]},
1668 'patterns': [r".*: warning: \[JUnit4SetUpNotRun\] .+"]},
1673 'patterns': [r".*: warning: \[JUnit4TearDownNotRun\] .+"]},
1678 'patterns': [r".*: warning: \[JUnit4TestNotRun\] .+"]},
1683 'patterns': [r".*: warning: \[JUnitAssertSameCheck\] .+"]},
1688 'patterns': [r".*: warning: \[LiteByteStringUtf8\] .+"]},
1693 'patterns': [r".*: warning: \[LoopConditionChecker\] .+"]},
1698 'patterns': [r".*: warning: \[MissingSuperCall\] .+"]},
1703 'patterns': [r".*: warning: \[MisusedWeekYear\] .+"]},
1708 'patterns': [r".*: warning: \[MockitoCast\] .+"]},
1713 'patterns': [r".*: warning: \[MockitoUsage\] .+"]},
1718 'patterns': [r".*: warning: \[ModifyingCollectionWithItself\] .+"]},
1723 'patterns': [r".*: warning: \[MustBeClosedChecker\] .+"]},
1728 'patterns': [r".*: warning: \[NCopiesOfChar\] .+"]},
1733 'patterns': [r".*: warning: \[NoAllocation\] .+"]},
1738 'patterns': [r".*: warning: \[NonCanonicalStaticImport\] .+"]},
1743 'patterns': [r".*: warning: \[NonFinalCompileTimeConstant\] .+"]},
1748 'patterns': [r".*: warning: \[NonRuntimeAnnotation\] .+"]},
1753 'patterns': [r".*: warning: \[NullTernary\] .+"]},
1758 'patterns': [r".*: warning: \[NumericEquality\] .+"]},
1763 'patterns': [r".*: warning: \[OptionalEquality\] .+"]},
1768 'patterns': [r".*: warning: \[PackageInfo\] .+"]},
1773 'patterns': [r".*: warning: \[PreconditionsCheckNotNull\] .+"]},
1778 'patterns': [r".*: warning: \[PreconditionsCheckNotNullPrimitive\] .+"]},
1783 'patterns': [r".*: warning: \[PredicateIncompatibleType\] .+"]},
1788 'patterns': [r".*: warning: \[PrivateSecurityContractProtoAccess\] .+"]},
1793 'patterns': [r".*: warning: \[ProtoFieldNullComparison\] .+"]},
1798 'patterns': [r".*: warning: \[ProtoStringFieldReferenceEquality\] .+"]},
1803 'patterns': [r".*: warning: \[ProtocolBufferOrdinal\] .+"]},
1808 'patterns': [r".*: warning: \[RandomCast\] .+"]},
1813 'patterns': [r".*: warning: \[RandomModInteger\] .+"]},
1818 'patterns': [r".*: warning: \[RestrictedApiChecker\] .+"]},
1823 'patterns': [r".*: warning: \[ReturnValueIgnored\] .+"]},
1828 'patterns': [r".*: warning: \[SelfAssignment\] .+"]},
1833 'patterns': [r".*: warning: \[SelfComparison\] .+"]},
1838 'patterns': [r".*: warning: \[SelfEquals\] .+"]},
1843 'patterns': [r".*: warning: \[ShouldHaveEvenArgs\] .+"]},
1848 'patterns': [r".*: warning: \[SizeGreaterThanOrEqualsZero\] .+"]},
1853 'patterns': [r".*: warning: \[StreamToString\] .+"]},
1858 'patterns': [r".*: warning: \[StringBuilderInitWithChar\] .+"]},
1863 'patterns': [r".*: warning: \[SuppressWarningsDeprecated\] .+"]},
1868 'patterns': [r".*: warning: \[ThrowIfUncheckedKnownChecked\] .+"]},
1873 'patterns': [r".*: warning: \[ThrowNull\] .+"]},
1878 'patterns': [r".*: warning: \[TruthSelfEquals\] .+"]},
1883 'patterns': [r".*: warning: \[TryFailThrowable\] .+"]},
1888 'patterns': [r".*: warning: \[TypeParameterQualifier\] .+"]},
1893 'patterns': [r".*: warning: \[UnnecessaryTypeArgument\] .+"]},
1898 'patterns': [r".*: warning: \[UnusedAnonymousClass\] .+"]},
1903 'patterns': [r".*: warning: \[UnusedCollectionModifiedInPlace\] .+"]},
1908 'patterns': [r".*: warning: \[VarTypeName\] .+"]},
1913 'patterns': [r".*: warning: \[ParameterPackage\] .+"]},
1918 'patterns': [r".*: warning: \[ThreadSafe\] .+"]},
1923 'patterns': [r".*: warning: \[AndroidApiChecker\] .+"]},
1928 'patterns': [r".*: warning: \[AndroidFloggerFormatString\] .+"]},
1933 'patterns': [r".*: warning: \[DoNotCastTunnelExceptionCause\] .+"]},
1938 'patterns': [r".*: warning: \[DoNotMock_ForJavaBuilder\] .+"]},
1943 'patterns': [r".*: warning: \[DurationFlagWithUnits\] .+"]},
1948 'patterns': [r".*: warning: \[DurationGetTemporalUnit\] .+"]},
1953 'patterns': [r".*: warning: \[FloggerFormatString\] .+"]},
1958 'patterns': [r".*: warning: \[JUnit4RunWithMissing\] .+"]},
1963 'patterns': [r".*: warning: \[Java7ApiChecker\] .+"]},
1968 'patterns': [r".*: warning: \[JavaDurationWithNanos\] .+"]},
1973 'patterns': [r".*: warning: \[JavaDurationWithSeconds\] .+"]},
1978 'patterns': [r".*: warning: \[JavaTimeDefaultTimeZone\] .+"]},
1983 'patterns': [r".*: warning: \[JodaDurationConstructor\] .+"]},
1988 'patterns': [r".*: warning: \[JodaDurationWithMillis\] .+"]},
1993 'patterns': [r".*: warning: \[JodaInstantWithMillis\] .+"]},
1998 'patterns': [r".*: warning: \[JodaPlusMinusLong\] .+"]},
2003 'patterns': [r".*: warning: \[JodaSetCurrentMillis\] .+"]},
2008 'patterns': [r".*: warning: \[JodaToSelf\] .+"]},
2013 'patterns': [r".*: warning: \[JodaWithDurationAddedLong\] .+"]},
2018 'patterns': [r".*: warning: \[LanguageCodeEquality\] .+"]},
2023 'patterns': [r".*: warning: \[LocalizableWrongToString\] .+"]},
2028 'patterns': [r".*: warning: \[PeriodGetTemporalUnit\] .+"]},
2033 'patterns': [r".*: warning: \[PromiseReturnValueIgnored\] .+"]},
2038 'patterns': [r".*: warning: \[PromiseThenReturningPromise\] .+"]},
2043 'patterns': [r".*: warning: \[StreamsIteratingNotInLoop\] .+"]},
2048 'patterns': [r".*: warning: \[TemporalAccessorGetChronoField\] .+"]},
2053 'patterns': [r".*: warning: \[TryWithResources\] .+"]},
2058 'patterns': [r".*: warning: \[AddCheckOrThrow\] .+"]},
2063 'patterns': [r".*: warning: \[ForbidNanoEquality\] .+"]},
2068 'patterns': [r".*: warning: \[ForbidSubmessageMutation\] .+"]},
2073 'patterns': [r".*: warning: \[NanoUnsafeRepeatedFieldUsage\] .+"]},
2078 'patterns': [r".*: warning: \[RequireCheckOrThrow\] .+"]},
2083 'patterns': [r".*: warning: \[RequireSequentialRepeatedFields\] .+"]},
2088 'patterns': [r".*: warning: \[FutureGetInNowProducers\] .+"]},
2093 'patterns': [r".*: warning: \[SimpleEnumUsage\] .+"]},
2100 'patterns': [r".*: warning: \[.+\] .+"]},
2104 'patterns': [r".*: warning: string '.+' has no default translation in .*"]},
2107 'patterns': [r".*: warning: \*\*\*\* string '.+' has no default or required localization for '.+' in .+"]},
2110 'patterns': [r".*: warning: string '.+' in .* marked untranslatable but exists in locale '??_??'"]},
2113 'patterns': [r".*: warning: empty '.+' span found in text '.+"]},
2116 'patterns': [r".*: warning: taking address of temporary"]},
2119 'patterns': [r".*: warning: taking address of packed member"]},
2122 'patterns': [r".*: warning: backslash and newline separated by space"]},
2125 'patterns': [r".*: warning: instantiation of variable .* no definition is available"]},
2128 'patterns': [r".*: warning: inline function '.*' is not defined"]},
2131 'patterns': [r".*: warning: array subscript is above array bounds",
2132 r".*: warning: Array subscript is undefined",
2133 r".*: warning: array subscript is below array bounds"]},
2136 'patterns': [r".*: warning: excess elements in .+ initializer"]},
2139 'patterns': [r".*: warning: this decimal constant is unsigned only in ISO C90"]},
2142 'patterns': [r".*: warning: 'main' is usually a function"]},
2145 'patterns': [r".*: warning: 'typedef' was ignored in this declaration"]},
2148 'patterns': [r".*: warning: the address of '.+' will always evaluate as 'true'"]},
2151 'patterns': [r".*: warning: attempt to free a non-heap object '.+'"]},
2154 'patterns': [r".*: warning: array subscript .+ type 'char'.+Wchar-subscripts"]},
2157 'patterns': [r".*: warning: integer constant is too large for '.+' type"]},
2160 'patterns': [r".*: warning: large integer implicitly truncated to unsigned type"]},
2163 'patterns': [r".*: warning: overflow in expression; .*Winteger-overflow"]},
2166 'patterns': [r".*: warning: overflow in implicit constant conversion"]},
2169 'patterns': [r".*: warning: declaration 'class .+' does not declare anything"]},
2172 'patterns': [r".*: warning: '.+' will be initialized after",
2173 r".*: warning: field .+ will be initialized after .+Wreorder"]},
2176 'patterns': [r".*: warning: '.+'"]},
2179 'patterns': [r".*: warning: base '.+'"]},
2182 'patterns': [r".*: warning: when initialized here"]},
2185 'patterns': [r".*: warning: type of '.+' defaults to 'int'"]},
2188 'patterns': [r".*: warning: declaration does not declare anything"]},
2191 'patterns': [r".*: warning: function '.*' could be declared with attribute 'noreturn'"]},
2193 # TODO(chh): fix the backslash pylint warning.
2196 'patterns': [r".*: warning: command line option "".+"" is valid for C\+\+\/ObjC\+\+ but not for C"]},
2198 'description': 'User warning',
2199 'patterns': [r".*: warning: #warning "".+"""]},
2202 'patterns': [r".*: warning: empty parentheses interpreted as a function declaration"]},
2205 'patterns': [r".*: warning: dereferencing 'void \*' pointer"]},
2208 'patterns': [r".*: warning: ordered comparison of pointer with integer zero",
2209 r".*: warning: .*comparison between pointer and integer"]},
2212 'patterns': [r".*: warning: use of unary operator that may be intended as compound assignment"]},
2215 'patterns': [r".*: warning: deprecated conversion from string constant to '.+'"]},
2218 'patterns': [r".*: warning: function declaration isn't a prototype"]},
2221 'patterns': [r".*: warning: type qualifiers ignored on function return type",
2222 r".*: warning: .+ type qualifier .+ has no effect .+Wignored-qualifiers"]},
2225 'patterns': [r".*: warning: '.+' declared inside parameter list"]},
2228 'patterns': [r".*: warning: its scope is only this definition or declaration, which is probably not what you want"]},
2231 'patterns': [r".*: warning: multi-line comment"]},
2234 'patterns': [r".*: warning: "".+"" within comment"]},
2235 # Warning "value stored is never read" could be from clang-tidy or clang static analyzer.
2238 'patterns': [r".*: warning: Value stored to .+ is never read.*clang-analyzer-deadcode.DeadStores"]},
2241 'patterns': [r".*: warning: Value stored to .+ is never read"]},
2244 'patterns': [r".*: warning: .+ is deprecated.+deprecated-declarations"]},
2247 'patterns': [r".*: warning: 'register' storage class specifier is deprecated"]},
2250 'patterns': [r".*: warning: .+ converts between pointers to integer types with different sign"]},
2253 'patterns': [r".*: warning: extra tokens at end of #endif directive"]},
2256 'patterns': [r".*: warning: comparison between '.+' and '.+'.+Wenum-compare"]},
2259 'patterns': [r".*: warning: converting negative value '.+' to '.+'",
2260 r".*: warning: conversion to '.+' .+ may (alter|change)"]},
2263 'patterns': [r".*: warning: converting to non-pointer type '.+' from NULL"]},
2266 'patterns': [r".*: warning: implicit conversion changes signedness"]},
2269 'patterns': [r".*: warning: implicit conversion of NULL constant to '.+'"]},
2272 'patterns': [r".*: warning: expression .* zero treated as a null pointer constant"]},
2275 'patterns': [r".*: warning: implicit conversion .* changes value from .* to .*-conversion"]},
2278 'patterns': [r".*: warning: passing NULL to non-pointer argument [0-9]+ of '.+'"]},
2281 'patterns': [r".*: warning: all member functions in class '.+' are private"]},
2285 'patterns': [r".*: warning: 'class .+' only defines a private destructor and has no friends"]},
2288 'patterns': [r".*: warning: 'class .+' only defines private constructors and has no friends"]},
2291 'patterns': [r".*: warning: in-class initializer for static data member of .+const (float|double)"]},
2294 'patterns': [r".*: warning: pointer of type 'void \*' used in (arithmetic|subtraction)",
2295 r".*: warning: arithmetic on .+ to void is a GNU extension.*Wpointer-arith",
2296 r".*: warning: wrong type argument to increment"]},
2299 'patterns': [r".*: warning: passing '.+' chooses '.+' over '.+'.*Wsign-promo"]},
2302 'patterns': [r".*: warning: in call to '.+'"]},
2305 'patterns': [r".*: warning: base class '.+' should be explicitly initialized in the copy constructor"]},
2308 'patterns': [r".*: warning: Declared variable-length array \(VLA\) has .+ size"]},
2311 'patterns': [r".*: warning: 'return' with a value, in function returning void"]},
2314 'patterns': [r".*: warning: multi-character character constant"]},
2317 'patterns': [r".*: warning: .+ does not allow conversion from string literal to 'char \*'"]},
2320 'patterns': [r".*: warning: extra ';' .+extra-semi"]},
2323 'patterns': [r".*: warning: useless storage class specifier in empty declaration"]},
2326 'patterns': [r".*: warning: duplicate '.+' declaration specifier"]},
2329 'patterns': [r".*: warning: tag \".+\" \(.+\) duplicated in .+"]},
2332 'patterns': [r".*: warning: redefinition of typedef '.+' is a C11 feature"]},
2335 'patterns': [r".*: warning: use of GNU old-style field designator extension"]},
2338 'patterns': [r".*: warning: missing field '.+' initializer"]},
2341 'patterns': [r".*: warning: suggest braces around initialization of",
2342 r".*: warning: too many braces around scalar initializer .+Wmany-braces-around-scalar-init",
2343 r".*: warning: braces around scalar initializer"]},
2346 'patterns': [r".*: warning: comparison of integers of different signs.+sign-compare"]},
2349 'patterns': [r".*: warning: add explicit braces to avoid dangling else"]},
2352 'patterns': [r".*: warning: initializer overrides prior initialization of this subobject"]},
2355 'patterns': [r".*: warning: explicitly assigning value of .+ to itself"]},
2358 'patterns': [r".*: warning: field '.+' with variable sized type '.+' not at the end of a struct or class"]},
2367 'patterns': [r".*: warning: incompatible pointer types .+Wincompatible-pointer-types"]},
2370 'patterns': [r".*: warning: value size does not match register size specified by the constraint and modifier"]},
2379 'patterns': [r".*: warning: invalid suffix on literal.+ requires a space .+Wliteral-suffix"]},
2381 'description': 'Warnings from #warning',
2382 'patterns': [r".*: warning: .+-W#warnings"]},
2385 'patterns': [r".*: warning: using .+ absolute value function .+ when argument is .+ type .+Wabsolute-value",
2386 r".*: warning: absolute value function '.+' given .+ which may cause truncation .+Wabsolute-value"]},
2389 'patterns': [r".*: warning: 'auto' type specifier is a C\+\+11 extension"]},
2392 'patterns': [r".*: warning: using directive refers to implicitly-defined namespace .+"]},
2395 'patterns': [r".*: warning: missing .+Winvalid-pp-token"]},
2398 'patterns': [r".*: warning: .* requires at runtime .* glibc .* for linking"]},
2402 'patterns': [r".*: warning: 'operator new' must not return NULL unless it is declared 'throw\(\)' .+"]},
2405 'patterns': [r".*: warning: NULL used in arithmetic",
2406 r".*: warning: comparison between NULL and non-pointer"]},
2409 'patterns': [r".*: warning: '.+' is used as a header guard .+ followed by .+ different macro"]},
2412 'patterns': [r".*: warning: .+ loop has empty body"]},
2415 'patterns': [r".*: warning: implicit conversion from enumeration type '.+'"]},
2418 'patterns': [r".*: warning: case value not in enumerated type '.+'"]},
2421 'patterns': [r".*: warning: The result of .+ is undefined",
2422 r".*: warning: passing an object that .+ has undefined behavior \[-Wvarargs\]",
2423 r".*: warning: 'this' pointer cannot be null in well-defined C\+\+ code;",
2424 r".*: warning: shifting a negative signed value is undefined"]},
2427 'patterns': [r".*: warning: Division by zero"]},
2430 'patterns': [r".*: warning: '.+' is deprecated .+"]},
2433 'patterns': [r".*: warning
2434 r".*: warning: Function call argument is an uninitialized value",
2435 r".*: warning: Undefined or garbage value returned to caller",
2436 r".*: warning: Called .+ pointer is.+uninitialized",
2437 r".*: warning: Called .+ pointer is.+uninitalized", # match a typo in compiler message
2438 r".*: warning: Use of zero-allocated memory",
2439 r".*: warning: Dereference of undefined pointer value",
2440 r".*: warning: Passed-by-value .+ contains uninitialized data",
2441 r".*: warning: Branch condition evaluates to a garbage value",
2442 r".*: warning: The .+ of .+ is an uninitialized value.",
2443 r".*: warning: .+ is used uninitialized whenever .+sometimes-uninitialized",
2444 r".*: warning: Assigned value is garbage or undefined"]},
2447 'patterns': [r".*: warning: Result of '.+' is converted to .+ incompatible with sizeof operand type"]},
2450 'patterns': [r".*: warning: sizeof on array function parameter will return"]},
2453 'patterns': [r".*: warning: .+\[-Wsizeof-pointer-memaccess\]"]},
2456 'patterns': [r".*: warning: The return value from .+ is not checked"]},
2459 'patterns': [r".*: warning: .*Possible heap pollution from .+ type .+"]},
2462 'patterns': [r".*: warning: Call to .+ has an allocation size of 0 byte"]},
2465 'patterns': [r".*: warning: Result of '.+' is converted to .+ incompatible with sizeof operand type"]},
2468 'patterns': [r".*: warning: variable '.+' used in loop condition.*Wfor-loop-analysis"]},
2471 'patterns': [r".*: warning: Closing a previously closed file"]},
2474 'patterns': [r".*: warning: template argument.+Wunnamed-type-template-args"]},
2478 'patterns': [r".*: warning: .+ discards '.+' qualifier from pointer target type"]},
2481 'patterns': [r".*: warning: .*sprintf is often misused; please use snprintf"]},
2484 'patterns': [r".*: warning: optimization flag '.+' is not supported"]},
2487 'patterns': [r".*: warning: equality comparison with extraneous parentheses",
2488 r".*: warning: .+ within .+Wlogical-op-parentheses"]},
2491 'patterns': [r".*: warning: '.+' defined as a .+ here but previously declared as a .+mismatched-tags",
2492 r".*: warning: .+ was previously declared as a .+mismatched-tags"]},
2495 'patterns': [r".*: warning: FindEmulator: .* No such file or directory"]},
2498 'patterns': [r".*: warning: .*_tests: Unknown installed file for module"]},
2501 'patterns': [r".*: warning: .*: unusual tags debug eng"]},
2506 'patterns': [r".*: warning: ,$"]},
2509 'patterns': [r".*: warning: $"]},
2512 'patterns': [r".*: warning: In file included from .+,"]},
2558 'patterns': [r".*: warning: This statement is never executed.*UnreachableCode"]},
2561 'patterns': [r".*: warning: .* size of .* may overflow .*MallocOverflow"]},
2564 'patterns': [r".*: warning: Stream pointer might be NULL .*unix.Stream"]},
2567 'patterns': [r".*: warning: Opened File never closed.*unix.Stream"]},
2570 'patterns': [r".*: warning: .*calls sizeof.* on a pointer type.*SizeofPtr"]},
2573 'patterns': [r".*: warning: Pointer arithmetic on non-array variables .*PointerArithm"]},
2576 'patterns': [r".*: warning: Subtraction of two pointers .*PointerSub"]},
2579 'patterns': [r".*: warning: Access out-of-bound array element .*ArrayBound"]},
2582 'patterns': [r".*: warning: Out of bound memory access .*ArrayBoundV2"]},
2585 'patterns': [r".*: warning: .* Possible lock order reversal.*PthreadLock"]},
2588 'patterns': [r".*: warning: .* argument is a pointer to uninitialized value .*CallAndMessage"]},
2591 'patterns': [r".*: warning: Casting a non-structure type to a structure type .*CastToStruct"]},
2594 'patterns': [r".*: warning: Call Path : .+"]},
2597 'patterns': [r".*: warning: Excessive padding in '.*'"]},
2606 'patterns': [r".*: warning: .+"]},
2611 return [name, '(^|.*/)' + pattern + '/.*: warning:']
2768 'STATIC_LIBRARIES|NATIVE_TESTS)/.*: warning:'],
2787 # Each warning pattern has a 'projects' dictionary, that
2889 # emit a row of warning counts per project, skip no-warning projects
2902 # emit a row of warning counts per severity
2943 # (1) Current, group by severity, id for each warning pattern
2946 # id for each warning pattern + project name
2949 # id for each warning pattern
3028 # to avoid bad warning/error messages from the exit clean-up process.
3035 """Classify all warning lines with num_cpu parallel processes."""
3107 """Normalize file path relative to android_root in a warning line."""
3120 """Parse input file, collect parameters and warning lines."""
3127 # handle only warning messages with a file path
3128 warning_pattern = re.compile('^[^ ]*/[^ ]*: warning: .*')
3181 print '"",' # no such warning
3185 function compareMessages(x1, x2) { // of the same warning type
3215 // each dictionary maps from warning type to array of warning messages.
3391 # Warning messages are grouped by severities or project names.
3417 warning = kind + ': ' + description_for_csv(i)
3418 writer.writerow([n, '', warning])
3423 writer.writerow([i['projects'][p], p, warning])