DiagnosticGroups.td revision 314564
1193326Sed//==--- DiagnosticGroups.td - Diagnostic Group Definitions ----------------===// 2193326Sed// 3193326Sed// The LLVM Compiler Infrastructure 4193326Sed// 5193326Sed// This file is distributed under the University of Illinois Open Source 6193326Sed// License. See LICENSE.TXT for details. 7193326Sed// 8193326Sed//===----------------------------------------------------------------------===// 9193326Sed 10193326Seddef ImplicitFunctionDeclare : DiagGroup<"implicit-function-declaration">; 11193326Seddef ImplicitInt : DiagGroup<"implicit-int">; 12193326Sed 13193326Sed// Aggregation warning settings. 14193326Seddef Implicit : DiagGroup<"implicit", [ 15193326Sed ImplicitFunctionDeclare, 16193326Sed ImplicitInt 17193326Sed]>; 18193326Sed 19204643Srdivacky// Empty DiagGroups are recognized by clang but ignored. 20210299Seddef : DiagGroup<"abi">; 21276479Sdimdef AbsoluteValue : DiagGroup<"absolute-value">; 22204643Srdivackydef AddressOfTemporary : DiagGroup<"address-of-temporary">; 23193326Seddef : DiagGroup<"aggregate-return">; 24261991Sdimdef GNUAlignofExpression : DiagGroup<"gnu-alignof-expression">; 25210299Seddef AmbigMemberTemplate : DiagGroup<"ambiguous-member-template">; 26261991Sdimdef GNUAnonymousStruct : DiagGroup<"gnu-anonymous-struct">; 27296417Sdimdef GNUAutoType : DiagGroup<"gnu-auto-type">; 28249423Sdimdef ArrayBounds : DiagGroup<"array-bounds">; 29249423Sdimdef ArrayBoundsPointerArithmetic : DiagGroup<"array-bounds-pointer-arithmetic">; 30221345Sdimdef Availability : DiagGroup<"availability">; 31239462Sdimdef Section : DiagGroup<"section">; 32234353Sdimdef AutoImport : DiagGroup<"auto-import">; 33296417Sdimdef CXX14BinaryLiteral : DiagGroup<"c++14-binary-literal">; 34261991Sdimdef GNUBinaryLiteral : DiagGroup<"gnu-binary-literal">; 35261991Sdimdef GNUCompoundLiteralInitializer : DiagGroup<"gnu-compound-literal-initializer">; 36251662Sdimdef BitFieldConstantConversion : DiagGroup<"bitfield-constant-conversion">; 37296417Sdimdef BitFieldWidth : DiagGroup<"bitfield-width">; 38251662Sdimdef ConstantConversion : 39251662Sdim DiagGroup<"constant-conversion", [ BitFieldConstantConversion ] >; 40234353Sdimdef LiteralConversion : DiagGroup<"literal-conversion">; 41234353Sdimdef StringConversion : DiagGroup<"string-conversion">; 42234353Sdimdef SignConversion : DiagGroup<"sign-conversion">; 43276479Sdimdef PointerBoolConversion : DiagGroup<"pointer-bool-conversion">; 44276479Sdimdef UndefinedBoolConversion : DiagGroup<"undefined-bool-conversion">; 45276479Sdimdef BoolConversion : DiagGroup<"bool-conversion", [PointerBoolConversion, 46276479Sdim UndefinedBoolConversion]>; 47234353Sdimdef IntConversion : DiagGroup<"int-conversion">; 48243830Sdimdef EnumConversion : DiagGroup<"enum-conversion">; 49309124Sdim 50309124Sdimdef FloatOverflowConversion : DiagGroup<"float-overflow-conversion">; 51309124Sdimdef FloatZeroConversion : DiagGroup<"float-zero-conversion">; 52309124Sdimdef FloatConversion : 53309124Sdim DiagGroup<"float-conversion", [FloatOverflowConversion, 54309124Sdim FloatZeroConversion]>; 55309124Sdim 56296417Sdimdef DoublePromotion : DiagGroup<"double-promotion">; 57276479Sdimdef EnumTooLarge : DiagGroup<"enum-too-large">; 58288943Sdimdef UnsupportedNan : DiagGroup<"unsupported-nan">; 59309124Sdimdef UnsupportedCB : DiagGroup<"unsupported-cb">; 60239462Sdimdef NonLiteralNullConversion : DiagGroup<"non-literal-null-conversion">; 61234353Sdimdef NullConversion : DiagGroup<"null-conversion">; 62243830Sdimdef ImplicitConversionFloatingPointToBool : 63243830Sdim DiagGroup<"implicit-conversion-floating-point-to-bool">; 64276479Sdimdef ObjCLiteralConversion : DiagGroup<"objc-literal-conversion">; 65276479Sdimdef MacroRedefined : DiagGroup<"macro-redefined">; 66249423Sdimdef BuiltinMacroRedefined : DiagGroup<"builtin-macro-redefined">; 67227737Sdimdef BuiltinRequiresHeader : DiagGroup<"builtin-requires-header">; 68249423Sdimdef C99Compat : DiagGroup<"c99-compat">; 69212904Sdimdef CXXCompat: DiagGroup<"c++-compat">; 70261991Sdimdef ExternCCompat : DiagGroup<"extern-c-compat">; 71261991Sdimdef KeywordCompat : DiagGroup<"keyword-compat">; 72261991Sdimdef GNUCaseRange : DiagGroup<"gnu-case-range">; 73212904Sdimdef CastAlign : DiagGroup<"cast-align">; 74280031Sdimdef CastQual : DiagGroup<"cast-qual">; 75193326Seddef : DiagGroup<"char-align">; 76193326Seddef Comment : DiagGroup<"comment">; 77261991Sdimdef GNUComplexInteger : DiagGroup<"gnu-complex-integer">; 78261991Sdimdef GNUConditionalOmittedOperand : DiagGroup<"gnu-conditional-omitted-operand">; 79249423Sdimdef ConfigMacros : DiagGroup<"config-macros">; 80199482Srdivackydef : DiagGroup<"ctor-dtor-privacy">; 81206084Srdivackydef GNUDesignator : DiagGroup<"gnu-designator">; 82261991Sdimdef GNUStringLiteralOperatorTemplate : 83261991Sdim DiagGroup<"gnu-string-literal-operator-template">; 84309124Sdimdef UndefinedVarTemplate : DiagGroup<"undefined-var-template">; 85309124Sdimdef UndefinedFuncTemplate : DiagGroup<"undefined-func-template">; 86212904Sdim 87280031Sdimdef DeleteIncomplete : DiagGroup<"delete-incomplete">; 88223017Sdimdef DeleteNonVirtualDtor : DiagGroup<"delete-non-virtual-dtor">; 89243830Sdimdef AbstractFinalClass : DiagGroup<"abstract-final-class">; 90223017Sdim 91261991Sdimdef CXX11CompatDeprecatedWritableStr : 92261991Sdim DiagGroup<"c++11-compat-deprecated-writable-strings">; 93261991Sdim 94296417Sdimdef DeprecatedAttributes : DiagGroup<"deprecated-attributes">; 95212904Sdimdef DeprecatedDeclarations : DiagGroup<"deprecated-declarations">; 96276479Sdimdef UnavailableDeclarations : DiagGroup<"unavailable-declarations">; 97309124Sdimdef UnguardedAvailability : DiagGroup<"unguarded-availability">; 98314564Sdim// partial-availability is an alias of unguarded-availability. 99314564Sdimdef : DiagGroup<"partial-availability", [UnguardedAvailability]>; 100314564Sdimdef DeprecatedDynamicExceptionSpec 101314564Sdim : DiagGroup<"deprecated-dynamic-exception-spec">; 102261991Sdimdef DeprecatedImplementations :DiagGroup<"deprecated-implementations">; 103261991Sdimdef DeprecatedIncrementBool : DiagGroup<"deprecated-increment-bool">; 104261991Sdimdef DeprecatedRegister : DiagGroup<"deprecated-register">; 105261991Sdimdef DeprecatedWritableStr : DiagGroup<"deprecated-writable-strings", 106261991Sdim [CXX11CompatDeprecatedWritableStr]>; 107276479Sdim// FIXME: Why is DeprecatedImplementations not in this group? 108296417Sdimdef Deprecated : DiagGroup<"deprecated", [DeprecatedAttributes, 109296417Sdim DeprecatedDeclarations, 110314564Sdim DeprecatedDynamicExceptionSpec, 111261991Sdim DeprecatedIncrementBool, 112276479Sdim DeprecatedRegister, 113276479Sdim DeprecatedWritableStr]>, 114212904Sdim DiagCategory<"Deprecations">; 115212904Sdim 116314564Sdimdef DynamicExceptionSpec 117314564Sdim : DiagGroup<"dynamic-exception-spec", [DeprecatedDynamicExceptionSpec]>; 118314564Sdim 119296417Sdimdef LibLTO : DiagGroup<"liblto">; 120193326Seddef : DiagGroup<"disabled-optimization">; 121193326Seddef : DiagGroup<"discard-qual">; 122314564Sdimdef DivZero : DiagGroup<"division-by-zero">; 123314564Sdimdef : DiagGroup<"div-by-zero", [DivZero]>; 124243830Sdim 125239462Sdimdef DocumentationHTML : DiagGroup<"documentation-html">; 126251662Sdimdef DocumentationUnknownCommand : DiagGroup<"documentation-unknown-command">; 127251662Sdimdef DocumentationPedantic : DiagGroup<"documentation-pedantic", 128251662Sdim [DocumentationUnknownCommand]>; 129243830Sdimdef DocumentationDeprecatedSync : DiagGroup<"documentation-deprecated-sync">; 130243830Sdimdef Documentation : DiagGroup<"documentation", 131243830Sdim [DocumentationHTML, 132243830Sdim DocumentationDeprecatedSync]>; 133243830Sdim 134193380Seddef EmptyBody : DiagGroup<"empty-body">; 135288943Sdimdef Exceptions : DiagGroup<"exceptions">; 136288943Sdim 137261991Sdimdef GNUEmptyInitializer : DiagGroup<"gnu-empty-initializer">; 138261991Sdimdef GNUEmptyStruct : DiagGroup<"gnu-empty-struct">; 139193326Seddef ExtraTokens : DiagGroup<"extra-tokens">; 140239462Sdimdef CXX11ExtraSemi : DiagGroup<"c++11-extra-semi">; 141239462Sdimdef ExtraSemi : DiagGroup<"extra-semi", [CXX11ExtraSemi]>; 142193326Sed 143261991Sdimdef GNUFlexibleArrayInitializer : DiagGroup<"gnu-flexible-array-initializer">; 144261991Sdimdef GNUFlexibleArrayUnionMember : DiagGroup<"gnu-flexible-array-union-member">; 145261991Sdimdef GNUFoldingConstant : DiagGroup<"gnu-folding-constant">; 146193326Seddef FormatExtraArgs : DiagGroup<"format-extra-args">; 147193326Seddef FormatZeroLength : DiagGroup<"format-zero-length">; 148193326Sed 149251662Sdim// Warnings for C++1y code which is not compatible with prior C++ standards. 150280031Sdimdef CXXPre14Compat : DiagGroup<"c++98-c++11-compat">; 151280031Sdimdef CXXPre14CompatPedantic : DiagGroup<"c++98-c++11-compat-pedantic", 152280031Sdim [CXXPre14Compat]>; 153276479Sdimdef CXXPre1zCompat : DiagGroup<"c++98-c++11-c++14-compat">; 154276479Sdimdef CXXPre1zCompatPedantic : DiagGroup<"c++98-c++11-c++14-compat-pedantic", 155276479Sdim [CXXPre1zCompat]>; 156251662Sdim 157234353Sdimdef CXX98CompatBindToTemporaryCopy : 158234353Sdim DiagGroup<"c++98-compat-bind-to-temporary-copy">; 159234353Sdimdef CXX98CompatLocalTypeTemplateArgs : 160234353Sdim DiagGroup<"c++98-compat-local-type-template-args">; 161234353Sdimdef CXX98CompatUnnamedTypeTemplateArgs : 162234353Sdim DiagGroup<"c++98-compat-unnamed-type-template-args">; 163234353Sdim 164234353Sdimdef CXX98Compat : DiagGroup<"c++98-compat", 165280031Sdim [CXX98CompatLocalTypeTemplateArgs, 166251662Sdim CXX98CompatUnnamedTypeTemplateArgs, 167280031Sdim CXXPre14Compat, 168276479Sdim CXXPre1zCompat]>; 169226633Sdim// Warnings for C++11 features which are Extensions in C++98 mode. 170251662Sdimdef CXX98CompatPedantic : DiagGroup<"c++98-compat-pedantic", 171251662Sdim [CXX98Compat, 172280031Sdim CXX98CompatBindToTemporaryCopy, 173280031Sdim CXXPre14CompatPedantic, 174276479Sdim CXXPre1zCompatPedantic]>; 175208600Srdivacky 176226633Sdimdef CXX11Narrowing : DiagGroup<"c++11-narrowing">; 177234353Sdim 178280031Sdimdef CXX11WarnOverrideMethod : DiagGroup<"inconsistent-missing-override">; 179280031Sdim 180234353Sdim// Original name of this warning in Clang 181226633Sdimdef : DiagGroup<"c++0x-narrowing", [CXX11Narrowing]>; 182226633Sdim 183234353Sdim// Name of this warning in GCC 184234353Sdimdef : DiagGroup<"narrowing", [CXX11Narrowing]>; 185234353Sdim 186234353Sdimdef CXX11CompatReservedUserDefinedLiteral : 187234353Sdim DiagGroup<"c++11-compat-reserved-user-defined-literal">; 188234353Sdimdef ReservedUserDefinedLiteral : 189234353Sdim DiagGroup<"reserved-user-defined-literal", 190234353Sdim [CXX11CompatReservedUserDefinedLiteral]>; 191234353Sdim 192234353Sdimdef CXX11Compat : DiagGroup<"c++11-compat", 193234353Sdim [CXX11Narrowing, 194251662Sdim CXX11CompatReservedUserDefinedLiteral, 195261991Sdim CXX11CompatDeprecatedWritableStr, 196280031Sdim CXXPre14Compat, 197276479Sdim CXXPre1zCompat]>; 198226633Sdimdef : DiagGroup<"c++0x-compat", [CXX11Compat]>; 199251662Sdimdef CXX11CompatPedantic : DiagGroup<"c++11-compat-pedantic", 200280031Sdim [CXXPre14CompatPedantic, 201276479Sdim CXXPre1zCompatPedantic]>; 202226633Sdim 203276479Sdimdef CXX14Compat : DiagGroup<"c++14-compat", [CXXPre1zCompat]>; 204276479Sdimdef CXX14CompatPedantic : DiagGroup<"c++14-compat-pedantic", 205276479Sdim [CXXPre1zCompatPedantic]>; 206276479Sdim 207296417Sdimdef CXX1zCompat : DiagGroup<"c++1z-compat", [DeprecatedRegister, 208296417Sdim DeprecatedIncrementBool]>; 209296417Sdim 210221345Sdimdef ExitTimeDestructors : DiagGroup<"exit-time-destructors">; 211234353Sdimdef FlexibleArrayExtensions : DiagGroup<"flexible-array-extensions">; 212193326Seddef FourByteMultiChar : DiagGroup<"four-char-constants">; 213212904Sdimdef GlobalConstructors : DiagGroup<"global-constructors">; 214224145Sdimdef BitwiseOpParentheses: DiagGroup<"bitwise-op-parentheses">; 215218893Sdimdef LogicalOpParentheses: DiagGroup<"logical-op-parentheses">; 216261991Sdimdef LogicalNotParentheses: DiagGroup<"logical-not-parentheses">; 217243830Sdimdef ShiftOpParentheses: DiagGroup<"shift-op-parentheses">; 218251662Sdimdef OverloadedShiftOpParentheses: DiagGroup<"overloaded-shift-op-parentheses">; 219234353Sdimdef DanglingElse: DiagGroup<"dangling-else">; 220249423Sdimdef DanglingField : DiagGroup<"dangling-field">; 221249423Sdimdef DistributedObjectModifiers : DiagGroup<"distributed-object-modifiers">; 222309124Sdimdef ExpansionToDefined : DiagGroup<"expansion-to-defined">; 223288943Sdimdef FlagEnum : DiagGroup<"flag-enum">; 224296417Sdimdef IncrementBool : DiagGroup<"increment-bool", [DeprecatedIncrementBool]>; 225276479Sdimdef InfiniteRecursion : DiagGroup<"infinite-recursion">; 226261991Sdimdef GNUImaginaryConstant : DiagGroup<"gnu-imaginary-constant">; 227210299Seddef IgnoredQualifiers : DiagGroup<"ignored-qualifiers">; 228198092Srdivackydef : DiagGroup<"import">; 229296417Sdimdef GNUIncludeNext : DiagGroup<"gnu-include-next">; 230276479Sdimdef IncompatibleMSStruct : DiagGroup<"incompatible-ms-struct">; 231249423Sdimdef IncompatiblePointerTypesDiscardsQualifiers 232249423Sdim : DiagGroup<"incompatible-pointer-types-discards-qualifiers">; 233314564Sdimdef IncompatibleFunctionPointerTypes 234314564Sdim : DiagGroup<"incompatible-function-pointer-types">; 235249423Sdimdef IncompatiblePointerTypes 236249423Sdim : DiagGroup<"incompatible-pointer-types", 237314564Sdim [IncompatiblePointerTypesDiscardsQualifiers, 238314564Sdim IncompatibleFunctionPointerTypes]>; 239234353Sdimdef IncompleteUmbrella : DiagGroup<"incomplete-umbrella">; 240276479Sdimdef NonModularIncludeInFrameworkModule 241276479Sdim : DiagGroup<"non-modular-include-in-framework-module">; 242276479Sdimdef NonModularIncludeInModule : DiagGroup<"non-modular-include-in-module", 243276479Sdim [NonModularIncludeInFrameworkModule]>; 244280031Sdimdef IncompleteModule : DiagGroup<"incomplete-module", 245280031Sdim [IncompleteUmbrella, NonModularIncludeInModule]>; 246314564Sdimdef PrivateModule : DiagGroup<"private-module">; 247280031Sdim 248296417Sdimdef CXX11InlineNamespace : DiagGroup<"c++11-inline-namespace">; 249249423Sdimdef InvalidNoreturn : DiagGroup<"invalid-noreturn">; 250249423Sdimdef InvalidSourceEncoding : DiagGroup<"invalid-source-encoding">; 251234353Sdimdef KNRPromotedParameter : DiagGroup<"knr-promoted-parameter">; 252193326Seddef : DiagGroup<"init-self">; 253193326Seddef : DiagGroup<"inline">; 254194613Seddef : DiagGroup<"invalid-pch">; 255261991Sdimdef GNULabelsAsValue : DiagGroup<"gnu-label-as-value">; 256204962Srdivackydef LiteralRange : DiagGroup<"literal-range">; 257234353Sdimdef LocalTypeTemplateArgs : DiagGroup<"local-type-template-args", 258234353Sdim [CXX98CompatLocalTypeTemplateArgs]>; 259288943Sdimdef RangeLoopAnalysis : DiagGroup<"range-loop-analysis">; 260288943Sdimdef ForLoopAnalysis : DiagGroup<"for-loop-analysis">; 261288943Sdimdef LoopAnalysis : DiagGroup<"loop-analysis", [ForLoopAnalysis, 262288943Sdim RangeLoopAnalysis]>; 263226633Sdimdef MalformedWarningCheck : DiagGroup<"malformed-warning-check">; 264226633Sdimdef Main : DiagGroup<"main">; 265234353Sdimdef MainReturnType : DiagGroup<"main-return-type">; 266314564Sdimdef MaxUnsignedZero : DiagGroup<"max-unsigned-zero">; 267204962Srdivackydef MissingBraces : DiagGroup<"missing-braces">; 268212904Sdimdef MissingDeclarations: DiagGroup<"missing-declarations">; 269193326Seddef : DiagGroup<"missing-format-attribute">; 270198954Srdivackydef : DiagGroup<"missing-include-dirs">; 271249423Sdimdef MissingNoreturn : DiagGroup<"missing-noreturn">; 272193326Seddef MultiChar : DiagGroup<"multichar">; 273193326Seddef : DiagGroup<"nested-externs">; 274243830Sdimdef CXX11LongLong : DiagGroup<"c++11-long-long">; 275243830Sdimdef LongLong : DiagGroup<"long-long", [CXX11LongLong]>; 276288943Sdimdef ImplicitlyUnsignedLiteral : DiagGroup<"implicitly-unsigned-literal">; 277249423Sdimdef MethodSignatures : DiagGroup<"method-signatures">; 278243830Sdimdef MismatchedParameterTypes : DiagGroup<"mismatched-parameter-types">; 279243830Sdimdef MismatchedReturnTypes : DiagGroup<"mismatched-return-types">; 280193326Seddef MismatchedTags : DiagGroup<"mismatched-tags">; 281205219Srdivackydef MissingFieldInitializers : DiagGroup<"missing-field-initializers">; 282280031Sdimdef ModuleBuild : DiagGroup<"module-build">; 283249423Sdimdef ModuleConflict : DiagGroup<"module-conflict">; 284296417Sdimdef ModuleFileExtension : DiagGroup<"module-file-extension">; 285261991Sdimdef NewlineEOF : DiagGroup<"newline-eof">; 286288943Sdimdef Nullability : DiagGroup<"nullability">; 287288943Sdimdef NullabilityDeclSpec : DiagGroup<"nullability-declspec">; 288314564Sdimdef NullabilityInferredOnNestedType : DiagGroup<"nullability-inferred-on-nested-type">; 289288943Sdimdef NullableToNonNullConversion : DiagGroup<"nullable-to-nonnull-conversion">; 290314564Sdimdef NullabilityCompletenessOnArrays : DiagGroup<"nullability-completeness-on-arrays">; 291314564Sdimdef NullabilityCompleteness : DiagGroup<"nullability-completeness", 292314564Sdim [NullabilityCompletenessOnArrays]>; 293249423Sdimdef NullArithmetic : DiagGroup<"null-arithmetic">; 294234353Sdimdef NullCharacter : DiagGroup<"null-character">; 295218893Sdimdef NullDereference : DiagGroup<"null-dereference">; 296210299Seddef InitializerOverrides : DiagGroup<"initializer-overrides">; 297193326Seddef NonNull : DiagGroup<"nonnull">; 298249423Sdimdef NonPODVarargs : DiagGroup<"non-pod-varargs">; 299276479Sdimdef ClassVarargs : DiagGroup<"class-varargs", [NonPODVarargs]>; 300193326Seddef : DiagGroup<"nonportable-cfstrings">; 301218893Sdimdef NonVirtualDtor : DiagGroup<"non-virtual-dtor">; 302314564Sdimdef : DiagGroup<"effc++", [NonVirtualDtor]>; 303234353Sdimdef OveralignedType : DiagGroup<"over-aligned">; 304276479Sdimdef OldStyleCast : DiagGroup<"old-style-cast">; 305193326Seddef : DiagGroup<"old-style-definition">; 306212904Sdimdef OutOfLineDeclaration : DiagGroup<"out-of-line-declaration">; 307198092Srdivackydef : DiagGroup<"overflow">; 308239462Sdimdef ForwardClassReceiver : DiagGroup<"receiver-forward-class">; 309239462Sdimdef MethodAccess : DiagGroup<"objc-method-access">; 310239462Sdimdef ObjCReceiver : DiagGroup<"receiver-expr">; 311276479Sdimdef OperatorNewReturnsNull : DiagGroup<"new-returns-null">; 312212904Sdimdef OverlengthStrings : DiagGroup<"overlength-strings">; 313218893Sdimdef OverloadedVirtual : DiagGroup<"overloaded-virtual">; 314239462Sdimdef PrivateExtern : DiagGroup<"private-extern">; 315239462Sdimdef SelTypeCast : DiagGroup<"cast-of-sel-type">; 316276479Sdimdef FunctionDefInObjCContainer : DiagGroup<"function-def-in-objc-container">; 317243830Sdimdef BadFunctionCast : DiagGroup<"bad-function-cast">; 318234353Sdimdef ObjCPropertyImpl : DiagGroup<"objc-property-implementation">; 319239462Sdimdef ObjCPropertyNoAttribute : DiagGroup<"objc-property-no-attribute">; 320288943Sdimdef ObjCProtocolQualifiers : DiagGroup<"objc-protocol-qualifiers">; 321226633Sdimdef ObjCMissingSuperCalls : DiagGroup<"objc-missing-super-calls">; 322276479Sdimdef ObjCDesignatedInit : DiagGroup<"objc-designated-initializers">; 323226633Sdimdef ObjCRetainBlockProperty : DiagGroup<"objc-noncopy-retain-block-property">; 324234353Sdimdef ObjCReadonlyPropertyHasSetter : DiagGroup<"objc-readonly-with-setter-property">; 325261991Sdimdef ObjCInvalidIBOutletProperty : DiagGroup<"invalid-iboutlet">; 326234353Sdimdef ObjCRootClass : DiagGroup<"objc-root-class">; 327261991Sdimdef ObjCPointerIntrospectPerformSelector : DiagGroup<"deprecated-objc-pointer-introspection-performSelector">; 328261991Sdimdef ObjCPointerIntrospect : DiagGroup<"deprecated-objc-pointer-introspection", [ObjCPointerIntrospectPerformSelector]>; 329280031Sdimdef ObjCMultipleMethodNames : DiagGroup<"objc-multiple-method-names">; 330314564Sdimdef OpenCLUnsupportedRGBA: DiagGroup<"opencl-unsupported-rgba">; 331249423Sdimdef DeprecatedObjCIsaUsage : DiagGroup<"deprecated-objc-isa-usage">; 332280031Sdimdef ExplicitInitializeCall : DiagGroup<"explicit-initialize-call">; 333218893Sdimdef Packed : DiagGroup<"packed">; 334218893Sdimdef Padded : DiagGroup<"padded">; 335288943Sdimdef PessimizingMove : DiagGroup<"pessimizing-move">; 336198092Srdivackydef PointerArith : DiagGroup<"pointer-arith">; 337276479Sdimdef PoundWarning : DiagGroup<"#warnings">; 338234353Sdimdef PoundPragmaMessage : DiagGroup<"#pragma-messages">, 339221345Sdim DiagCategory<"#pragma message Directive">; 340193326Seddef : DiagGroup<"pointer-to-int-cast">; 341193326Seddef : DiagGroup<"redundant-decls">; 342261991Sdimdef RedeclaredClassMember : DiagGroup<"redeclared-class-member">; 343261991Sdimdef GNURedeclaredEnum : DiagGroup<"gnu-redeclared-enum">; 344288943Sdimdef RedundantMove : DiagGroup<"redundant-move">; 345296417Sdimdef Register : DiagGroup<"register", [DeprecatedRegister]>; 346249423Sdimdef ReturnStackAddress : DiagGroup<"return-stack-address">; 347234353Sdimdef ReturnTypeCLinkage : DiagGroup<"return-type-c-linkage">; 348234353Sdimdef ReturnType : DiagGroup<"return-type", [ReturnTypeCLinkage]>; 349234353Sdimdef BindToTemporaryCopy : DiagGroup<"bind-to-temporary-copy", 350234353Sdim [CXX98CompatBindToTemporaryCopy]>; 351239462Sdimdef SelfAssignmentField : DiagGroup<"self-assign-field">; 352239462Sdimdef SelfAssignment : DiagGroup<"self-assign", [SelfAssignmentField]>; 353280031Sdimdef SelfMove : DiagGroup<"self-move">; 354199482Srdivackydef SemiBeforeMethodBody : DiagGroup<"semicolon-before-method-body">; 355226633Sdimdef Sentinel : DiagGroup<"sentinel">; 356226633Sdimdef MissingMethodReturnType : DiagGroup<"missing-method-return-type">; 357309124Sdim 358309124Sdimdef ShadowFieldInConstructorModified : DiagGroup<"shadow-field-in-constructor-modified">; 359309124Sdimdef ShadowFieldInConstructor : DiagGroup<"shadow-field-in-constructor", 360309124Sdim [ShadowFieldInConstructorModified]>; 361314564Sdimdef ShadowIvar : DiagGroup<"shadow-ivar">; 362314564Sdimdef ShadowUncapturedLocal : DiagGroup<"shadow-uncaptured-local">; 363309124Sdim 364309124Sdim// -Wshadow-all is a catch-all for all shadowing. -Wshadow is just the 365309124Sdim// shadowing that we think is unsafe. 366314564Sdimdef Shadow : DiagGroup<"shadow", [ShadowFieldInConstructorModified, 367314564Sdim ShadowIvar]>; 368314564Sdimdef ShadowAll : DiagGroup<"shadow-all", [Shadow, ShadowFieldInConstructor, 369314564Sdim ShadowUncapturedLocal]>; 370309124Sdim 371243830Sdimdef Shorten64To32 : DiagGroup<"shorten-64-to-32">; 372210299Seddef : DiagGroup<"sign-promo">; 373199482Srdivackydef SignCompare : DiagGroup<"sign-compare">; 374212904Sdimdef : DiagGroup<"stack-protector">; 375212904Sdimdef : DiagGroup<"switch-default">; 376199482Srdivackydef : DiagGroup<"synth">; 377224145Sdimdef SizeofArrayArgument : DiagGroup<"sizeof-array-argument">; 378249423Sdimdef SizeofArrayDecay : DiagGroup<"sizeof-array-decay">; 379249423Sdimdef SizeofPointerMemaccess : DiagGroup<"sizeof-pointer-memaccess">; 380249423Sdimdef StaticInInline : DiagGroup<"static-in-inline">; 381249423Sdimdef StaticLocalInInline : DiagGroup<"static-local-in-inline">; 382249423Sdimdef GNUStaticFloatInit : DiagGroup<"gnu-static-float-init">; 383249423Sdimdef StaticFloatInit : DiagGroup<"static-float-init", [GNUStaticFloatInit]>; 384261991Sdimdef GNUStatementExpression : DiagGroup<"gnu-statement-expression">; 385276479Sdimdef StringCompare : DiagGroup<"string-compare">; 386234353Sdimdef StringPlusInt : DiagGroup<"string-plus-int">; 387261991Sdimdef StringPlusChar : DiagGroup<"string-plus-char">; 388234353Sdimdef StrncatSize : DiagGroup<"strncat-size">; 389243830Sdimdef TautologicalOutOfRangeCompare : DiagGroup<"tautological-constant-out-of-range-compare">; 390276479Sdimdef TautologicalPointerCompare : DiagGroup<"tautological-pointer-compare">; 391276479Sdimdef TautologicalOverlapCompare : DiagGroup<"tautological-overlap-compare">; 392276479Sdimdef TautologicalUndefinedCompare : DiagGroup<"tautological-undefined-compare">; 393243830Sdimdef TautologicalCompare : DiagGroup<"tautological-compare", 394276479Sdim [TautologicalOutOfRangeCompare, 395276479Sdim TautologicalPointerCompare, 396276479Sdim TautologicalOverlapCompare, 397276479Sdim TautologicalUndefinedCompare]>; 398221345Sdimdef HeaderHygiene : DiagGroup<"header-hygiene">; 399243830Sdimdef DuplicateDeclSpecifier : DiagGroup<"duplicate-decl-specifier">; 400243830Sdimdef CompareDistinctPointerType : DiagGroup<"compare-distinct-pointer-types">; 401261991Sdimdef GNUUnionCast : DiagGroup<"gnu-union-cast">; 402261991Sdimdef GNUVariableSizedTypeNotAtEnd : DiagGroup<"gnu-variable-sized-type-not-at-end">; 403261991Sdimdef Varargs : DiagGroup<"varargs">; 404193326Sed 405249423Sdimdef Unsequenced : DiagGroup<"unsequenced">; 406249423Sdim// GCC name for -Wunsequenced 407249423Sdimdef : DiagGroup<"sequence-point", [Unsequenced]>; 408249423Sdim 409198092Srdivacky// Preprocessor warnings. 410243830Sdimdef AmbiguousMacro : DiagGroup<"ambiguous-macro">; 411280031Sdimdef KeywordAsMacro : DiagGroup<"keyword-macro">; 412280031Sdimdef ReservedIdAsMacro : DiagGroup<"reserved-id-macro">; 413198092Srdivacky 414199990Srdivacky// Just silence warnings about -Wstrict-aliasing for now. 415193326Seddef : DiagGroup<"strict-aliasing=0">; 416193326Seddef : DiagGroup<"strict-aliasing=1">; 417193326Seddef : DiagGroup<"strict-aliasing=2">; 418193326Seddef : DiagGroup<"strict-aliasing">; 419193326Sed 420199990Srdivacky// Just silence warnings about -Wstrict-overflow for now. 421193326Seddef : DiagGroup<"strict-overflow=0">; 422193326Seddef : DiagGroup<"strict-overflow=1">; 423193326Seddef : DiagGroup<"strict-overflow=2">; 424199990Srdivackydef : DiagGroup<"strict-overflow=3">; 425199990Srdivackydef : DiagGroup<"strict-overflow=4">; 426199990Srdivackydef : DiagGroup<"strict-overflow=5">; 427193326Seddef : DiagGroup<"strict-overflow">; 428193326Sed 429193326Seddef InvalidOffsetof : DiagGroup<"invalid-offsetof">; 430193326Seddef : DiagGroup<"strict-prototypes">; 431212904Sdimdef StrictSelector : DiagGroup<"strict-selector-match">; 432234353Sdimdef MethodDuplicate : DiagGroup<"duplicate-method-match">; 433280031Sdimdef ObjCCStringFormat : DiagGroup<"cstring-format-directive">; 434234353Sdimdef CoveredSwitchDefault : DiagGroup<"covered-switch-default">; 435276479Sdimdef SwitchBool : DiagGroup<"switch-bool">; 436203955Srdivackydef SwitchEnum : DiagGroup<"switch-enum">; 437234353Sdimdef Switch : DiagGroup<"switch">; 438239462Sdimdef ImplicitFallthroughPerFunction : 439239462Sdim DiagGroup<"implicit-fallthrough-per-function">; 440239462Sdimdef ImplicitFallthrough : DiagGroup<"implicit-fallthrough", 441239462Sdim [ImplicitFallthroughPerFunction]>; 442239462Sdimdef InvalidPPToken : DiagGroup<"invalid-pp-token">; 443207632Srdivackydef Trigraphs : DiagGroup<"trigraphs">; 444193326Sed 445193326Seddef : DiagGroup<"type-limits">; 446249423Sdimdef UndefinedReinterpretCast : DiagGroup<"undefined-reinterpret-cast">; 447249423Sdimdef ReinterpretBaseClass : DiagGroup<"reinterpret-base-class">; 448234353Sdimdef Unicode : DiagGroup<"unicode">; 449221345Sdimdef UninitializedMaybe : DiagGroup<"conditional-uninitialized">; 450239462Sdimdef UninitializedSometimes : DiagGroup<"sometimes-uninitialized">; 451249423Sdimdef UninitializedStaticSelfInit : DiagGroup<"static-self-init">; 452249423Sdimdef Uninitialized : DiagGroup<"uninitialized", [UninitializedSometimes, 453249423Sdim UninitializedStaticSelfInit]>; 454314564Sdimdef IgnoredPragmaIntrinsic : DiagGroup<"ignored-pragma-intrinsic">; 455193326Seddef UnknownPragmas : DiagGroup<"unknown-pragmas">; 456314564Sdimdef IgnoredPragmas : DiagGroup<"ignored-pragmas", [IgnoredPragmaIntrinsic]>; 457276479Sdimdef Pragmas : DiagGroup<"pragmas", [UnknownPragmas, IgnoredPragmas]>; 458249423Sdimdef UnknownWarningOption : DiagGroup<"unknown-warning-option">; 459234353Sdimdef NSobjectAttribute : DiagGroup<"NSObject-attribute">; 460288943Sdimdef IndependentClassAttribute : DiagGroup<"IndependentClass-attribute">; 461276479Sdimdef UnknownAttributes : DiagGroup<"unknown-attributes">; 462234353Sdimdef IgnoredAttributes : DiagGroup<"ignored-attributes">; 463276479Sdimdef Attributes : DiagGroup<"attributes", [UnknownAttributes, 464276479Sdim IgnoredAttributes]>; 465288943Sdimdef UnknownSanitizers : DiagGroup<"unknown-sanitizers">; 466234353Sdimdef UnnamedTypeTemplateArgs : DiagGroup<"unnamed-type-template-args", 467234353Sdim [CXX98CompatUnnamedTypeTemplateArgs]>; 468261991Sdimdef UnsupportedFriend : DiagGroup<"unsupported-friend">; 469193725Seddef UnusedArgument : DiagGroup<"unused-argument">; 470276479Sdimdef UnusedCommandLineArgument : DiagGroup<"unused-command-line-argument">; 471280031Sdimdef IgnoredOptimizationArgument : DiagGroup<"ignored-optimization-argument">; 472280031Sdimdef InvalidCommandLineArgument : DiagGroup<"invalid-command-line-argument", 473280031Sdim [IgnoredOptimizationArgument]>; 474226633Sdimdef UnusedComparison : DiagGroup<"unused-comparison">; 475207619Srdivackydef UnusedExceptionParameter : DiagGroup<"unused-exception-parameter">; 476221345Sdimdef UnneededInternalDecl : DiagGroup<"unneeded-internal-declaration">; 477221345Sdimdef UnneededMemberFunction : DiagGroup<"unneeded-member-function">; 478239462Sdimdef UnusedPrivateField : DiagGroup<"unused-private-field">; 479221345Sdimdef UnusedFunction : DiagGroup<"unused-function", [UnneededInternalDecl]>; 480221345Sdimdef UnusedMemberFunction : DiagGroup<"unused-member-function", 481221345Sdim [UnneededMemberFunction]>; 482193725Seddef UnusedLabel : DiagGroup<"unused-label">; 483193725Seddef UnusedParameter : DiagGroup<"unused-parameter">; 484226633Sdimdef UnusedResult : DiagGroup<"unused-result">; 485280031Sdimdef PotentiallyEvaluatedExpression : DiagGroup<"potentially-evaluated-expression">; 486280031Sdimdef UnevaluatedExpression : DiagGroup<"unevaluated-expression", 487280031Sdim [PotentiallyEvaluatedExpression]>; 488280031Sdimdef UnusedValue : DiagGroup<"unused-value", [UnusedComparison, UnusedResult, 489280031Sdim UnevaluatedExpression]>; 490261991Sdimdef UnusedConstVariable : DiagGroup<"unused-const-variable">; 491261991Sdimdef UnusedVariable : DiagGroup<"unused-variable", 492261991Sdim [UnusedConstVariable]>; 493280031Sdimdef UnusedLocalTypedef : DiagGroup<"unused-local-typedef">; 494261991Sdimdef UnusedPropertyIvar : DiagGroup<"unused-property-ivar">; 495280031Sdimdef UnusedGetterReturnValue : DiagGroup<"unused-getter-return-value">; 496218893Sdimdef UsedButMarkedUnused : DiagGroup<"used-but-marked-unused">; 497226633Sdimdef UserDefinedLiterals : DiagGroup<"user-defined-literals">; 498314564Sdimdef UserDefinedWarnings : DiagGroup<"user-defined-warnings">; 499198092Srdivackydef Reorder : DiagGroup<"reorder">; 500194613Seddef UndeclaredSelector : DiagGroup<"undeclared-selector">; 501218893Sdimdef ImplicitAtomic : DiagGroup<"implicit-atomic-properties">; 502218893Sdimdef CustomAtomic : DiagGroup<"custom-atomic-properties">; 503218893Sdimdef AtomicProperties : DiagGroup<"atomic-properties", 504218893Sdim [ImplicitAtomic, CustomAtomic]>; 505224145Sdimdef ARCUnsafeRetainedAssign : DiagGroup<"arc-unsafe-retained-assign">; 506224145Sdimdef ARCRetainCycles : DiagGroup<"arc-retain-cycles">; 507224145Sdimdef ARCNonPodMemAccess : DiagGroup<"arc-non-pod-memaccess">; 508224145Sdimdef AutomaticReferenceCounting : DiagGroup<"arc", 509243830Sdim [ARCUnsafeRetainedAssign, 510224145Sdim ARCRetainCycles, 511224145Sdim ARCNonPodMemAccess]>; 512243830Sdimdef ARCRepeatedUseOfWeakMaybe : DiagGroup<"arc-maybe-repeated-use-of-weak">; 513243830Sdimdef ARCRepeatedUseOfWeak : DiagGroup<"arc-repeated-use-of-weak", 514243830Sdim [ARCRepeatedUseOfWeakMaybe]>; 515314564Sdimdef BlockCaptureAutoReleasing : DiagGroup<"block-capture-autoreleasing">; 516261991Sdimdef ObjCBridge : DiagGroup<"bridge-cast">; 517261991Sdim 518276479Sdimdef DeallocInCategory:DiagGroup<"dealloc-in-category">; 519261991Sdimdef SelectorTypeMismatch : DiagGroup<"selector-type-mismatch">; 520261991Sdimdef Selector : DiagGroup<"selector", [SelectorTypeMismatch]>; 521206084Srdivackydef Protocol : DiagGroup<"protocol">; 522280031Sdimdef AtProtocol : DiagGroup<"at-protocol">; 523280031Sdimdef PropertyAccessDotSyntax: DiagGroup<"property-access-dot-syntax">; 524280031Sdimdef PropertyAttr : DiagGroup<"property-attribute-mismatch">; 525198092Srdivackydef SuperSubClassMismatch : DiagGroup<"super-class-method-mismatch">; 526226633Sdimdef OverridingMethodMismatch : DiagGroup<"overriding-method-mismatch">; 527200583Srdivackydef VariadicMacros : DiagGroup<"variadic-macros">; 528234353Sdimdef VectorConversion : DiagGroup<"vector-conversion">; // clang specific 529234353Sdimdef VexingParse : DiagGroup<"vexing-parse">; 530208600Srdivackydef VLA : DiagGroup<"vla">; 531249423Sdimdef VLAExtension : DiagGroup<"vla-extension">; 532193326Seddef VolatileRegisterVar : DiagGroup<"volatile-register-var">; 533234353Sdimdef Visibility : DiagGroup<"visibility">; 534243830Sdimdef ZeroLengthArray : DiagGroup<"zero-length-array">; 535261991Sdimdef GNUZeroLineDirective : DiagGroup<"gnu-zero-line-directive">; 536261991Sdimdef GNUZeroVariadicMacroArguments : DiagGroup<"gnu-zero-variadic-macro-arguments">; 537276479Sdimdef Fallback : DiagGroup<"fallback">; 538221345Sdim 539276479Sdim// This covers both the deprecated case (in C++98) 540276479Sdim// and the extension case (in C++11 onwards). 541276479Sdimdef WritableStrings : DiagGroup<"writable-strings", [DeprecatedWritableStr]>; 542276479Sdim 543221345Sdim// GCC calls -Wdeprecated-writable-strings -Wwrite-strings. 544276479Sdim// 545276479Sdim// Bizarrely, this warning flag enables -fconst-strings in C. This is 546276479Sdim// GCC-compatible, but really weird. 547276479Sdim// 548276479Sdim// FIXME: Should this affect C++11 (where this is an error, 549276479Sdim// not just deprecated) or not? 550276479Sdimdef GCCWriteStrings : DiagGroup<"write-strings" , [WritableStrings]>; 551221345Sdim 552198092Srdivackydef CharSubscript : DiagGroup<"char-subscripts">; 553218893Sdimdef LargeByValueCopy : DiagGroup<"large-by-value-copy">; 554221345Sdimdef DuplicateArgDecl : DiagGroup<"duplicate-method-arg">; 555314564Sdimdef SignedEnumBitfield : DiagGroup<"signed-enum-bitfield">; 556193326Sed 557276479Sdim// Unreachable code warning groups. 558276479Sdim// 559276479Sdim// The goal is make -Wunreachable-code on by default, in -Wall, or at 560276479Sdim// least actively used, with more noisy versions of the warning covered 561276479Sdim// under separate flags. 562276479Sdim// 563276479Sdimdef UnreachableCodeLoopIncrement : DiagGroup<"unreachable-code-loop-increment">; 564276479Sdimdef UnreachableCode : DiagGroup<"unreachable-code", 565276479Sdim [UnreachableCodeLoopIncrement]>; 566276479Sdimdef UnreachableCodeBreak : DiagGroup<"unreachable-code-break">; 567276479Sdimdef UnreachableCodeReturn : DiagGroup<"unreachable-code-return">; 568276479Sdimdef UnreachableCodeAggressive : DiagGroup<"unreachable-code-aggressive", 569276479Sdim [UnreachableCode, 570276479Sdim UnreachableCodeBreak, 571276479Sdim UnreachableCodeReturn]>; 572276479Sdim 573193326Sed// Aggregation warning settings. 574193326Sed 575276479Sdim// Populate -Waddress with warnings from other groups. 576276479Sdimdef : DiagGroup<"address", [PointerBoolConversion, 577276479Sdim StringCompare, 578276479Sdim TautologicalPointerCompare]>; 579276479Sdim 580199482Srdivacky// -Widiomatic-parentheses contains warnings about 'idiomatic' 581221345Sdim// missing parentheses; it is off by default. We do not include it 582221345Sdim// in -Wparentheses because most users who use -Wparentheses explicitly 583221345Sdim// do not want these warnings. 584226633Sdimdef ParenthesesOnEquality : DiagGroup<"parentheses-equality">; 585218893Sdimdef Parentheses : DiagGroup<"parentheses", 586224145Sdim [LogicalOpParentheses, 587261991Sdim LogicalNotParentheses, 588226633Sdim BitwiseOpParentheses, 589243830Sdim ShiftOpParentheses, 590251662Sdim OverloadedShiftOpParentheses, 591234353Sdim ParenthesesOnEquality, 592234353Sdim DanglingElse]>; 593193326Sed 594218893Sdim// -Wconversion has its own warnings, but we split a few out for 595218893Sdim// legacy reasons: 596218893Sdim// - some people want just 64-to-32 warnings 597218893Sdim// - conversion warnings with constant sources are on by default 598218893Sdim// - conversion warnings for literals are on by default 599218893Sdim// - bool-to-pointer conversion warnings are on by default 600234353Sdim// - __null-to-integer conversion warnings are on by default 601199482Srdivackydef Conversion : DiagGroup<"conversion", 602243830Sdim [BoolConversion, 603234353Sdim ConstantConversion, 604243830Sdim EnumConversion, 605276479Sdim FloatConversion, 606243830Sdim Shorten64To32, 607243830Sdim IntConversion, 608234353Sdim LiteralConversion, 609243830Sdim NonLiteralNullConversion, // (1-1)->pointer (etc) 610243830Sdim NullConversion, // NULL->non-pointer 611276479Sdim ObjCLiteralConversion, 612234353Sdim SignConversion, 613243830Sdim StringConversion]>, 614208600Srdivacky DiagCategory<"Value Conversion Issue">; 615199482Srdivacky 616193725Seddef Unused : DiagGroup<"unused", 617193725Sed [UnusedArgument, UnusedFunction, UnusedLabel, 618207619Srdivacky // UnusedParameter, (matches GCC's behavior) 619212904Sdim // UnusedMemberFunction, (clean-up llvm before enabling) 620280031Sdim UnusedPrivateField, UnusedLocalTypedef, 621261991Sdim UnusedValue, UnusedVariable, UnusedPropertyIvar]>, 622208600Srdivacky DiagCategory<"Unused Entity Issue">; 623193725Sed 624193326Sed// Format settings. 625226633Sdimdef FormatInvalidSpecifier : DiagGroup<"format-invalid-specifier">; 626219077Sdimdef FormatSecurity : DiagGroup<"format-security">; 627234353Sdimdef FormatNonStandard : DiagGroup<"format-non-iso">; 628224145Sdimdef FormatY2K : DiagGroup<"format-y2k">; 629288943Sdimdef FormatPedantic : DiagGroup<"format-pedantic">; 630219077Sdimdef Format : DiagGroup<"format", 631219077Sdim [FormatExtraArgs, FormatZeroLength, NonNull, 632226633Sdim FormatSecurity, FormatY2K, FormatInvalidSpecifier]>, 633208600Srdivacky DiagCategory<"Format String Issue">; 634276479Sdimdef FormatNonLiteral : DiagGroup<"format-nonliteral">; 635193326Seddef Format2 : DiagGroup<"format=2", 636193326Sed [FormatNonLiteral, FormatSecurity, FormatY2K]>; 637193326Sed 638239462Sdimdef TypeSafety : DiagGroup<"type-safety">; 639239462Sdim 640314564Sdimdef IncompatibleExceptionSpec : DiagGroup<"incompatible-exception-spec">; 641314564Sdim 642261991Sdimdef IntToVoidPointerCast : DiagGroup<"int-to-void-pointer-cast">; 643261991Sdimdef IntToPointerCast : DiagGroup<"int-to-pointer-cast", 644261991Sdim [IntToVoidPointerCast]>; 645243830Sdim 646288943Sdimdef Move : DiagGroup<"move", [PessimizingMove, RedundantMove, SelfMove]>; 647288943Sdim 648194613Seddef Extra : DiagGroup<"extra", [ 649205219Srdivacky MissingFieldInitializers, 650210299Sed IgnoredQualifiers, 651210299Sed InitializerOverrides, 652199482Srdivacky SemiBeforeMethodBody, 653226633Sdim MissingMethodReturnType, 654199482Srdivacky SignCompare, 655194613Sed UnusedParameter 656194613Sed ]>; 657193326Sed 658193326Seddef Most : DiagGroup<"most", [ 659207619Srdivacky CharSubscript, 660193326Sed Comment, 661223017Sdim DeleteNonVirtualDtor, 662296417Sdim ForLoopAnalysis, 663193326Sed Format, 664193326Sed Implicit, 665288943Sdim InfiniteRecursion, 666193326Sed MismatchedTags, 667204962Srdivacky MissingBraces, 668288943Sdim Move, 669193326Sed MultiChar, 670207619Srdivacky Reorder, 671198092Srdivacky ReturnType, 672218893Sdim SelfAssignment, 673280031Sdim SelfMove, 674224145Sdim SizeofArrayArgument, 675249423Sdim SizeofArrayDecay, 676234353Sdim StringPlusInt, 677193326Sed Trigraphs, 678193326Sed Uninitialized, 679193326Sed UnknownPragmas, 680207619Srdivacky Unused, 681218893Sdim VolatileRegisterVar, 682226633Sdim ObjCMissingSuperCalls, 683276479Sdim ObjCDesignatedInit, 684239462Sdim OverloadedVirtual, 685239462Sdim PrivateExtern, 686261991Sdim SelTypeCast, 687314564Sdim ExternCCompat, 688314564Sdim UserDefinedWarnings 689193326Sed ]>; 690193326Sed 691226633Sdim// Thread Safety warnings 692239462Sdimdef ThreadSafetyAttributes : DiagGroup<"thread-safety-attributes">; 693243830Sdimdef ThreadSafetyAnalysis : DiagGroup<"thread-safety-analysis">; 694243830Sdimdef ThreadSafetyPrecise : DiagGroup<"thread-safety-precise">; 695280031Sdimdef ThreadSafetyReference : DiagGroup<"thread-safety-reference">; 696280031Sdimdef ThreadSafetyNegative : DiagGroup<"thread-safety-negative">; 697243830Sdimdef ThreadSafety : DiagGroup<"thread-safety", 698243830Sdim [ThreadSafetyAttributes, 699243830Sdim ThreadSafetyAnalysis, 700280031Sdim ThreadSafetyPrecise, 701280031Sdim ThreadSafetyReference]>; 702280031Sdimdef ThreadSafetyVerbose : DiagGroup<"thread-safety-verbose">; 703249423Sdimdef ThreadSafetyBeta : DiagGroup<"thread-safety-beta">; 704226633Sdim 705261991Sdim// Uniqueness Analysis warnings 706261991Sdimdef Consumed : DiagGroup<"consumed">; 707261991Sdim 708234353Sdim// Note that putting warnings in -Wall will not disable them by default. If a 709234353Sdim// warning should be active _only_ when -Wall is passed in, mark it as 710234353Sdim// DefaultIgnore in addition to putting it here. 711296417Sdimdef All : DiagGroup<"all", [Most, Parentheses, Switch, SwitchBool]>; 712193326Sed 713296417Sdim// Warnings that should be in clang-cl /w4. 714296417Sdimdef : DiagGroup<"CL4", [All, Extra]>; 715296417Sdim 716239462Sdim// Warnings enabled by -pedantic. This is magically filled in by TableGen. 717239462Sdimdef Pedantic : DiagGroup<"pedantic">; 718239462Sdim 719193326Sed// Aliases. 720201361Srdivackydef : DiagGroup<"", [Extra]>; // -W = -Wextra 721261991Sdimdef : DiagGroup<"endif-labels", [ExtraTokens]>; // -Wendif-labels=-Wextra-tokens 722201361Srdivackydef : DiagGroup<"comments", [Comment]>; // -Wcomments = -Wcomment 723234353Sdimdef : DiagGroup<"conversion-null", 724234353Sdim [NullConversion]>; // -Wconversion-null = -Wnull-conversion 725234353Sdimdef : DiagGroup<"bool-conversions", 726234353Sdim [BoolConversion]>; // -Wbool-conversions = -Wbool-conversion 727234353Sdimdef : DiagGroup<"int-conversions", 728234353Sdim [IntConversion]>; // -Wint-conversions = -Wint-conversion 729234353Sdimdef : DiagGroup<"vector-conversions", 730234353Sdim [VectorConversion]>; // -Wvector-conversions = -Wvector-conversion 731280031Sdimdef : DiagGroup<"unused-local-typedefs", [UnusedLocalTypedef]>; 732280031Sdim // -Wunused-local-typedefs = -Wunused-local-typedef 733193326Sed 734199482Srdivacky// A warning group for warnings that we want to have on by default in clang, 735199482Srdivacky// but which aren't on by default in GCC. 736199482Srdivackydef NonGCC : DiagGroup<"non-gcc", 737204962Srdivacky [SignCompare, Conversion, LiteralRange]>; 738206084Srdivacky 739226633Sdim// A warning group for warnings about using C++11 features as extensions in 740218893Sdim// earlier C++ versions. 741296417Sdimdef CXX11 : DiagGroup<"c++11-extensions", [CXX11ExtraSemi, CXX11InlineNamespace, 742296417Sdim CXX11LongLong]>; 743243830Sdim 744280031Sdim// A warning group for warnings about using C++14 features as extensions in 745251662Sdim// earlier C++ versions. 746296417Sdimdef CXX14 : DiagGroup<"c++14-extensions", [CXX14BinaryLiteral]>; 747251662Sdim 748276479Sdim// A warning group for warnings about using C++1z features as extensions in 749276479Sdim// earlier C++ versions. 750276479Sdimdef CXX1z : DiagGroup<"c++1z-extensions">; 751276479Sdim 752226633Sdimdef : DiagGroup<"c++0x-extensions", [CXX11]>; 753280031Sdimdef : DiagGroup<"c++1y-extensions", [CXX14]>; 754280031Sdim 755223017Sdimdef DelegatingCtorCycles : 756223017Sdim DiagGroup<"delegating-ctor-cycles">; 757218893Sdim 758234353Sdim// A warning group for warnings about using C11 features as extensions. 759234353Sdimdef C11 : DiagGroup<"c11-extensions">; 760226633Sdim 761234353Sdim// A warning group for warnings about using C99 features as extensions. 762234353Sdimdef C99 : DiagGroup<"c99-extensions">; 763234353Sdim 764206084Srdivacky// A warning group for warnings about GCC extensions. 765261991Sdimdef GNU : DiagGroup<"gnu", [GNUAlignofExpression, GNUAnonymousStruct, 766296417Sdim GNUAutoType, 767261991Sdim GNUBinaryLiteral, GNUCaseRange, 768261991Sdim GNUComplexInteger, GNUCompoundLiteralInitializer, 769261991Sdim GNUConditionalOmittedOperand, GNUDesignator, 770261991Sdim GNUEmptyInitializer, GNUEmptyStruct, 771261991Sdim VLAExtension, GNUFlexibleArrayInitializer, 772261991Sdim GNUFlexibleArrayUnionMember, GNUFoldingConstant, 773296417Sdim GNUImaginaryConstant, GNUIncludeNext, 774296417Sdim GNULabelsAsValue, 775261991Sdim RedeclaredClassMember, GNURedeclaredEnum, 776261991Sdim GNUStatementExpression, GNUStaticFloatInit, 777261991Sdim GNUStringLiteralOperatorTemplate, 778261991Sdim GNUUnionCast, GNUVariableSizedTypeNotAtEnd, 779261991Sdim ZeroLengthArray, GNUZeroLineDirective, 780261991Sdim GNUZeroVariadicMacroArguments]>; 781234353Sdim// A warning group for warnings about code that clang accepts but gcc doesn't. 782234353Sdimdef GccCompat : DiagGroup<"gcc-compat">; 783218893Sdim 784296417Sdim// Warnings for Microsoft extensions. 785296417Sdimdef MicrosoftCharize : DiagGroup<"microsoft-charize">; 786296417Sdimdef MicrosoftInclude : DiagGroup<"microsoft-include">; 787296417Sdimdef MicrosoftCppMacro : DiagGroup<"microsoft-cpp-macro">; 788296417Sdimdef MicrosoftFixedEnum : DiagGroup<"microsoft-fixed-enum">; 789296417Sdimdef MicrosoftSealed : DiagGroup<"microsoft-sealed">; 790296417Sdimdef MicrosoftUnqualifiedFriend : DiagGroup<"microsoft-unqualified-friend">; 791296417Sdimdef MicrosoftExceptionSpec : DiagGroup<"microsoft-exception-spec">; 792296417Sdimdef MicrosoftUsingDecl : DiagGroup<"microsoft-using-decl">; 793296417Sdimdef MicrosoftMutableReference : DiagGroup<"microsoft-mutable-reference">; 794296417Sdimdef MicrosoftPureDefinition : DiagGroup<"microsoft-pure-definition">; 795296417Sdimdef MicrosoftUnionMemberReference : DiagGroup< 796296417Sdim "microsoft-union-member-reference">; 797296417Sdimdef MicrosoftExplicitConstructorCall : DiagGroup< 798296417Sdim "microsoft-explicit-constructor-call">; 799296417Sdimdef MicrosoftEnumValue : DiagGroup<"microsoft-enum-value">; 800296417Sdimdef MicrosoftDefaultArgRedefinition : 801296417Sdim DiagGroup<"microsoft-default-arg-redefinition">; 802296417Sdimdef MicrosoftTemplate : DiagGroup<"microsoft-template">; 803309124Sdimdef MicrosoftInconsistentDllImport : DiagGroup<"inconsistent-dllimport">; 804296417Sdimdef MicrosoftRedeclareStatic : DiagGroup<"microsoft-redeclare-static">; 805296417Sdimdef MicrosoftEnumForwardReference : 806296417Sdim DiagGroup<"microsoft-enum-forward-reference">; 807296417Sdimdef MicrosoftGoto : DiagGroup<"microsoft-goto">; 808296417Sdimdef MicrosoftFlexibleArray : DiagGroup<"microsoft-flexible-array">; 809296417Sdimdef MicrosoftExtraQualification : DiagGroup<"microsoft-extra-qualification">; 810296417Sdimdef MicrosoftCast : DiagGroup<"microsoft-cast">; 811296417Sdimdef MicrosoftConstInit : DiagGroup<"microsoft-const-init">; 812296417Sdimdef MicrosoftVoidPseudoDtor : DiagGroup<"microsoft-void-pseudo-dtor">; 813296417Sdimdef MicrosoftAnonTag : DiagGroup<"microsoft-anon-tag">; 814296417Sdimdef MicrosoftCommentPaste : DiagGroup<"microsoft-comment-paste">; 815296417Sdimdef MicrosoftEndOfFile : DiagGroup<"microsoft-end-of-file">; 816296417Sdim// Aliases. 817296417Sdimdef : DiagGroup<"msvc-include", [MicrosoftInclude]>; 818296417Sdim // -Wmsvc-include = -Wmicrosoft-include 819224145Sdim 820296417Sdim// Warnings group for warnings about Microsoft extensions. 821296417Sdimdef Microsoft : DiagGroup<"microsoft", 822296417Sdim [MicrosoftCharize, MicrosoftInclude, MicrosoftCppMacro, MicrosoftFixedEnum, 823296417Sdim MicrosoftSealed, MicrosoftUnqualifiedFriend, MicrosoftExceptionSpec, 824296417Sdim MicrosoftUsingDecl, MicrosoftMutableReference, MicrosoftPureDefinition, 825296417Sdim MicrosoftUnionMemberReference, MicrosoftExplicitConstructorCall, 826296417Sdim MicrosoftEnumValue, MicrosoftDefaultArgRedefinition, MicrosoftTemplate, 827296417Sdim MicrosoftRedeclareStatic, MicrosoftEnumForwardReference, MicrosoftGoto, 828296417Sdim MicrosoftFlexibleArray, MicrosoftExtraQualification, MicrosoftCast, 829296417Sdim MicrosoftConstInit, MicrosoftVoidPseudoDtor, MicrosoftAnonTag, 830309124Sdim MicrosoftCommentPaste, MicrosoftEndOfFile, 831309124Sdim MicrosoftInconsistentDllImport]>; 832296417Sdim 833309124Sdimdef ClangClPch : DiagGroup<"clang-cl-pch">; 834309124Sdim 835224145Sdimdef ObjCNonUnifiedException : DiagGroup<"objc-nonunified-exceptions">; 836224145Sdim 837226633Sdimdef ObjCProtocolMethodImpl : DiagGroup<"objc-protocol-method-implementation">; 838234353Sdim 839249423Sdimdef ObjCNoPropertyAutoSynthesis : DiagGroup<"objc-property-synthesis">; 840249423Sdim 841234353Sdim// ObjC API warning groups. 842234353Sdimdef ObjCRedundantLiteralUse : DiagGroup<"objc-redundant-literal-use">; 843234353Sdimdef ObjCRedundantAPIUse : DiagGroup<"objc-redundant-api-use", [ 844234353Sdim ObjCRedundantLiteralUse 845234353Sdim ]>; 846234353Sdim 847234353Sdimdef ObjCCocoaAPI : DiagGroup<"objc-cocoa-api", [ 848234353Sdim ObjCRedundantAPIUse 849234353Sdim ]>; 850239462Sdim 851239462Sdimdef ObjCStringComparison : DiagGroup<"objc-string-compare">; 852261991Sdimdef ObjCStringConcatenation : DiagGroup<"objc-string-concatenation">; 853239462Sdimdef ObjCLiteralComparison : DiagGroup<"objc-literal-compare", [ 854239462Sdim ObjCStringComparison 855239462Sdim ]>; 856243830Sdim 857243830Sdim// Inline ASM warnings. 858243830Sdimdef ASMOperandWidths : DiagGroup<"asm-operand-widths">; 859314564Sdimdef ASMIgnoredQualifier : DiagGroup<"asm-ignored-qualifier">; 860243830Sdimdef ASM : DiagGroup<"asm", [ 861314564Sdim ASMOperandWidths, ASMIgnoredQualifier 862243830Sdim ]>; 863249423Sdim 864249423Sdim// OpenMP warnings. 865249423Sdimdef SourceUsesOpenMP : DiagGroup<"source-uses-openmp">; 866276479Sdimdef OpenMPClauses : DiagGroup<"openmp-clauses">; 867276479Sdimdef OpenMPLoopForm : DiagGroup<"openmp-loop-form">; 868309124Sdimdef OpenMPTarget : DiagGroup<"openmp-target">; 869276479Sdim 870276479Sdim// Backend warnings. 871276479Sdimdef BackendInlineAsm : DiagGroup<"inline-asm">; 872276479Sdimdef BackendFrameLargerThanEQ : DiagGroup<"frame-larger-than=">; 873276479Sdimdef BackendPlugin : DiagGroup<"backend-plugin">; 874276479Sdimdef RemarkBackendPlugin : DiagGroup<"remark-backend-plugin">; 875276479Sdimdef BackendOptimizationRemark : DiagGroup<"pass">; 876276479Sdimdef BackendOptimizationRemarkMissed : DiagGroup<"pass-missed">; 877276479Sdimdef BackendOptimizationRemarkAnalysis : DiagGroup<"pass-analysis">; 878276479Sdimdef BackendOptimizationFailure : DiagGroup<"pass-failed">; 879276479Sdim 880276479Sdim// Instrumentation based profiling warnings. 881276479Sdimdef ProfileInstrOutOfDate : DiagGroup<"profile-instr-out-of-date">; 882276479Sdimdef ProfileInstrUnprofiled : DiagGroup<"profile-instr-unprofiled">; 883276479Sdim 884280031Sdim// AddressSanitizer frontent instrumentation remarks. 885280031Sdimdef SanitizeAddressRemarks : DiagGroup<"sanitize-address">; 886280031Sdim 887280031Sdim// Issues with serialized diagnostics. 888280031Sdimdef SerializedDiagnostics : DiagGroup<"serialized-diagnostics">; 889280031Sdim 890276479Sdim// A warning group for warnings about code that clang accepts when 891276479Sdim// compiling CUDA C/C++ but which is not compatible with the CUDA spec. 892276479Sdimdef CudaCompat : DiagGroup<"cuda-compat">; 893280031Sdim 894280031Sdim// A warning group for things that will change semantics in the future. 895280031Sdimdef FutureCompat : DiagGroup<"future-compat">; 896296417Sdim 897296417Sdimdef InvalidOrNonExistentDirectory : DiagGroup<"invalid-or-nonexistent-directory">; 898296417Sdim 899296417Sdimdef OptionIgnored : DiagGroup<"option-ignored">; 900309124Sdim 901309124Sdimdef UnknownArgument : DiagGroup<"unknown-argument">; 902314564Sdim 903314564Sdim// A warning group for warnings about code that clang accepts when 904314564Sdim// compiling OpenCL C/C++ but which is not compatible with the SPIR spec. 905314564Sdimdef SpirCompat : DiagGroup<"spir-compat">; 906