1193326Sed//==--- DiagnosticGroups.td - Diagnostic Group Definitions ----------------===// 2193326Sed// 3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4353358Sdim// See https://llvm.org/LICENSE.txt for license information. 5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6193326Sed// 7193326Sed//===----------------------------------------------------------------------===// 8193326Sed 9193326Seddef ImplicitFunctionDeclare : DiagGroup<"implicit-function-declaration">; 10193326Seddef ImplicitInt : DiagGroup<"implicit-int">; 11193326Sed 12193326Sed// Aggregation warning settings. 13193326Seddef Implicit : DiagGroup<"implicit", [ 14193326Sed ImplicitFunctionDeclare, 15193326Sed ImplicitInt 16193326Sed]>; 17193326Sed 18204643Srdivacky// Empty DiagGroups are recognized by clang but ignored. 19353358Sdimdef ODR : DiagGroup<"odr">; 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">; 30327952Sdimdef AutoDisableVptrSanitizer : DiagGroup<"auto-disable-vptr-sanitizer">; 31221345Sdimdef Availability : DiagGroup<"availability">; 32239462Sdimdef Section : DiagGroup<"section">; 33234353Sdimdef AutoImport : DiagGroup<"auto-import">; 34341825Sdimdef FrameworkHdrQuotedInclude : DiagGroup<"quoted-include-in-framework-header">; 35341825Sdimdef FrameworkIncludePrivateFromPublic : 36341825Sdim DiagGroup<"framework-include-private-from-public">; 37341825Sdimdef FrameworkHdrAtImport : DiagGroup<"atimport-in-framework-header">; 38296417Sdimdef CXX14BinaryLiteral : DiagGroup<"c++14-binary-literal">; 39327952Sdimdef CXXPre14CompatBinaryLiteral : DiagGroup<"c++98-c++11-compat-binary-literal">; 40261991Sdimdef GNUBinaryLiteral : DiagGroup<"gnu-binary-literal">; 41327952Sdimdef BinaryLiteral : DiagGroup<"binary-literal", [CXX14BinaryLiteral, 42327952Sdim CXXPre14CompatBinaryLiteral, 43327952Sdim GNUBinaryLiteral]>; 44261991Sdimdef GNUCompoundLiteralInitializer : DiagGroup<"gnu-compound-literal-initializer">; 45251662Sdimdef BitFieldConstantConversion : DiagGroup<"bitfield-constant-conversion">; 46321369Sdimdef BitFieldEnumConversion : DiagGroup<"bitfield-enum-conversion">; 47296417Sdimdef BitFieldWidth : DiagGroup<"bitfield-width">; 48321369Sdimdef CoroutineMissingUnhandledException : 49321369Sdim DiagGroup<"coroutine-missing-unhandled-exception">; 50321369Sdimdef Coroutine : DiagGroup<"coroutine", [CoroutineMissingUnhandledException]>; 51353358Sdimdef ObjCBoolConstantConversion : DiagGroup<"objc-bool-constant-conversion">; 52353358Sdimdef ConstantConversion : DiagGroup<"constant-conversion", 53353358Sdim [BitFieldConstantConversion, 54353358Sdim ObjCBoolConstantConversion]>; 55234353Sdimdef LiteralConversion : DiagGroup<"literal-conversion">; 56234353Sdimdef StringConversion : DiagGroup<"string-conversion">; 57234353Sdimdef SignConversion : DiagGroup<"sign-conversion">; 58276479Sdimdef PointerBoolConversion : DiagGroup<"pointer-bool-conversion">; 59276479Sdimdef UndefinedBoolConversion : DiagGroup<"undefined-bool-conversion">; 60276479Sdimdef BoolConversion : DiagGroup<"bool-conversion", [PointerBoolConversion, 61276479Sdim UndefinedBoolConversion]>; 62234353Sdimdef IntConversion : DiagGroup<"int-conversion">; 63360784Sdimdef DeprecatedEnumCompareConditional : 64360784Sdim DiagGroup<"deprecated-enum-compare-conditional">; 65360784Sdimdef EnumCompareConditional : DiagGroup<"enum-compare-conditional", 66360784Sdim [DeprecatedEnumCompareConditional]>; 67360784Sdimdef EnumCompareSwitch : DiagGroup<"enum-compare-switch">; 68360784Sdimdef DeprecatedEnumCompare : DiagGroup<"deprecated-enum-compare">; 69360784Sdimdef EnumCompare : DiagGroup<"enum-compare", [EnumCompareSwitch, 70360784Sdim DeprecatedEnumCompare]>; 71360784Sdimdef DeprecatedAnonEnumEnumConversion : DiagGroup<"deprecated-anon-enum-enum-conversion">; 72360784Sdimdef DeprecatedEnumEnumConversion : DiagGroup<"deprecated-enum-enum-conversion">; 73360784Sdimdef DeprecatedEnumFloatConversion : DiagGroup<"deprecated-enum-float-conversion">; 74360784Sdimdef AnonEnumEnumConversion : DiagGroup<"anon-enum-enum-conversion", 75360784Sdim [DeprecatedAnonEnumEnumConversion]>; 76360784Sdimdef EnumEnumConversion : DiagGroup<"enum-enum-conversion", 77360784Sdim [DeprecatedEnumEnumConversion]>; 78360784Sdimdef EnumFloatConversion : DiagGroup<"enum-float-conversion", 79360784Sdim [DeprecatedEnumFloatConversion]>; 80360784Sdimdef EnumConversion : DiagGroup<"enum-conversion", 81360784Sdim [EnumEnumConversion, 82360784Sdim EnumFloatConversion, 83360784Sdim EnumCompareConditional]>; 84360784Sdimdef ObjCSignedCharBoolImplicitIntConversion : 85360784Sdim DiagGroup<"objc-signed-char-bool-implicit-int-conversion">; 86360784Sdimdef ImplicitIntConversion : DiagGroup<"implicit-int-conversion", 87360784Sdim [ObjCSignedCharBoolImplicitIntConversion]>; 88360784Sdimdef ImplicitIntFloatConversion : DiagGroup<"implicit-int-float-conversion">; 89360784Sdimdef ObjCSignedCharBoolImplicitFloatConversion : 90360784Sdim DiagGroup<"objc-signed-char-bool-implicit-float-conversion">; 91360784Sdimdef ImplicitFloatConversion : DiagGroup<"implicit-float-conversion", 92360784Sdim [ImplicitIntFloatConversion, 93360784Sdim ObjCSignedCharBoolImplicitFloatConversion]>; 94353358Sdimdef ImplicitFixedPointConversion : DiagGroup<"implicit-fixed-point-conversion">; 95309124Sdim 96309124Sdimdef FloatOverflowConversion : DiagGroup<"float-overflow-conversion">; 97309124Sdimdef FloatZeroConversion : DiagGroup<"float-zero-conversion">; 98309124Sdimdef FloatConversion : 99309124Sdim DiagGroup<"float-conversion", [FloatOverflowConversion, 100309124Sdim FloatZeroConversion]>; 101309124Sdim 102296417Sdimdef DoublePromotion : DiagGroup<"double-promotion">; 103276479Sdimdef EnumTooLarge : DiagGroup<"enum-too-large">; 104288943Sdimdef UnsupportedNan : DiagGroup<"unsupported-nan">; 105327952Sdimdef UnsupportedAbs : DiagGroup<"unsupported-abs">; 106309124Sdimdef UnsupportedCB : DiagGroup<"unsupported-cb">; 107327952Sdimdef UnsupportedGPOpt : DiagGroup<"unsupported-gpopt">; 108341825Sdimdef UnsupportedTargetOpt : DiagGroup<"unsupported-target-opt">; 109239462Sdimdef NonLiteralNullConversion : DiagGroup<"non-literal-null-conversion">; 110234353Sdimdef NullConversion : DiagGroup<"null-conversion">; 111243830Sdimdef ImplicitConversionFloatingPointToBool : 112243830Sdim DiagGroup<"implicit-conversion-floating-point-to-bool">; 113276479Sdimdef ObjCLiteralConversion : DiagGroup<"objc-literal-conversion">; 114276479Sdimdef MacroRedefined : DiagGroup<"macro-redefined">; 115249423Sdimdef BuiltinMacroRedefined : DiagGroup<"builtin-macro-redefined">; 116227737Sdimdef BuiltinRequiresHeader : DiagGroup<"builtin-requires-header">; 117249423Sdimdef C99Compat : DiagGroup<"c99-compat">; 118212904Sdimdef CXXCompat: DiagGroup<"c++-compat">; 119261991Sdimdef ExternCCompat : DiagGroup<"extern-c-compat">; 120261991Sdimdef KeywordCompat : DiagGroup<"keyword-compat">; 121261991Sdimdef GNUCaseRange : DiagGroup<"gnu-case-range">; 122212904Sdimdef CastAlign : DiagGroup<"cast-align">; 123280031Sdimdef CastQual : DiagGroup<"cast-qual">; 124193326Seddef : DiagGroup<"char-align">; 125193326Seddef Comment : DiagGroup<"comment">; 126261991Sdimdef GNUComplexInteger : DiagGroup<"gnu-complex-integer">; 127261991Sdimdef GNUConditionalOmittedOperand : DiagGroup<"gnu-conditional-omitted-operand">; 128249423Sdimdef ConfigMacros : DiagGroup<"config-macros">; 129199482Srdivackydef : DiagGroup<"ctor-dtor-privacy">; 130261991Sdimdef GNUStringLiteralOperatorTemplate : 131261991Sdim DiagGroup<"gnu-string-literal-operator-template">; 132309124Sdimdef UndefinedVarTemplate : DiagGroup<"undefined-var-template">; 133309124Sdimdef UndefinedFuncTemplate : DiagGroup<"undefined-func-template">; 134327952Sdimdef MissingNoEscape : DiagGroup<"missing-noescape">; 135212904Sdim 136360784Sdimdef DefaultedFunctionDeleted : DiagGroup<"defaulted-function-deleted">; 137280031Sdimdef DeleteIncomplete : DiagGroup<"delete-incomplete">; 138344779Sdimdef DeleteNonAbstractNonVirtualDtor : DiagGroup<"delete-non-abstract-non-virtual-dtor">; 139344779Sdimdef DeleteAbstractNonVirtualDtor : DiagGroup<"delete-abstract-non-virtual-dtor">; 140344779Sdimdef DeleteNonVirtualDtor : DiagGroup<"delete-non-virtual-dtor", 141344779Sdim [DeleteNonAbstractNonVirtualDtor, 142344779Sdim DeleteAbstractNonVirtualDtor]>; 143243830Sdimdef AbstractFinalClass : DiagGroup<"abstract-final-class">; 144360784Sdimdef FinalDtorNonFinalClass : DiagGroup<"final-dtor-non-final-class">; 145223017Sdim 146261991Sdimdef CXX11CompatDeprecatedWritableStr : 147261991Sdim DiagGroup<"c++11-compat-deprecated-writable-strings">; 148261991Sdim 149360784Sdimdef DeprecatedArrayCompare : DiagGroup<"deprecated-array-compare">; 150296417Sdimdef DeprecatedAttributes : DiagGroup<"deprecated-attributes">; 151360784Sdimdef DeprecatedCommaSubscript : DiagGroup<"deprecated-comma-subscript">; 152360784Sdimdef DeprecatedCopy : DiagGroup<"deprecated-copy">; 153360784Sdimdef DeprecatedCopyDtor : DiagGroup<"deprecated-copy-dtor">; 154212904Sdimdef DeprecatedDeclarations : DiagGroup<"deprecated-declarations">; 155276479Sdimdef UnavailableDeclarations : DiagGroup<"unavailable-declarations">; 156321369Sdimdef UnguardedAvailabilityNew : DiagGroup<"unguarded-availability-new">; 157321369Sdimdef UnguardedAvailability : DiagGroup<"unguarded-availability", 158321369Sdim [UnguardedAvailabilityNew]>; 159314564Sdim// partial-availability is an alias of unguarded-availability. 160314564Sdimdef : DiagGroup<"partial-availability", [UnguardedAvailability]>; 161314564Sdimdef DeprecatedDynamicExceptionSpec 162314564Sdim : DiagGroup<"deprecated-dynamic-exception-spec">; 163261991Sdimdef DeprecatedImplementations :DiagGroup<"deprecated-implementations">; 164261991Sdimdef DeprecatedIncrementBool : DiagGroup<"deprecated-increment-bool">; 165261991Sdimdef DeprecatedRegister : DiagGroup<"deprecated-register">; 166341825Sdimdef DeprecatedThisCapture : DiagGroup<"deprecated-this-capture">; 167360784Sdimdef DeprecatedVolatile : DiagGroup<"deprecated-volatile">; 168261991Sdimdef DeprecatedWritableStr : DiagGroup<"deprecated-writable-strings", 169261991Sdim [CXX11CompatDeprecatedWritableStr]>; 170276479Sdim// FIXME: Why is DeprecatedImplementations not in this group? 171360784Sdimdef Deprecated : DiagGroup<"deprecated", [DeprecatedAnonEnumEnumConversion, 172360784Sdim DeprecatedArrayCompare, 173360784Sdim DeprecatedAttributes, 174360784Sdim DeprecatedCommaSubscript, 175360784Sdim DeprecatedCopy, 176360784Sdim DeprecatedCopyDtor, 177296417Sdim DeprecatedDeclarations, 178314564Sdim DeprecatedDynamicExceptionSpec, 179360784Sdim DeprecatedEnumCompare, 180360784Sdim DeprecatedEnumCompareConditional, 181360784Sdim DeprecatedEnumEnumConversion, 182360784Sdim DeprecatedEnumFloatConversion, 183261991Sdim DeprecatedIncrementBool, 184276479Sdim DeprecatedRegister, 185341825Sdim DeprecatedThisCapture, 186360784Sdim DeprecatedVolatile, 187276479Sdim DeprecatedWritableStr]>, 188212904Sdim DiagCategory<"Deprecations">; 189212904Sdim 190360784Sdimdef CXX20Designator : DiagGroup<"c++20-designator">; 191360784Sdim// Allow -Wno-c99-designator to be used to turn off all warnings on valid C99 192360784Sdim// designators (including the warning controlled by -Wc++20-designator). 193360784Sdimdef C99Designator : DiagGroup<"c99-designator", [CXX20Designator]>; 194360784Sdimdef GNUDesignator : DiagGroup<"gnu-designator">; 195360784Sdim 196314564Sdimdef DynamicExceptionSpec 197314564Sdim : DiagGroup<"dynamic-exception-spec", [DeprecatedDynamicExceptionSpec]>; 198314564Sdim 199296417Sdimdef LibLTO : DiagGroup<"liblto">; 200193326Seddef : DiagGroup<"disabled-optimization">; 201193326Seddef : DiagGroup<"discard-qual">; 202314564Sdimdef DivZero : DiagGroup<"division-by-zero">; 203314564Sdimdef : DiagGroup<"div-by-zero", [DivZero]>; 204243830Sdim 205239462Sdimdef DocumentationHTML : DiagGroup<"documentation-html">; 206251662Sdimdef DocumentationUnknownCommand : DiagGroup<"documentation-unknown-command">; 207251662Sdimdef DocumentationPedantic : DiagGroup<"documentation-pedantic", 208251662Sdim [DocumentationUnknownCommand]>; 209243830Sdimdef DocumentationDeprecatedSync : DiagGroup<"documentation-deprecated-sync">; 210243830Sdimdef Documentation : DiagGroup<"documentation", 211243830Sdim [DocumentationHTML, 212243830Sdim DocumentationDeprecatedSync]>; 213243830Sdim 214193380Seddef EmptyBody : DiagGroup<"empty-body">; 215288943Sdimdef Exceptions : DiagGroup<"exceptions">; 216288943Sdim 217261991Sdimdef GNUEmptyInitializer : DiagGroup<"gnu-empty-initializer">; 218261991Sdimdef GNUEmptyStruct : DiagGroup<"gnu-empty-struct">; 219193326Seddef ExtraTokens : DiagGroup<"extra-tokens">; 220341825Sdimdef CXX98CompatExtraSemi : DiagGroup<"c++98-compat-extra-semi">; 221239462Sdimdef CXX11ExtraSemi : DiagGroup<"c++11-extra-semi">; 222344779Sdimdef EmptyInitStatement : DiagGroup<"empty-init-stmt">; 223353358Sdimdef ExportUnnamed : DiagGroup<"export-unnamed">; 224344779Sdimdef ExtraSemiStmt : DiagGroup<"extra-semi-stmt", [EmptyInitStatement]>; 225341825Sdimdef ExtraSemi : DiagGroup<"extra-semi", [CXX98CompatExtraSemi, 226341825Sdim CXX11ExtraSemi]>; 227193326Sed 228261991Sdimdef GNUFlexibleArrayInitializer : DiagGroup<"gnu-flexible-array-initializer">; 229261991Sdimdef GNUFlexibleArrayUnionMember : DiagGroup<"gnu-flexible-array-union-member">; 230261991Sdimdef GNUFoldingConstant : DiagGroup<"gnu-folding-constant">; 231193326Seddef FormatExtraArgs : DiagGroup<"format-extra-args">; 232193326Seddef FormatZeroLength : DiagGroup<"format-zero-length">; 233322740Sdim 234322740Sdimdef InvalidIOSDeploymentTarget : DiagGroup<"invalid-ios-deployment-target">; 235322740Sdim 236322740Sdimdef CXX17CompatMangling : DiagGroup<"c++17-compat-mangling">; 237322740Sdimdef : DiagGroup<"c++1z-compat-mangling", [CXX17CompatMangling]>; 238321369Sdim// Name of this warning in GCC. 239322740Sdimdef NoexceptType : DiagGroup<"noexcept-type", [CXX17CompatMangling]>; 240193326Sed 241251662Sdim// Warnings for C++1y code which is not compatible with prior C++ standards. 242280031Sdimdef CXXPre14Compat : DiagGroup<"c++98-c++11-compat">; 243280031Sdimdef CXXPre14CompatPedantic : DiagGroup<"c++98-c++11-compat-pedantic", 244327952Sdim [CXXPre14Compat, 245327952Sdim CXXPre14CompatBinaryLiteral]>; 246327952Sdimdef CXXPre17Compat : DiagGroup<"c++98-c++11-c++14-compat">; 247327952Sdimdef CXXPre17CompatPedantic : DiagGroup<"c++98-c++11-c++14-compat-pedantic", 248327952Sdim [CXXPre17Compat]>; 249360784Sdimdef CXXPre20Compat : DiagGroup<"c++98-c++11-c++14-c++17-compat">; 250360784Sdimdef CXXPre20CompatPedantic : DiagGroup<"c++98-c++11-c++14-c++17-compat-pedantic", 251360784Sdim [CXXPre20Compat]>; 252251662Sdim 253234353Sdimdef CXX98CompatBindToTemporaryCopy : 254234353Sdim DiagGroup<"c++98-compat-bind-to-temporary-copy">; 255234353Sdimdef CXX98CompatLocalTypeTemplateArgs : 256234353Sdim DiagGroup<"c++98-compat-local-type-template-args">; 257234353Sdimdef CXX98CompatUnnamedTypeTemplateArgs : 258234353Sdim DiagGroup<"c++98-compat-unnamed-type-template-args">; 259234353Sdim 260234353Sdimdef CXX98Compat : DiagGroup<"c++98-compat", 261280031Sdim [CXX98CompatLocalTypeTemplateArgs, 262251662Sdim CXX98CompatUnnamedTypeTemplateArgs, 263280031Sdim CXXPre14Compat, 264327952Sdim CXXPre17Compat, 265360784Sdim CXXPre20Compat]>; 266226633Sdim// Warnings for C++11 features which are Extensions in C++98 mode. 267251662Sdimdef CXX98CompatPedantic : DiagGroup<"c++98-compat-pedantic", 268251662Sdim [CXX98Compat, 269280031Sdim CXX98CompatBindToTemporaryCopy, 270341825Sdim CXX98CompatExtraSemi, 271280031Sdim CXXPre14CompatPedantic, 272327952Sdim CXXPre17CompatPedantic, 273360784Sdim CXXPre20CompatPedantic]>; 274208600Srdivacky 275226633Sdimdef CXX11Narrowing : DiagGroup<"c++11-narrowing">; 276234353Sdim 277321369Sdimdef CXX11WarnOverrideDestructor : 278321369Sdim DiagGroup<"inconsistent-missing-destructor-override">; 279280031Sdimdef CXX11WarnOverrideMethod : DiagGroup<"inconsistent-missing-override">; 280280031Sdim 281234353Sdim// Original name of this warning in Clang 282226633Sdimdef : DiagGroup<"c++0x-narrowing", [CXX11Narrowing]>; 283226633Sdim 284234353Sdim// Name of this warning in GCC 285234353Sdimdef : DiagGroup<"narrowing", [CXX11Narrowing]>; 286234353Sdim 287234353Sdimdef CXX11CompatReservedUserDefinedLiteral : 288234353Sdim DiagGroup<"c++11-compat-reserved-user-defined-literal">; 289234353Sdimdef ReservedUserDefinedLiteral : 290234353Sdim DiagGroup<"reserved-user-defined-literal", 291234353Sdim [CXX11CompatReservedUserDefinedLiteral]>; 292234353Sdim 293234353Sdimdef CXX11Compat : DiagGroup<"c++11-compat", 294234353Sdim [CXX11Narrowing, 295251662Sdim CXX11CompatReservedUserDefinedLiteral, 296261991Sdim CXX11CompatDeprecatedWritableStr, 297280031Sdim CXXPre14Compat, 298327952Sdim CXXPre17Compat, 299360784Sdim CXXPre20Compat]>; 300226633Sdimdef : DiagGroup<"c++0x-compat", [CXX11Compat]>; 301251662Sdimdef CXX11CompatPedantic : DiagGroup<"c++11-compat-pedantic", 302327952Sdim [CXX11Compat, 303327952Sdim CXXPre14CompatPedantic, 304327952Sdim CXXPre17CompatPedantic, 305360784Sdim CXXPre20CompatPedantic]>; 306226633Sdim 307327952Sdimdef CXX14Compat : DiagGroup<"c++14-compat", [CXXPre17Compat, 308360784Sdim CXXPre20Compat]>; 309276479Sdimdef CXX14CompatPedantic : DiagGroup<"c++14-compat-pedantic", 310327952Sdim [CXX14Compat, 311327952Sdim CXXPre17CompatPedantic, 312360784Sdim CXXPre20CompatPedantic]>; 313276479Sdim 314322740Sdimdef CXX17Compat : DiagGroup<"c++17-compat", [DeprecatedRegister, 315321369Sdim DeprecatedIncrementBool, 316327952Sdim CXX17CompatMangling, 317360784Sdim CXXPre20Compat]>; 318327952Sdimdef CXX17CompatPedantic : DiagGroup<"c++17-compat-pedantic", 319327952Sdim [CXX17Compat, 320360784Sdim CXXPre20CompatPedantic]>; 321322740Sdimdef : DiagGroup<"c++1z-compat", [CXX17Compat]>; 322296417Sdim 323360784Sdimdef CXX20Compat : DiagGroup<"c++20-compat">; 324360784Sdimdef CXX20CompatPedantic : DiagGroup<"c++20-compat-pedantic", 325360784Sdim [CXX20Compat]>; 326360784Sdimdef : DiagGroup<"c++2a-compat", [CXX20Compat]>; 327360784Sdimdef : DiagGroup<"c++2a-compat-pedantic", [CXX20CompatPedantic]>; 328327952Sdim 329221345Sdimdef ExitTimeDestructors : DiagGroup<"exit-time-destructors">; 330234353Sdimdef FlexibleArrayExtensions : DiagGroup<"flexible-array-extensions">; 331193326Seddef FourByteMultiChar : DiagGroup<"four-char-constants">; 332212904Sdimdef GlobalConstructors : DiagGroup<"global-constructors">; 333360784Sdimdef BitwiseConditionalParentheses: DiagGroup<"bitwise-conditional-parentheses">; 334224145Sdimdef BitwiseOpParentheses: DiagGroup<"bitwise-op-parentheses">; 335218893Sdimdef LogicalOpParentheses: DiagGroup<"logical-op-parentheses">; 336261991Sdimdef LogicalNotParentheses: DiagGroup<"logical-not-parentheses">; 337243830Sdimdef ShiftOpParentheses: DiagGroup<"shift-op-parentheses">; 338251662Sdimdef OverloadedShiftOpParentheses: DiagGroup<"overloaded-shift-op-parentheses">; 339234353Sdimdef DanglingElse: DiagGroup<"dangling-else">; 340249423Sdimdef DanglingField : DiagGroup<"dangling-field">; 341341825Sdimdef DanglingInitializerList : DiagGroup<"dangling-initializer-list">; 342360784Sdimdef DanglingGsl : DiagGroup<"dangling-gsl">; 343341825Sdimdef ReturnStackAddress : DiagGroup<"return-stack-address">; 344341825Sdimdef Dangling : DiagGroup<"dangling", [DanglingField, 345341825Sdim DanglingInitializerList, 346360784Sdim DanglingGsl, 347341825Sdim ReturnStackAddress]>; 348249423Sdimdef DistributedObjectModifiers : DiagGroup<"distributed-object-modifiers">; 349309124Sdimdef ExpansionToDefined : DiagGroup<"expansion-to-defined">; 350288943Sdimdef FlagEnum : DiagGroup<"flag-enum">; 351296417Sdimdef IncrementBool : DiagGroup<"increment-bool", [DeprecatedIncrementBool]>; 352276479Sdimdef InfiniteRecursion : DiagGroup<"infinite-recursion">; 353344779Sdimdef PureVirtualCallFromCtorDtor: DiagGroup<"call-to-pure-virtual-from-ctor-dtor">; 354261991Sdimdef GNUImaginaryConstant : DiagGroup<"gnu-imaginary-constant">; 355210299Seddef IgnoredQualifiers : DiagGroup<"ignored-qualifiers">; 356198092Srdivackydef : DiagGroup<"import">; 357296417Sdimdef GNUIncludeNext : DiagGroup<"gnu-include-next">; 358276479Sdimdef IncompatibleMSStruct : DiagGroup<"incompatible-ms-struct">; 359341825Sdimdef IncompatiblePointerTypesDiscardsQualifiers 360249423Sdim : DiagGroup<"incompatible-pointer-types-discards-qualifiers">; 361314564Sdimdef IncompatibleFunctionPointerTypes 362314564Sdim : DiagGroup<"incompatible-function-pointer-types">; 363249423Sdimdef IncompatiblePointerTypes 364249423Sdim : DiagGroup<"incompatible-pointer-types", 365314564Sdim [IncompatiblePointerTypesDiscardsQualifiers, 366314564Sdim IncompatibleFunctionPointerTypes]>; 367234353Sdimdef IncompleteUmbrella : DiagGroup<"incomplete-umbrella">; 368341825Sdimdef IncompleteFrameworkModuleDeclaration 369341825Sdim : DiagGroup<"incomplete-framework-module-declaration">; 370276479Sdimdef NonModularIncludeInFrameworkModule 371276479Sdim : DiagGroup<"non-modular-include-in-framework-module">; 372276479Sdimdef NonModularIncludeInModule : DiagGroup<"non-modular-include-in-module", 373276479Sdim [NonModularIncludeInFrameworkModule]>; 374280031Sdimdef IncompleteModule : DiagGroup<"incomplete-module", 375280031Sdim [IncompleteUmbrella, NonModularIncludeInModule]>; 376314564Sdimdef PrivateModule : DiagGroup<"private-module">; 377280031Sdim 378296417Sdimdef CXX11InlineNamespace : DiagGroup<"c++11-inline-namespace">; 379249423Sdimdef InvalidNoreturn : DiagGroup<"invalid-noreturn">; 380249423Sdimdef InvalidSourceEncoding : DiagGroup<"invalid-source-encoding">; 381234353Sdimdef KNRPromotedParameter : DiagGroup<"knr-promoted-parameter">; 382193326Seddef : DiagGroup<"init-self">; 383193326Seddef : DiagGroup<"inline">; 384194613Seddef : DiagGroup<"invalid-pch">; 385261991Sdimdef GNULabelsAsValue : DiagGroup<"gnu-label-as-value">; 386204962Srdivackydef LiteralRange : DiagGroup<"literal-range">; 387234353Sdimdef LocalTypeTemplateArgs : DiagGroup<"local-type-template-args", 388234353Sdim [CXX98CompatLocalTypeTemplateArgs]>; 389360784Sdimdef RangeLoopConstruct : DiagGroup<"range-loop-construct">; 390360784Sdimdef RangeLoopBindReference : DiagGroup<"range-loop-bind-reference">; 391360784Sdimdef RangeLoopAnalysis : DiagGroup<"range-loop-analysis", 392360784Sdim [RangeLoopConstruct, RangeLoopBindReference]>; 393288943Sdimdef ForLoopAnalysis : DiagGroup<"for-loop-analysis">; 394288943Sdimdef LoopAnalysis : DiagGroup<"loop-analysis", [ForLoopAnalysis, 395288943Sdim RangeLoopAnalysis]>; 396226633Sdimdef MalformedWarningCheck : DiagGroup<"malformed-warning-check">; 397226633Sdimdef Main : DiagGroup<"main">; 398234353Sdimdef MainReturnType : DiagGroup<"main-return-type">; 399314564Sdimdef MaxUnsignedZero : DiagGroup<"max-unsigned-zero">; 400204962Srdivackydef MissingBraces : DiagGroup<"missing-braces">; 401212904Sdimdef MissingDeclarations: DiagGroup<"missing-declarations">; 402193326Seddef : DiagGroup<"missing-format-attribute">; 403198954Srdivackydef : DiagGroup<"missing-include-dirs">; 404249423Sdimdef MissingNoreturn : DiagGroup<"missing-noreturn">; 405193326Seddef MultiChar : DiagGroup<"multichar">; 406193326Seddef : DiagGroup<"nested-externs">; 407243830Sdimdef CXX11LongLong : DiagGroup<"c++11-long-long">; 408243830Sdimdef LongLong : DiagGroup<"long-long", [CXX11LongLong]>; 409288943Sdimdef ImplicitlyUnsignedLiteral : DiagGroup<"implicitly-unsigned-literal">; 410249423Sdimdef MethodSignatures : DiagGroup<"method-signatures">; 411243830Sdimdef MismatchedParameterTypes : DiagGroup<"mismatched-parameter-types">; 412243830Sdimdef MismatchedReturnTypes : DiagGroup<"mismatched-return-types">; 413193326Seddef MismatchedTags : DiagGroup<"mismatched-tags">; 414205219Srdivackydef MissingFieldInitializers : DiagGroup<"missing-field-initializers">; 415280031Sdimdef ModuleBuild : DiagGroup<"module-build">; 416353358Sdimdef ModuleImport : DiagGroup<"module-import">; 417249423Sdimdef ModuleConflict : DiagGroup<"module-conflict">; 418296417Sdimdef ModuleFileExtension : DiagGroup<"module-file-extension">; 419261991Sdimdef NewlineEOF : DiagGroup<"newline-eof">; 420288943Sdimdef Nullability : DiagGroup<"nullability">; 421288943Sdimdef NullabilityDeclSpec : DiagGroup<"nullability-declspec">; 422314564Sdimdef NullabilityInferredOnNestedType : DiagGroup<"nullability-inferred-on-nested-type">; 423288943Sdimdef NullableToNonNullConversion : DiagGroup<"nullable-to-nonnull-conversion">; 424314564Sdimdef NullabilityCompletenessOnArrays : DiagGroup<"nullability-completeness-on-arrays">; 425314564Sdimdef NullabilityCompleteness : DiagGroup<"nullability-completeness", 426314564Sdim [NullabilityCompletenessOnArrays]>; 427249423Sdimdef NullArithmetic : DiagGroup<"null-arithmetic">; 428234353Sdimdef NullCharacter : DiagGroup<"null-character">; 429218893Sdimdef NullDereference : DiagGroup<"null-dereference">; 430210299Seddef InitializerOverrides : DiagGroup<"initializer-overrides">; 431344779Sdim// For compatibility with GCC; -Woverride-init = -Winitializer-overrides 432344779Sdimdef : DiagGroup<"override-init", [InitializerOverrides]>; 433193326Seddef NonNull : DiagGroup<"nonnull">; 434249423Sdimdef NonPODVarargs : DiagGroup<"non-pod-varargs">; 435276479Sdimdef ClassVarargs : DiagGroup<"class-varargs", [NonPODVarargs]>; 436193326Seddef : DiagGroup<"nonportable-cfstrings">; 437218893Sdimdef NonVirtualDtor : DiagGroup<"non-virtual-dtor">; 438327952Sdimdef NullPointerArithmetic : DiagGroup<"null-pointer-arithmetic">; 439314564Sdimdef : DiagGroup<"effc++", [NonVirtualDtor]>; 440234353Sdimdef OveralignedType : DiagGroup<"over-aligned">; 441276479Sdimdef OldStyleCast : DiagGroup<"old-style-cast">; 442193326Seddef : DiagGroup<"old-style-definition">; 443212904Sdimdef OutOfLineDeclaration : DiagGroup<"out-of-line-declaration">; 444198092Srdivackydef : DiagGroup<"overflow">; 445239462Sdimdef ForwardClassReceiver : DiagGroup<"receiver-forward-class">; 446239462Sdimdef MethodAccess : DiagGroup<"objc-method-access">; 447239462Sdimdef ObjCReceiver : DiagGroup<"receiver-expr">; 448276479Sdimdef OperatorNewReturnsNull : DiagGroup<"new-returns-null">; 449212904Sdimdef OverlengthStrings : DiagGroup<"overlength-strings">; 450218893Sdimdef OverloadedVirtual : DiagGroup<"overloaded-virtual">; 451239462Sdimdef PrivateExtern : DiagGroup<"private-extern">; 452239462Sdimdef SelTypeCast : DiagGroup<"cast-of-sel-type">; 453276479Sdimdef FunctionDefInObjCContainer : DiagGroup<"function-def-in-objc-container">; 454243830Sdimdef BadFunctionCast : DiagGroup<"bad-function-cast">; 455234353Sdimdef ObjCPropertyImpl : DiagGroup<"objc-property-implementation">; 456239462Sdimdef ObjCPropertyNoAttribute : DiagGroup<"objc-property-no-attribute">; 457344779Sdimdef ObjCPropertyAssignOnObjectType : DiagGroup<"objc-property-assign-on-object-type">; 458288943Sdimdef ObjCProtocolQualifiers : DiagGroup<"objc-protocol-qualifiers">; 459226633Sdimdef ObjCMissingSuperCalls : DiagGroup<"objc-missing-super-calls">; 460276479Sdimdef ObjCDesignatedInit : DiagGroup<"objc-designated-initializers">; 461226633Sdimdef ObjCRetainBlockProperty : DiagGroup<"objc-noncopy-retain-block-property">; 462234353Sdimdef ObjCReadonlyPropertyHasSetter : DiagGroup<"objc-readonly-with-setter-property">; 463261991Sdimdef ObjCInvalidIBOutletProperty : DiagGroup<"invalid-iboutlet">; 464234353Sdimdef ObjCRootClass : DiagGroup<"objc-root-class">; 465261991Sdimdef ObjCPointerIntrospectPerformSelector : DiagGroup<"deprecated-objc-pointer-introspection-performSelector">; 466261991Sdimdef ObjCPointerIntrospect : DiagGroup<"deprecated-objc-pointer-introspection", [ObjCPointerIntrospectPerformSelector]>; 467280031Sdimdef ObjCMultipleMethodNames : DiagGroup<"objc-multiple-method-names">; 468327952Sdimdef ObjCFlexibleArray : DiagGroup<"objc-flexible-array">; 469353358Sdimdef ObjCBoxing : DiagGroup<"objc-boxing">; 470314564Sdimdef OpenCLUnsupportedRGBA: DiagGroup<"opencl-unsupported-rgba">; 471353358Sdimdef UnderalignedExceptionObject : DiagGroup<"underaligned-exception-object">; 472249423Sdimdef DeprecatedObjCIsaUsage : DiagGroup<"deprecated-objc-isa-usage">; 473280031Sdimdef ExplicitInitializeCall : DiagGroup<"explicit-initialize-call">; 474218893Sdimdef Packed : DiagGroup<"packed">; 475218893Sdimdef Padded : DiagGroup<"padded">; 476341825Sdim 477288943Sdimdef PessimizingMove : DiagGroup<"pessimizing-move">; 478341825Sdimdef ReturnStdMoveInCXX11 : DiagGroup<"return-std-move-in-c++11">; 479341825Sdimdef ReturnStdMove : DiagGroup<"return-std-move">; 480341825Sdim 481198092Srdivackydef PointerArith : DiagGroup<"pointer-arith">; 482276479Sdimdef PoundWarning : DiagGroup<"#warnings">; 483234353Sdimdef PoundPragmaMessage : DiagGroup<"#pragma-messages">, 484221345Sdim DiagCategory<"#pragma message Directive">; 485193326Seddef : DiagGroup<"pointer-to-int-cast">; 486193326Seddef : DiagGroup<"redundant-decls">; 487261991Sdimdef RedeclaredClassMember : DiagGroup<"redeclared-class-member">; 488261991Sdimdef GNURedeclaredEnum : DiagGroup<"gnu-redeclared-enum">; 489288943Sdimdef RedundantMove : DiagGroup<"redundant-move">; 490296417Sdimdef Register : DiagGroup<"register", [DeprecatedRegister]>; 491234353Sdimdef ReturnTypeCLinkage : DiagGroup<"return-type-c-linkage">; 492234353Sdimdef ReturnType : DiagGroup<"return-type", [ReturnTypeCLinkage]>; 493234353Sdimdef BindToTemporaryCopy : DiagGroup<"bind-to-temporary-copy", 494234353Sdim [CXX98CompatBindToTemporaryCopy]>; 495239462Sdimdef SelfAssignmentField : DiagGroup<"self-assign-field">; 496341825Sdimdef SelfAssignmentOverloaded : DiagGroup<"self-assign-overloaded">; 497341825Sdimdef SelfAssignment : DiagGroup<"self-assign", [SelfAssignmentOverloaded, SelfAssignmentField]>; 498280031Sdimdef SelfMove : DiagGroup<"self-move">; 499199482Srdivackydef SemiBeforeMethodBody : DiagGroup<"semicolon-before-method-body">; 500226633Sdimdef Sentinel : DiagGroup<"sentinel">; 501226633Sdimdef MissingMethodReturnType : DiagGroup<"missing-method-return-type">; 502309124Sdim 503321369Sdimdef ShadowField : DiagGroup<"shadow-field">; 504309124Sdimdef ShadowFieldInConstructorModified : DiagGroup<"shadow-field-in-constructor-modified">; 505309124Sdimdef ShadowFieldInConstructor : DiagGroup<"shadow-field-in-constructor", 506309124Sdim [ShadowFieldInConstructorModified]>; 507314564Sdimdef ShadowIvar : DiagGroup<"shadow-ivar">; 508314564Sdimdef ShadowUncapturedLocal : DiagGroup<"shadow-uncaptured-local">; 509309124Sdim 510309124Sdim// -Wshadow-all is a catch-all for all shadowing. -Wshadow is just the 511309124Sdim// shadowing that we think is unsafe. 512314564Sdimdef Shadow : DiagGroup<"shadow", [ShadowFieldInConstructorModified, 513314564Sdim ShadowIvar]>; 514314564Sdimdef ShadowAll : DiagGroup<"shadow-all", [Shadow, ShadowFieldInConstructor, 515321369Sdim ShadowUncapturedLocal, ShadowField]>; 516309124Sdim 517243830Sdimdef Shorten64To32 : DiagGroup<"shorten-64-to-32">; 518210299Seddef : DiagGroup<"sign-promo">; 519199482Srdivackydef SignCompare : DiagGroup<"sign-compare">; 520212904Sdimdef : DiagGroup<"stack-protector">; 521212904Sdimdef : DiagGroup<"switch-default">; 522199482Srdivackydef : DiagGroup<"synth">; 523224145Sdimdef SizeofArrayArgument : DiagGroup<"sizeof-array-argument">; 524249423Sdimdef SizeofArrayDecay : DiagGroup<"sizeof-array-decay">; 525249423Sdimdef SizeofPointerMemaccess : DiagGroup<"sizeof-pointer-memaccess">; 526341825Sdimdef MemsetTransposedArgs : DiagGroup<"memset-transposed-args">; 527341825Sdimdef DynamicClassMemaccess : DiagGroup<"dynamic-class-memaccess">; 528341825Sdimdef NonTrivialMemaccess : DiagGroup<"nontrivial-memaccess">; 529341825Sdimdef SuspiciousBzero : DiagGroup<"suspicious-bzero">; 530341825Sdimdef SuspiciousMemaccess : DiagGroup<"suspicious-memaccess", 531341825Sdim [SizeofPointerMemaccess, DynamicClassMemaccess, 532341825Sdim NonTrivialMemaccess, MemsetTransposedArgs, SuspiciousBzero]>; 533249423Sdimdef StaticInInline : DiagGroup<"static-in-inline">; 534249423Sdimdef StaticLocalInInline : DiagGroup<"static-local-in-inline">; 535249423Sdimdef GNUStaticFloatInit : DiagGroup<"gnu-static-float-init">; 536249423Sdimdef StaticFloatInit : DiagGroup<"static-float-init", [GNUStaticFloatInit]>; 537261991Sdimdef GNUStatementExpression : DiagGroup<"gnu-statement-expression">; 538276479Sdimdef StringCompare : DiagGroup<"string-compare">; 539234353Sdimdef StringPlusInt : DiagGroup<"string-plus-int">; 540261991Sdimdef StringPlusChar : DiagGroup<"string-plus-char">; 541234353Sdimdef StrncatSize : DiagGroup<"strncat-size">; 542360784Sdimdef IntInBoolContext : DiagGroup<"int-in-bool-context">; 543327952Sdimdef TautologicalTypeLimitCompare : DiagGroup<"tautological-type-limit-compare">; 544327952Sdimdef TautologicalUnsignedZeroCompare : DiagGroup<"tautological-unsigned-zero-compare">; 545327952Sdimdef TautologicalUnsignedEnumZeroCompare : DiagGroup<"tautological-unsigned-enum-zero-compare">; 546327952Sdimdef TautologicalInRangeCompare : DiagGroup<"tautological-constant-in-range-compare", 547327952Sdim [TautologicalTypeLimitCompare, 548327952Sdim TautologicalUnsignedZeroCompare, 549327952Sdim TautologicalUnsignedEnumZeroCompare]>; 550353358Sdim// For compatibility with GCC; -Wtype-limits = -Wtautological-constant-in-range-compare 551353358Sdimdef TypeLimits : DiagGroup<"type-limits", [TautologicalInRangeCompare]>; 552243830Sdimdef TautologicalOutOfRangeCompare : DiagGroup<"tautological-constant-out-of-range-compare">; 553327952Sdimdef TautologicalConstantCompare : DiagGroup<"tautological-constant-compare", 554328381Sdim [TautologicalOutOfRangeCompare]>; 555276479Sdimdef TautologicalPointerCompare : DiagGroup<"tautological-pointer-compare">; 556276479Sdimdef TautologicalOverlapCompare : DiagGroup<"tautological-overlap-compare">; 557360784Sdimdef TautologicalBitwiseCompare : DiagGroup<"tautological-bitwise-compare">; 558276479Sdimdef TautologicalUndefinedCompare : DiagGroup<"tautological-undefined-compare">; 559353358Sdimdef TautologicalObjCBoolCompare : DiagGroup<"tautological-objc-bool-compare">; 560243830Sdimdef TautologicalCompare : DiagGroup<"tautological-compare", 561327952Sdim [TautologicalConstantCompare, 562276479Sdim TautologicalPointerCompare, 563276479Sdim TautologicalOverlapCompare, 564360784Sdim TautologicalBitwiseCompare, 565353358Sdim TautologicalUndefinedCompare, 566353358Sdim TautologicalObjCBoolCompare]>; 567221345Sdimdef HeaderHygiene : DiagGroup<"header-hygiene">; 568243830Sdimdef DuplicateDeclSpecifier : DiagGroup<"duplicate-decl-specifier">; 569243830Sdimdef CompareDistinctPointerType : DiagGroup<"compare-distinct-pointer-types">; 570261991Sdimdef GNUUnionCast : DiagGroup<"gnu-union-cast">; 571261991Sdimdef GNUVariableSizedTypeNotAtEnd : DiagGroup<"gnu-variable-sized-type-not-at-end">; 572261991Sdimdef Varargs : DiagGroup<"varargs">; 573360784Sdimdef XorUsedAsPow : DiagGroup<"xor-used-as-pow">; 574193326Sed 575249423Sdimdef Unsequenced : DiagGroup<"unsequenced">; 576249423Sdim// GCC name for -Wunsequenced 577249423Sdimdef : DiagGroup<"sequence-point", [Unsequenced]>; 578249423Sdim 579198092Srdivacky// Preprocessor warnings. 580243830Sdimdef AmbiguousMacro : DiagGroup<"ambiguous-macro">; 581280031Sdimdef KeywordAsMacro : DiagGroup<"keyword-macro">; 582280031Sdimdef ReservedIdAsMacro : DiagGroup<"reserved-id-macro">; 583198092Srdivacky 584199990Srdivacky// Just silence warnings about -Wstrict-aliasing for now. 585193326Seddef : DiagGroup<"strict-aliasing=0">; 586193326Seddef : DiagGroup<"strict-aliasing=1">; 587193326Seddef : DiagGroup<"strict-aliasing=2">; 588193326Seddef : DiagGroup<"strict-aliasing">; 589193326Sed 590199990Srdivacky// Just silence warnings about -Wstrict-overflow for now. 591193326Seddef : DiagGroup<"strict-overflow=0">; 592193326Seddef : DiagGroup<"strict-overflow=1">; 593193326Seddef : DiagGroup<"strict-overflow=2">; 594199990Srdivackydef : DiagGroup<"strict-overflow=3">; 595199990Srdivackydef : DiagGroup<"strict-overflow=4">; 596199990Srdivackydef : DiagGroup<"strict-overflow=5">; 597193326Seddef : DiagGroup<"strict-overflow">; 598193326Sed 599193326Seddef InvalidOffsetof : DiagGroup<"invalid-offsetof">; 600193326Seddef : DiagGroup<"strict-prototypes">; 601212904Sdimdef StrictSelector : DiagGroup<"strict-selector-match">; 602234353Sdimdef MethodDuplicate : DiagGroup<"duplicate-method-match">; 603280031Sdimdef ObjCCStringFormat : DiagGroup<"cstring-format-directive">; 604234353Sdimdef CoveredSwitchDefault : DiagGroup<"covered-switch-default">; 605276479Sdimdef SwitchBool : DiagGroup<"switch-bool">; 606203955Srdivackydef SwitchEnum : DiagGroup<"switch-enum">; 607234353Sdimdef Switch : DiagGroup<"switch">; 608239462Sdimdef ImplicitFallthroughPerFunction : 609239462Sdim DiagGroup<"implicit-fallthrough-per-function">; 610239462Sdimdef ImplicitFallthrough : DiagGroup<"implicit-fallthrough", 611239462Sdim [ImplicitFallthroughPerFunction]>; 612239462Sdimdef InvalidPPToken : DiagGroup<"invalid-pp-token">; 613207632Srdivackydef Trigraphs : DiagGroup<"trigraphs">; 614193326Sed 615193326Seddef : DiagGroup<"type-limits">; 616249423Sdimdef UndefinedReinterpretCast : DiagGroup<"undefined-reinterpret-cast">; 617249423Sdimdef ReinterpretBaseClass : DiagGroup<"reinterpret-base-class">; 618234353Sdimdef Unicode : DiagGroup<"unicode">; 619221345Sdimdef UninitializedMaybe : DiagGroup<"conditional-uninitialized">; 620239462Sdimdef UninitializedSometimes : DiagGroup<"sometimes-uninitialized">; 621249423Sdimdef UninitializedStaticSelfInit : DiagGroup<"static-self-init">; 622249423Sdimdef Uninitialized : DiagGroup<"uninitialized", [UninitializedSometimes, 623249423Sdim UninitializedStaticSelfInit]>; 624314564Sdimdef IgnoredPragmaIntrinsic : DiagGroup<"ignored-pragma-intrinsic">; 625341825Sdim// #pragma optimize is often used to avoid to work around MSVC codegen bugs or 626341825Sdim// to disable inlining. It's not completely clear what alternative to suggest 627341825Sdim// (#pragma clang optimize, noinline) so suggest nothing for now. 628341825Sdimdef IgnoredPragmaOptimize : DiagGroup<"ignored-pragma-optimize">; 629193326Seddef UnknownPragmas : DiagGroup<"unknown-pragmas">; 630341825Sdimdef IgnoredPragmas : DiagGroup<"ignored-pragmas", 631341825Sdim [IgnoredPragmaIntrinsic, IgnoredPragmaOptimize]>; 632321369Sdimdef PragmaClangAttribute : DiagGroup<"pragma-clang-attribute">; 633327952Sdimdef PragmaPackSuspiciousInclude : DiagGroup<"pragma-pack-suspicious-include">; 634327952Sdimdef PragmaPack : DiagGroup<"pragma-pack", [PragmaPackSuspiciousInclude]>; 635321369Sdimdef Pragmas : DiagGroup<"pragmas", [UnknownPragmas, IgnoredPragmas, 636327952Sdim PragmaClangAttribute, PragmaPack]>; 637249423Sdimdef UnknownWarningOption : DiagGroup<"unknown-warning-option">; 638234353Sdimdef NSobjectAttribute : DiagGroup<"NSObject-attribute">; 639327952Sdimdef NSConsumedMismatch : DiagGroup<"nsconsumed-mismatch">; 640327952Sdimdef NSReturnsMismatch : DiagGroup<"nsreturns-mismatch">; 641327952Sdim 642288943Sdimdef IndependentClassAttribute : DiagGroup<"IndependentClass-attribute">; 643276479Sdimdef UnknownAttributes : DiagGroup<"unknown-attributes">; 644234353Sdimdef IgnoredAttributes : DiagGroup<"ignored-attributes">; 645276479Sdimdef Attributes : DiagGroup<"attributes", [UnknownAttributes, 646276479Sdim IgnoredAttributes]>; 647288943Sdimdef UnknownSanitizers : DiagGroup<"unknown-sanitizers">; 648234353Sdimdef UnnamedTypeTemplateArgs : DiagGroup<"unnamed-type-template-args", 649234353Sdim [CXX98CompatUnnamedTypeTemplateArgs]>; 650261991Sdimdef UnsupportedFriend : DiagGroup<"unsupported-friend">; 651193725Seddef UnusedArgument : DiagGroup<"unused-argument">; 652276479Sdimdef UnusedCommandLineArgument : DiagGroup<"unused-command-line-argument">; 653280031Sdimdef IgnoredOptimizationArgument : DiagGroup<"ignored-optimization-argument">; 654280031Sdimdef InvalidCommandLineArgument : DiagGroup<"invalid-command-line-argument", 655280031Sdim [IgnoredOptimizationArgument]>; 656226633Sdimdef UnusedComparison : DiagGroup<"unused-comparison">; 657207619Srdivackydef UnusedExceptionParameter : DiagGroup<"unused-exception-parameter">; 658221345Sdimdef UnneededInternalDecl : DiagGroup<"unneeded-internal-declaration">; 659221345Sdimdef UnneededMemberFunction : DiagGroup<"unneeded-member-function">; 660239462Sdimdef UnusedPrivateField : DiagGroup<"unused-private-field">; 661221345Sdimdef UnusedFunction : DiagGroup<"unused-function", [UnneededInternalDecl]>; 662321369Sdimdef UnusedTemplate : DiagGroup<"unused-template", [UnneededInternalDecl]>; 663221345Sdimdef UnusedMemberFunction : DiagGroup<"unused-member-function", 664221345Sdim [UnneededMemberFunction]>; 665193725Seddef UnusedLabel : DiagGroup<"unused-label">; 666321369Sdimdef UnusedLambdaCapture : DiagGroup<"unused-lambda-capture">; 667193725Seddef UnusedParameter : DiagGroup<"unused-parameter">; 668226633Sdimdef UnusedResult : DiagGroup<"unused-result">; 669280031Sdimdef PotentiallyEvaluatedExpression : DiagGroup<"potentially-evaluated-expression">; 670280031Sdimdef UnevaluatedExpression : DiagGroup<"unevaluated-expression", 671280031Sdim [PotentiallyEvaluatedExpression]>; 672280031Sdimdef UnusedValue : DiagGroup<"unused-value", [UnusedComparison, UnusedResult, 673280031Sdim UnevaluatedExpression]>; 674261991Sdimdef UnusedConstVariable : DiagGroup<"unused-const-variable">; 675261991Sdimdef UnusedVariable : DiagGroup<"unused-variable", 676261991Sdim [UnusedConstVariable]>; 677280031Sdimdef UnusedLocalTypedef : DiagGroup<"unused-local-typedef">; 678261991Sdimdef UnusedPropertyIvar : DiagGroup<"unused-property-ivar">; 679280031Sdimdef UnusedGetterReturnValue : DiagGroup<"unused-getter-return-value">; 680218893Sdimdef UsedButMarkedUnused : DiagGroup<"used-but-marked-unused">; 681226633Sdimdef UserDefinedLiterals : DiagGroup<"user-defined-literals">; 682314564Sdimdef UserDefinedWarnings : DiagGroup<"user-defined-warnings">; 683360784Sdimdef ReorderCtor : DiagGroup<"reorder-ctor">; 684360784Sdimdef ReorderInitList : DiagGroup<"reorder-init-list">; 685360784Sdimdef Reorder : DiagGroup<"reorder", [ReorderCtor, ReorderInitList]>; 686194613Seddef UndeclaredSelector : DiagGroup<"undeclared-selector">; 687218893Sdimdef ImplicitAtomic : DiagGroup<"implicit-atomic-properties">; 688218893Sdimdef CustomAtomic : DiagGroup<"custom-atomic-properties">; 689218893Sdimdef AtomicProperties : DiagGroup<"atomic-properties", 690218893Sdim [ImplicitAtomic, CustomAtomic]>; 691224145Sdimdef ARCUnsafeRetainedAssign : DiagGroup<"arc-unsafe-retained-assign">; 692224145Sdimdef ARCRetainCycles : DiagGroup<"arc-retain-cycles">; 693224145Sdimdef ARCNonPodMemAccess : DiagGroup<"arc-non-pod-memaccess">; 694224145Sdimdef AutomaticReferenceCounting : DiagGroup<"arc", 695243830Sdim [ARCUnsafeRetainedAssign, 696224145Sdim ARCRetainCycles, 697224145Sdim ARCNonPodMemAccess]>; 698243830Sdimdef ARCRepeatedUseOfWeakMaybe : DiagGroup<"arc-maybe-repeated-use-of-weak">; 699243830Sdimdef ARCRepeatedUseOfWeak : DiagGroup<"arc-repeated-use-of-weak", 700243830Sdim [ARCRepeatedUseOfWeakMaybe]>; 701314564Sdimdef BlockCaptureAutoReleasing : DiagGroup<"block-capture-autoreleasing">; 702261991Sdimdef ObjCBridge : DiagGroup<"bridge-cast">; 703261991Sdim 704276479Sdimdef DeallocInCategory:DiagGroup<"dealloc-in-category">; 705261991Sdimdef SelectorTypeMismatch : DiagGroup<"selector-type-mismatch">; 706261991Sdimdef Selector : DiagGroup<"selector", [SelectorTypeMismatch]>; 707206084Srdivackydef Protocol : DiagGroup<"protocol">; 708344779Sdim// No longer in use, preserve for backwards compatibility. 709344779Sdimdef : DiagGroup<"at-protocol">; 710280031Sdimdef PropertyAccessDotSyntax: DiagGroup<"property-access-dot-syntax">; 711280031Sdimdef PropertyAttr : DiagGroup<"property-attribute-mismatch">; 712198092Srdivackydef SuperSubClassMismatch : DiagGroup<"super-class-method-mismatch">; 713226633Sdimdef OverridingMethodMismatch : DiagGroup<"overriding-method-mismatch">; 714200583Srdivackydef VariadicMacros : DiagGroup<"variadic-macros">; 715234353Sdimdef VectorConversion : DiagGroup<"vector-conversion">; // clang specific 716234353Sdimdef VexingParse : DiagGroup<"vexing-parse">; 717208600Srdivackydef VLA : DiagGroup<"vla">; 718249423Sdimdef VLAExtension : DiagGroup<"vla-extension">; 719193326Seddef VolatileRegisterVar : DiagGroup<"volatile-register-var">; 720234353Sdimdef Visibility : DiagGroup<"visibility">; 721243830Sdimdef ZeroLengthArray : DiagGroup<"zero-length-array">; 722261991Sdimdef GNUZeroLineDirective : DiagGroup<"gnu-zero-line-directive">; 723261991Sdimdef GNUZeroVariadicMacroArguments : DiagGroup<"gnu-zero-variadic-macro-arguments">; 724276479Sdimdef Fallback : DiagGroup<"fallback">; 725360784Sdimdef MisleadingIndentation : DiagGroup<"misleading-indentation">; 726221345Sdim 727276479Sdim// This covers both the deprecated case (in C++98) 728276479Sdim// and the extension case (in C++11 onwards). 729276479Sdimdef WritableStrings : DiagGroup<"writable-strings", [DeprecatedWritableStr]>; 730276479Sdim 731221345Sdim// GCC calls -Wdeprecated-writable-strings -Wwrite-strings. 732276479Sdim// 733276479Sdim// Bizarrely, this warning flag enables -fconst-strings in C. This is 734276479Sdim// GCC-compatible, but really weird. 735276479Sdim// 736276479Sdim// FIXME: Should this affect C++11 (where this is an error, 737276479Sdim// not just deprecated) or not? 738276479Sdimdef GCCWriteStrings : DiagGroup<"write-strings" , [WritableStrings]>; 739221345Sdim 740198092Srdivackydef CharSubscript : DiagGroup<"char-subscripts">; 741218893Sdimdef LargeByValueCopy : DiagGroup<"large-by-value-copy">; 742221345Sdimdef DuplicateArgDecl : DiagGroup<"duplicate-method-arg">; 743314564Sdimdef SignedEnumBitfield : DiagGroup<"signed-enum-bitfield">; 744193326Sed 745276479Sdim// Unreachable code warning groups. 746276479Sdim// 747276479Sdim// The goal is make -Wunreachable-code on by default, in -Wall, or at 748276479Sdim// least actively used, with more noisy versions of the warning covered 749276479Sdim// under separate flags. 750276479Sdim// 751276479Sdimdef UnreachableCodeLoopIncrement : DiagGroup<"unreachable-code-loop-increment">; 752276479Sdimdef UnreachableCode : DiagGroup<"unreachable-code", 753276479Sdim [UnreachableCodeLoopIncrement]>; 754276479Sdimdef UnreachableCodeBreak : DiagGroup<"unreachable-code-break">; 755276479Sdimdef UnreachableCodeReturn : DiagGroup<"unreachable-code-return">; 756276479Sdimdef UnreachableCodeAggressive : DiagGroup<"unreachable-code-aggressive", 757276479Sdim [UnreachableCode, 758276479Sdim UnreachableCodeBreak, 759276479Sdim UnreachableCodeReturn]>; 760276479Sdim 761193326Sed// Aggregation warning settings. 762193326Sed 763276479Sdim// Populate -Waddress with warnings from other groups. 764276479Sdimdef : DiagGroup<"address", [PointerBoolConversion, 765276479Sdim StringCompare, 766276479Sdim TautologicalPointerCompare]>; 767276479Sdim 768199482Srdivacky// -Widiomatic-parentheses contains warnings about 'idiomatic' 769221345Sdim// missing parentheses; it is off by default. We do not include it 770221345Sdim// in -Wparentheses because most users who use -Wparentheses explicitly 771221345Sdim// do not want these warnings. 772226633Sdimdef ParenthesesOnEquality : DiagGroup<"parentheses-equality">; 773218893Sdimdef Parentheses : DiagGroup<"parentheses", 774224145Sdim [LogicalOpParentheses, 775261991Sdim LogicalNotParentheses, 776360784Sdim BitwiseConditionalParentheses, 777226633Sdim BitwiseOpParentheses, 778243830Sdim ShiftOpParentheses, 779251662Sdim OverloadedShiftOpParentheses, 780234353Sdim ParenthesesOnEquality, 781234353Sdim DanglingElse]>; 782193326Sed 783218893Sdim// -Wconversion has its own warnings, but we split a few out for 784218893Sdim// legacy reasons: 785218893Sdim// - some people want just 64-to-32 warnings 786218893Sdim// - conversion warnings with constant sources are on by default 787218893Sdim// - conversion warnings for literals are on by default 788218893Sdim// - bool-to-pointer conversion warnings are on by default 789234353Sdim// - __null-to-integer conversion warnings are on by default 790199482Srdivackydef Conversion : DiagGroup<"conversion", 791243830Sdim [BoolConversion, 792234353Sdim ConstantConversion, 793243830Sdim EnumConversion, 794321369Sdim BitFieldEnumConversion, 795276479Sdim FloatConversion, 796243830Sdim Shorten64To32, 797243830Sdim IntConversion, 798344779Sdim ImplicitIntConversion, 799344779Sdim ImplicitFloatConversion, 800234353Sdim LiteralConversion, 801243830Sdim NonLiteralNullConversion, // (1-1)->pointer (etc) 802243830Sdim NullConversion, // NULL->non-pointer 803276479Sdim ObjCLiteralConversion, 804234353Sdim SignConversion, 805243830Sdim StringConversion]>, 806208600Srdivacky DiagCategory<"Value Conversion Issue">; 807199482Srdivacky 808193725Seddef Unused : DiagGroup<"unused", 809193725Sed [UnusedArgument, UnusedFunction, UnusedLabel, 810207619Srdivacky // UnusedParameter, (matches GCC's behavior) 811321369Sdim // UnusedTemplate, (clean-up libc++ before enabling) 812212904Sdim // UnusedMemberFunction, (clean-up llvm before enabling) 813321369Sdim UnusedPrivateField, UnusedLambdaCapture, 814321369Sdim UnusedLocalTypedef, UnusedValue, UnusedVariable, 815321369Sdim UnusedPropertyIvar]>, 816208600Srdivacky DiagCategory<"Unused Entity Issue">; 817193725Sed 818193326Sed// Format settings. 819226633Sdimdef FormatInvalidSpecifier : DiagGroup<"format-invalid-specifier">; 820219077Sdimdef FormatSecurity : DiagGroup<"format-security">; 821234353Sdimdef FormatNonStandard : DiagGroup<"format-non-iso">; 822224145Sdimdef FormatY2K : DiagGroup<"format-y2k">; 823288943Sdimdef FormatPedantic : DiagGroup<"format-pedantic">; 824360784Sdimdef FormatTypeConfusion : DiagGroup<"format-type-confusion">; 825219077Sdimdef Format : DiagGroup<"format", 826219077Sdim [FormatExtraArgs, FormatZeroLength, NonNull, 827226633Sdim FormatSecurity, FormatY2K, FormatInvalidSpecifier]>, 828208600Srdivacky DiagCategory<"Format String Issue">; 829276479Sdimdef FormatNonLiteral : DiagGroup<"format-nonliteral">; 830193326Seddef Format2 : DiagGroup<"format=2", 831193326Sed [FormatNonLiteral, FormatSecurity, FormatY2K]>; 832193326Sed 833239462Sdimdef TypeSafety : DiagGroup<"type-safety">; 834239462Sdim 835314564Sdimdef IncompatibleExceptionSpec : DiagGroup<"incompatible-exception-spec">; 836314564Sdim 837261991Sdimdef IntToVoidPointerCast : DiagGroup<"int-to-void-pointer-cast">; 838261991Sdimdef IntToPointerCast : DiagGroup<"int-to-pointer-cast", 839261991Sdim [IntToVoidPointerCast]>; 840243830Sdim 841341825Sdimdef Move : DiagGroup<"move", [ 842341825Sdim PessimizingMove, 843341825Sdim RedundantMove, 844341825Sdim ReturnStdMove, 845341825Sdim SelfMove 846341825Sdim ]>; 847288943Sdim 848194613Seddef Extra : DiagGroup<"extra", [ 849360784Sdim DeprecatedCopy, 850205219Srdivacky MissingFieldInitializers, 851210299Sed IgnoredQualifiers, 852210299Sed InitializerOverrides, 853199482Srdivacky SemiBeforeMethodBody, 854226633Sdim MissingMethodReturnType, 855199482Srdivacky SignCompare, 856327952Sdim UnusedParameter, 857344779Sdim NullPointerArithmetic, 858344779Sdim EmptyInitStatement 859194613Sed ]>; 860193326Sed 861193326Seddef Most : DiagGroup<"most", [ 862207619Srdivacky CharSubscript, 863193326Sed Comment, 864223017Sdim DeleteNonVirtualDtor, 865360784Sdim Format, 866296417Sdim ForLoopAnalysis, 867193326Sed Implicit, 868288943Sdim InfiniteRecursion, 869360784Sdim IntInBoolContext, 870193326Sed MismatchedTags, 871204962Srdivacky MissingBraces, 872288943Sdim Move, 873193326Sed MultiChar, 874360784Sdim RangeLoopConstruct, 875207619Srdivacky Reorder, 876198092Srdivacky ReturnType, 877218893Sdim SelfAssignment, 878280031Sdim SelfMove, 879224145Sdim SizeofArrayArgument, 880249423Sdim SizeofArrayDecay, 881234353Sdim StringPlusInt, 882360784Sdim TautologicalCompare, 883193326Sed Trigraphs, 884193326Sed Uninitialized, 885193326Sed UnknownPragmas, 886207619Srdivacky Unused, 887218893Sdim VolatileRegisterVar, 888226633Sdim ObjCMissingSuperCalls, 889276479Sdim ObjCDesignatedInit, 890327952Sdim ObjCFlexibleArray, 891239462Sdim OverloadedVirtual, 892239462Sdim PrivateExtern, 893261991Sdim SelTypeCast, 894314564Sdim ExternCCompat, 895314564Sdim UserDefinedWarnings 896193326Sed ]>; 897193326Sed 898341825Sdim// Thread Safety warnings 899239462Sdimdef ThreadSafetyAttributes : DiagGroup<"thread-safety-attributes">; 900243830Sdimdef ThreadSafetyAnalysis : DiagGroup<"thread-safety-analysis">; 901243830Sdimdef ThreadSafetyPrecise : DiagGroup<"thread-safety-precise">; 902280031Sdimdef ThreadSafetyReference : DiagGroup<"thread-safety-reference">; 903280031Sdimdef ThreadSafetyNegative : DiagGroup<"thread-safety-negative">; 904243830Sdimdef ThreadSafety : DiagGroup<"thread-safety", 905341825Sdim [ThreadSafetyAttributes, 906243830Sdim ThreadSafetyAnalysis, 907280031Sdim ThreadSafetyPrecise, 908280031Sdim ThreadSafetyReference]>; 909280031Sdimdef ThreadSafetyVerbose : DiagGroup<"thread-safety-verbose">; 910249423Sdimdef ThreadSafetyBeta : DiagGroup<"thread-safety-beta">; 911226633Sdim 912261991Sdim// Uniqueness Analysis warnings 913261991Sdimdef Consumed : DiagGroup<"consumed">; 914261991Sdim 915234353Sdim// Note that putting warnings in -Wall will not disable them by default. If a 916234353Sdim// warning should be active _only_ when -Wall is passed in, mark it as 917234353Sdim// DefaultIgnore in addition to putting it here. 918360784Sdimdef All : DiagGroup<"all", [Most, Parentheses, Switch, SwitchBool, MisleadingIndentation]>; 919193326Sed 920296417Sdim// Warnings that should be in clang-cl /w4. 921296417Sdimdef : DiagGroup<"CL4", [All, Extra]>; 922296417Sdim 923239462Sdim// Warnings enabled by -pedantic. This is magically filled in by TableGen. 924239462Sdimdef Pedantic : DiagGroup<"pedantic">; 925239462Sdim 926193326Sed// Aliases. 927201361Srdivackydef : DiagGroup<"", [Extra]>; // -W = -Wextra 928261991Sdimdef : DiagGroup<"endif-labels", [ExtraTokens]>; // -Wendif-labels=-Wextra-tokens 929321369Sdimdef : DiagGroup<"cpp", [PoundWarning]>; // -Wcpp = -W#warnings 930201361Srdivackydef : DiagGroup<"comments", [Comment]>; // -Wcomments = -Wcomment 931234353Sdimdef : DiagGroup<"conversion-null", 932234353Sdim [NullConversion]>; // -Wconversion-null = -Wnull-conversion 933234353Sdimdef : DiagGroup<"bool-conversions", 934234353Sdim [BoolConversion]>; // -Wbool-conversions = -Wbool-conversion 935234353Sdimdef : DiagGroup<"int-conversions", 936234353Sdim [IntConversion]>; // -Wint-conversions = -Wint-conversion 937234353Sdimdef : DiagGroup<"vector-conversions", 938234353Sdim [VectorConversion]>; // -Wvector-conversions = -Wvector-conversion 939280031Sdimdef : DiagGroup<"unused-local-typedefs", [UnusedLocalTypedef]>; 940280031Sdim // -Wunused-local-typedefs = -Wunused-local-typedef 941193326Sed 942199482Srdivacky// A warning group for warnings that we want to have on by default in clang, 943199482Srdivacky// but which aren't on by default in GCC. 944199482Srdivackydef NonGCC : DiagGroup<"non-gcc", 945204962Srdivacky [SignCompare, Conversion, LiteralRange]>; 946206084Srdivacky 947226633Sdim// A warning group for warnings about using C++11 features as extensions in 948218893Sdim// earlier C++ versions. 949296417Sdimdef CXX11 : DiagGroup<"c++11-extensions", [CXX11ExtraSemi, CXX11InlineNamespace, 950296417Sdim CXX11LongLong]>; 951243830Sdim 952280031Sdim// A warning group for warnings about using C++14 features as extensions in 953251662Sdim// earlier C++ versions. 954296417Sdimdef CXX14 : DiagGroup<"c++14-extensions", [CXX14BinaryLiteral]>; 955251662Sdim 956327952Sdim// A warning group for warnings about using C++17 features as extensions in 957276479Sdim// earlier C++ versions. 958322740Sdimdef CXX17 : DiagGroup<"c++17-extensions">; 959276479Sdim 960360784Sdim// A warning group for warnings about using C++20 features as extensions in 961327952Sdim// earlier C++ versions. 962360784Sdimdef CXX20 : DiagGroup<"c++20-extensions", [CXX20Designator]>; 963327952Sdim 964226633Sdimdef : DiagGroup<"c++0x-extensions", [CXX11]>; 965280031Sdimdef : DiagGroup<"c++1y-extensions", [CXX14]>; 966322740Sdimdef : DiagGroup<"c++1z-extensions", [CXX17]>; 967360784Sdimdef : DiagGroup<"c++2a-extensions", [CXX20]>; 968280031Sdim 969223017Sdimdef DelegatingCtorCycles : 970223017Sdim DiagGroup<"delegating-ctor-cycles">; 971218893Sdim 972234353Sdim// A warning group for warnings about using C11 features as extensions. 973234353Sdimdef C11 : DiagGroup<"c11-extensions">; 974226633Sdim 975234353Sdim// A warning group for warnings about using C99 features as extensions. 976360784Sdimdef C99 : DiagGroup<"c99-extensions", [C99Designator]>; 977234353Sdim 978206084Srdivacky// A warning group for warnings about GCC extensions. 979261991Sdimdef GNU : DiagGroup<"gnu", [GNUAlignofExpression, GNUAnonymousStruct, 980296417Sdim GNUAutoType, 981261991Sdim GNUBinaryLiteral, GNUCaseRange, 982261991Sdim GNUComplexInteger, GNUCompoundLiteralInitializer, 983261991Sdim GNUConditionalOmittedOperand, GNUDesignator, 984261991Sdim GNUEmptyInitializer, GNUEmptyStruct, 985261991Sdim VLAExtension, GNUFlexibleArrayInitializer, 986261991Sdim GNUFlexibleArrayUnionMember, GNUFoldingConstant, 987296417Sdim GNUImaginaryConstant, GNUIncludeNext, 988296417Sdim GNULabelsAsValue, 989261991Sdim RedeclaredClassMember, GNURedeclaredEnum, 990261991Sdim GNUStatementExpression, GNUStaticFloatInit, 991261991Sdim GNUStringLiteralOperatorTemplate, 992261991Sdim GNUUnionCast, GNUVariableSizedTypeNotAtEnd, 993261991Sdim ZeroLengthArray, GNUZeroLineDirective, 994261991Sdim GNUZeroVariadicMacroArguments]>; 995234353Sdim// A warning group for warnings about code that clang accepts but gcc doesn't. 996234353Sdimdef GccCompat : DiagGroup<"gcc-compat">; 997218893Sdim 998296417Sdim// Warnings for Microsoft extensions. 999296417Sdimdef MicrosoftCharize : DiagGroup<"microsoft-charize">; 1000353358Sdimdef MicrosoftDrectveSection : DiagGroup<"microsoft-drectve-section">; 1001296417Sdimdef MicrosoftInclude : DiagGroup<"microsoft-include">; 1002296417Sdimdef MicrosoftCppMacro : DiagGroup<"microsoft-cpp-macro">; 1003296417Sdimdef MicrosoftFixedEnum : DiagGroup<"microsoft-fixed-enum">; 1004296417Sdimdef MicrosoftSealed : DiagGroup<"microsoft-sealed">; 1005296417Sdimdef MicrosoftUnqualifiedFriend : DiagGroup<"microsoft-unqualified-friend">; 1006296417Sdimdef MicrosoftExceptionSpec : DiagGroup<"microsoft-exception-spec">; 1007296417Sdimdef MicrosoftUsingDecl : DiagGroup<"microsoft-using-decl">; 1008296417Sdimdef MicrosoftMutableReference : DiagGroup<"microsoft-mutable-reference">; 1009296417Sdimdef MicrosoftPureDefinition : DiagGroup<"microsoft-pure-definition">; 1010296417Sdimdef MicrosoftUnionMemberReference : DiagGroup< 1011296417Sdim "microsoft-union-member-reference">; 1012296417Sdimdef MicrosoftExplicitConstructorCall : DiagGroup< 1013296417Sdim "microsoft-explicit-constructor-call">; 1014296417Sdimdef MicrosoftEnumValue : DiagGroup<"microsoft-enum-value">; 1015296417Sdimdef MicrosoftDefaultArgRedefinition : 1016296417Sdim DiagGroup<"microsoft-default-arg-redefinition">; 1017360784Sdimdef MicrosoftTemplateShadow : DiagGroup<"microsoft-template-shadow">; 1018360784Sdimdef MicrosoftTemplate : DiagGroup<"microsoft-template", [MicrosoftTemplateShadow]>; 1019309124Sdimdef MicrosoftInconsistentDllImport : DiagGroup<"inconsistent-dllimport">; 1020296417Sdimdef MicrosoftRedeclareStatic : DiagGroup<"microsoft-redeclare-static">; 1021296417Sdimdef MicrosoftEnumForwardReference : 1022296417Sdim DiagGroup<"microsoft-enum-forward-reference">; 1023296417Sdimdef MicrosoftGoto : DiagGroup<"microsoft-goto">; 1024296417Sdimdef MicrosoftFlexibleArray : DiagGroup<"microsoft-flexible-array">; 1025296417Sdimdef MicrosoftExtraQualification : DiagGroup<"microsoft-extra-qualification">; 1026296417Sdimdef MicrosoftCast : DiagGroup<"microsoft-cast">; 1027296417Sdimdef MicrosoftConstInit : DiagGroup<"microsoft-const-init">; 1028296417Sdimdef MicrosoftVoidPseudoDtor : DiagGroup<"microsoft-void-pseudo-dtor">; 1029296417Sdimdef MicrosoftAnonTag : DiagGroup<"microsoft-anon-tag">; 1030296417Sdimdef MicrosoftCommentPaste : DiagGroup<"microsoft-comment-paste">; 1031296417Sdimdef MicrosoftEndOfFile : DiagGroup<"microsoft-end-of-file">; 1032327952Sdimdef MicrosoftInaccessibleBase : DiagGroup<"microsoft-inaccessible-base">; 1033296417Sdim// Aliases. 1034296417Sdimdef : DiagGroup<"msvc-include", [MicrosoftInclude]>; 1035296417Sdim // -Wmsvc-include = -Wmicrosoft-include 1036224145Sdim 1037296417Sdim// Warnings group for warnings about Microsoft extensions. 1038296417Sdimdef Microsoft : DiagGroup<"microsoft", 1039353358Sdim [MicrosoftCharize, MicrosoftDrectveSection, MicrosoftInclude, 1040353358Sdim MicrosoftCppMacro, MicrosoftFixedEnum, MicrosoftSealed, 1041353358Sdim MicrosoftUnqualifiedFriend, MicrosoftExceptionSpec, MicrosoftUsingDecl, 1042353358Sdim MicrosoftMutableReference, MicrosoftPureDefinition, 1043296417Sdim MicrosoftUnionMemberReference, MicrosoftExplicitConstructorCall, 1044296417Sdim MicrosoftEnumValue, MicrosoftDefaultArgRedefinition, MicrosoftTemplate, 1045296417Sdim MicrosoftRedeclareStatic, MicrosoftEnumForwardReference, MicrosoftGoto, 1046296417Sdim MicrosoftFlexibleArray, MicrosoftExtraQualification, MicrosoftCast, 1047296417Sdim MicrosoftConstInit, MicrosoftVoidPseudoDtor, MicrosoftAnonTag, 1048309124Sdim MicrosoftCommentPaste, MicrosoftEndOfFile, 1049309124Sdim MicrosoftInconsistentDllImport]>; 1050296417Sdim 1051309124Sdimdef ClangClPch : DiagGroup<"clang-cl-pch">; 1052309124Sdim 1053224145Sdimdef ObjCNonUnifiedException : DiagGroup<"objc-nonunified-exceptions">; 1054224145Sdim 1055226633Sdimdef ObjCProtocolMethodImpl : DiagGroup<"objc-protocol-method-implementation">; 1056234353Sdim 1057249423Sdimdef ObjCNoPropertyAutoSynthesis : DiagGroup<"objc-property-synthesis">; 1058249423Sdim 1059234353Sdim// ObjC API warning groups. 1060234353Sdimdef ObjCRedundantLiteralUse : DiagGroup<"objc-redundant-literal-use">; 1061234353Sdimdef ObjCRedundantAPIUse : DiagGroup<"objc-redundant-api-use", [ 1062234353Sdim ObjCRedundantLiteralUse 1063234353Sdim ]>; 1064234353Sdim 1065234353Sdimdef ObjCCocoaAPI : DiagGroup<"objc-cocoa-api", [ 1066234353Sdim ObjCRedundantAPIUse 1067234353Sdim ]>; 1068239462Sdim 1069239462Sdimdef ObjCStringComparison : DiagGroup<"objc-string-compare">; 1070261991Sdimdef ObjCStringConcatenation : DiagGroup<"objc-string-concatenation">; 1071239462Sdimdef ObjCLiteralComparison : DiagGroup<"objc-literal-compare", [ 1072239462Sdim ObjCStringComparison 1073239462Sdim ]>; 1074243830Sdim 1075360784Sdimdef ObjCSignedCharBool : DiagGroup<"objc-signed-char-bool", 1076360784Sdim [ObjCSignedCharBoolImplicitIntConversion, 1077360784Sdim ObjCSignedCharBoolImplicitFloatConversion, 1078360784Sdim ObjCBoolConstantConversion, 1079360784Sdim TautologicalObjCBoolCompare]>; 1080360784Sdim 1081243830Sdim// Inline ASM warnings. 1082243830Sdimdef ASMOperandWidths : DiagGroup<"asm-operand-widths">; 1083314564Sdimdef ASMIgnoredQualifier : DiagGroup<"asm-ignored-qualifier">; 1084243830Sdimdef ASM : DiagGroup<"asm", [ 1085314564Sdim ASMOperandWidths, ASMIgnoredQualifier 1086243830Sdim ]>; 1087249423Sdim 1088249423Sdim// OpenMP warnings. 1089249423Sdimdef SourceUsesOpenMP : DiagGroup<"source-uses-openmp">; 1090276479Sdimdef OpenMPClauses : DiagGroup<"openmp-clauses">; 1091276479Sdimdef OpenMPLoopForm : DiagGroup<"openmp-loop-form">; 1092360784Sdimdef OpenMPMapping : DiagGroup<"openmp-mapping">; 1093360784Sdimdef OpenMPTarget : DiagGroup<"openmp-target", [OpenMPMapping]>; 1094360784Sdimdef OpenMP : DiagGroup<"openmp", [ 1095360784Sdim SourceUsesOpenMP, OpenMPClauses, OpenMPLoopForm, OpenMPTarget, OpenMPMapping 1096360784Sdim ]>; 1097276479Sdim 1098276479Sdim// Backend warnings. 1099276479Sdimdef BackendInlineAsm : DiagGroup<"inline-asm">; 1100276479Sdimdef BackendFrameLargerThanEQ : DiagGroup<"frame-larger-than=">; 1101276479Sdimdef BackendPlugin : DiagGroup<"backend-plugin">; 1102276479Sdimdef RemarkBackendPlugin : DiagGroup<"remark-backend-plugin">; 1103276479Sdimdef BackendOptimizationRemark : DiagGroup<"pass">; 1104276479Sdimdef BackendOptimizationRemarkMissed : DiagGroup<"pass-missed">; 1105276479Sdimdef BackendOptimizationRemarkAnalysis : DiagGroup<"pass-analysis">; 1106276479Sdimdef BackendOptimizationFailure : DiagGroup<"pass-failed">; 1107276479Sdim 1108276479Sdim// Instrumentation based profiling warnings. 1109321369Sdimdef ProfileInstrMissing : DiagGroup<"profile-instr-missing">; 1110276479Sdimdef ProfileInstrOutOfDate : DiagGroup<"profile-instr-out-of-date">; 1111276479Sdimdef ProfileInstrUnprofiled : DiagGroup<"profile-instr-unprofiled">; 1112360784Sdimdef MisExpect : DiagGroup<"misexpect">; 1113276479Sdim 1114321369Sdim// AddressSanitizer frontend instrumentation remarks. 1115280031Sdimdef SanitizeAddressRemarks : DiagGroup<"sanitize-address">; 1116280031Sdim 1117280031Sdim// Issues with serialized diagnostics. 1118280031Sdimdef SerializedDiagnostics : DiagGroup<"serialized-diagnostics">; 1119280031Sdim 1120276479Sdim// A warning group for warnings about code that clang accepts when 1121276479Sdim// compiling CUDA C/C++ but which is not compatible with the CUDA spec. 1122276479Sdimdef CudaCompat : DiagGroup<"cuda-compat">; 1123280031Sdim 1124360784Sdim// Warning about unknown CUDA SDK version. 1125360784Sdimdef CudaUnknownVersion: DiagGroup<"unknown-cuda-version">; 1126360784Sdim 1127360784Sdim// A warning group for warnings about features supported by HIP but 1128360784Sdim// ignored by CUDA. 1129360784Sdimdef HIPOnly : DiagGroup<"hip-only">; 1130360784Sdim 1131353358Sdim// Warnings which cause linking of the runtime libraries like 1132353358Sdim// libc and the CRT to be skipped. 1133353358Sdimdef AVRRtlibLinkingQuirks : DiagGroup<"avr-rtlib-linking-quirks">; 1134353358Sdim 1135280031Sdim// A warning group for things that will change semantics in the future. 1136280031Sdimdef FutureCompat : DiagGroup<"future-compat">; 1137296417Sdim 1138296417Sdimdef InvalidOrNonExistentDirectory : DiagGroup<"invalid-or-nonexistent-directory">; 1139296417Sdim 1140296417Sdimdef OptionIgnored : DiagGroup<"option-ignored">; 1141309124Sdim 1142309124Sdimdef UnknownArgument : DiagGroup<"unknown-argument">; 1143314564Sdim 1144314564Sdim// A warning group for warnings about code that clang accepts when 1145314564Sdim// compiling OpenCL C/C++ but which is not compatible with the SPIR spec. 1146314564Sdimdef SpirCompat : DiagGroup<"spir-compat">; 1147328753Sdim 1148328753Sdim// Warning for the experimental-isel options. 1149328753Sdimdef ExperimentalISel : DiagGroup<"experimental-isel">; 1150341825Sdim 1151341825Sdim// A warning group specifically for warnings related to function 1152341825Sdim// multiversioning. 1153341825Sdimdef FunctionMultiVersioning : DiagGroup<"function-multiversion">; 1154344779Sdim 1155344779Sdimdef NoDeref : DiagGroup<"noderef">; 1156344779Sdim 1157344779Sdim// A group for cross translation unit static analysis related warnings. 1158344779Sdimdef CrossTU : DiagGroup<"ctu">; 1159353358Sdim 1160353358Sdimdef CTADMaybeUnsupported : DiagGroup<"ctad-maybe-unsupported">; 1161353358Sdim 1162353358Sdimdef FortifySource : DiagGroup<"fortify-source">; 1163