DiagnosticGroups.td revision 280031
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">; 27249423Sdimdef ArrayBounds : DiagGroup<"array-bounds">; 28249423Sdimdef ArrayBoundsPointerArithmetic : DiagGroup<"array-bounds-pointer-arithmetic">; 29221345Sdimdef Availability : DiagGroup<"availability">; 30239462Sdimdef Section : DiagGroup<"section">; 31234353Sdimdef AutoImport : DiagGroup<"auto-import">; 32261991Sdimdef GNUBinaryLiteral : DiagGroup<"gnu-binary-literal">; 33261991Sdimdef GNUCompoundLiteralInitializer : DiagGroup<"gnu-compound-literal-initializer">; 34251662Sdimdef BitFieldConstantConversion : DiagGroup<"bitfield-constant-conversion">; 35251662Sdimdef ConstantConversion : 36251662Sdim DiagGroup<"constant-conversion", [ BitFieldConstantConversion ] >; 37234353Sdimdef LiteralConversion : DiagGroup<"literal-conversion">; 38234353Sdimdef StringConversion : DiagGroup<"string-conversion">; 39234353Sdimdef SignConversion : DiagGroup<"sign-conversion">; 40276479Sdimdef PointerBoolConversion : DiagGroup<"pointer-bool-conversion">; 41276479Sdimdef UndefinedBoolConversion : DiagGroup<"undefined-bool-conversion">; 42276479Sdimdef BoolConversion : DiagGroup<"bool-conversion", [PointerBoolConversion, 43276479Sdim UndefinedBoolConversion]>; 44234353Sdimdef IntConversion : DiagGroup<"int-conversion">; 45243830Sdimdef EnumConversion : DiagGroup<"enum-conversion">; 46276479Sdimdef FloatConversion : DiagGroup<"float-conversion">; 47276479Sdimdef EnumTooLarge : DiagGroup<"enum-too-large">; 48239462Sdimdef NonLiteralNullConversion : DiagGroup<"non-literal-null-conversion">; 49234353Sdimdef NullConversion : DiagGroup<"null-conversion">; 50243830Sdimdef ImplicitConversionFloatingPointToBool : 51243830Sdim DiagGroup<"implicit-conversion-floating-point-to-bool">; 52276479Sdimdef ObjCLiteralConversion : DiagGroup<"objc-literal-conversion">; 53249423Sdimdef BadArrayNewLength : DiagGroup<"bad-array-new-length">; 54276479Sdimdef MacroRedefined : DiagGroup<"macro-redefined">; 55249423Sdimdef BuiltinMacroRedefined : DiagGroup<"builtin-macro-redefined">; 56227737Sdimdef BuiltinRequiresHeader : DiagGroup<"builtin-requires-header">; 57249423Sdimdef C99Compat : DiagGroup<"c99-compat">; 58212904Sdimdef CXXCompat: DiagGroup<"c++-compat">; 59261991Sdimdef ExternCCompat : DiagGroup<"extern-c-compat">; 60261991Sdimdef KeywordCompat : DiagGroup<"keyword-compat">; 61261991Sdimdef GNUCaseRange : DiagGroup<"gnu-case-range">; 62212904Sdimdef CastAlign : DiagGroup<"cast-align">; 63280031Sdimdef CastQual : DiagGroup<"cast-qual">; 64193326Seddef : DiagGroup<"char-align">; 65193326Seddef Comment : DiagGroup<"comment">; 66261991Sdimdef GNUComplexInteger : DiagGroup<"gnu-complex-integer">; 67261991Sdimdef GNUConditionalOmittedOperand : DiagGroup<"gnu-conditional-omitted-operand">; 68249423Sdimdef ConfigMacros : DiagGroup<"config-macros">; 69199482Srdivackydef : DiagGroup<"ctor-dtor-privacy">; 70206084Srdivackydef GNUDesignator : DiagGroup<"gnu-designator">; 71261991Sdimdef GNUStringLiteralOperatorTemplate : 72261991Sdim DiagGroup<"gnu-string-literal-operator-template">; 73212904Sdim 74280031Sdimdef DeleteIncomplete : DiagGroup<"delete-incomplete">; 75223017Sdimdef DeleteNonVirtualDtor : DiagGroup<"delete-non-virtual-dtor">; 76243830Sdimdef AbstractFinalClass : DiagGroup<"abstract-final-class">; 77223017Sdim 78261991Sdimdef CXX11CompatDeprecatedWritableStr : 79261991Sdim DiagGroup<"c++11-compat-deprecated-writable-strings">; 80261991Sdim 81212904Sdimdef DeprecatedDeclarations : DiagGroup<"deprecated-declarations">; 82276479Sdimdef UnavailableDeclarations : DiagGroup<"unavailable-declarations">; 83261991Sdimdef DeprecatedImplementations :DiagGroup<"deprecated-implementations">; 84261991Sdimdef DeprecatedIncrementBool : DiagGroup<"deprecated-increment-bool">; 85261991Sdimdef DeprecatedRegister : DiagGroup<"deprecated-register">; 86261991Sdimdef DeprecatedWritableStr : DiagGroup<"deprecated-writable-strings", 87261991Sdim [CXX11CompatDeprecatedWritableStr]>; 88276479Sdim// FIXME: Why is DeprecatedImplementations not in this group? 89261991Sdimdef Deprecated : DiagGroup<"deprecated", [DeprecatedDeclarations, 90261991Sdim DeprecatedIncrementBool, 91276479Sdim DeprecatedRegister, 92276479Sdim DeprecatedWritableStr]>, 93212904Sdim DiagCategory<"Deprecations">; 94212904Sdim 95193326Seddef : DiagGroup<"disabled-optimization">; 96193326Seddef : DiagGroup<"discard-qual">; 97194613Seddef : DiagGroup<"div-by-zero">; 98243830Sdim 99239462Sdimdef DocumentationHTML : DiagGroup<"documentation-html">; 100251662Sdimdef DocumentationUnknownCommand : DiagGroup<"documentation-unknown-command">; 101251662Sdimdef DocumentationPedantic : DiagGroup<"documentation-pedantic", 102251662Sdim [DocumentationUnknownCommand]>; 103243830Sdimdef DocumentationDeprecatedSync : DiagGroup<"documentation-deprecated-sync">; 104243830Sdimdef Documentation : DiagGroup<"documentation", 105243830Sdim [DocumentationHTML, 106243830Sdim DocumentationDeprecatedSync]>; 107243830Sdim 108193380Seddef EmptyBody : DiagGroup<"empty-body">; 109261991Sdimdef GNUEmptyInitializer : DiagGroup<"gnu-empty-initializer">; 110261991Sdimdef GNUEmptyStruct : DiagGroup<"gnu-empty-struct">; 111193326Seddef ExtraTokens : DiagGroup<"extra-tokens">; 112239462Sdimdef CXX11ExtraSemi : DiagGroup<"c++11-extra-semi">; 113239462Sdimdef ExtraSemi : DiagGroup<"extra-semi", [CXX11ExtraSemi]>; 114193326Sed 115261991Sdimdef GNUFlexibleArrayInitializer : DiagGroup<"gnu-flexible-array-initializer">; 116261991Sdimdef GNUFlexibleArrayUnionMember : DiagGroup<"gnu-flexible-array-union-member">; 117261991Sdimdef GNUFoldingConstant : DiagGroup<"gnu-folding-constant">; 118193326Seddef FormatExtraArgs : DiagGroup<"format-extra-args">; 119193326Seddef FormatZeroLength : DiagGroup<"format-zero-length">; 120193326Sed 121251662Sdim// Warnings for C++1y code which is not compatible with prior C++ standards. 122280031Sdimdef CXXPre14Compat : DiagGroup<"c++98-c++11-compat">; 123280031Sdimdef CXXPre14CompatPedantic : DiagGroup<"c++98-c++11-compat-pedantic", 124280031Sdim [CXXPre14Compat]>; 125276479Sdimdef CXXPre1zCompat : DiagGroup<"c++98-c++11-c++14-compat">; 126276479Sdimdef CXXPre1zCompatPedantic : DiagGroup<"c++98-c++11-c++14-compat-pedantic", 127276479Sdim [CXXPre1zCompat]>; 128251662Sdim 129234353Sdimdef CXX98CompatBindToTemporaryCopy : 130234353Sdim DiagGroup<"c++98-compat-bind-to-temporary-copy">; 131234353Sdimdef CXX98CompatLocalTypeTemplateArgs : 132234353Sdim DiagGroup<"c++98-compat-local-type-template-args">; 133234353Sdimdef CXX98CompatUnnamedTypeTemplateArgs : 134234353Sdim DiagGroup<"c++98-compat-unnamed-type-template-args">; 135234353Sdim 136234353Sdimdef CXX98Compat : DiagGroup<"c++98-compat", 137280031Sdim [CXX98CompatLocalTypeTemplateArgs, 138251662Sdim CXX98CompatUnnamedTypeTemplateArgs, 139280031Sdim CXXPre14Compat, 140276479Sdim CXXPre1zCompat]>; 141226633Sdim// Warnings for C++11 features which are Extensions in C++98 mode. 142251662Sdimdef CXX98CompatPedantic : DiagGroup<"c++98-compat-pedantic", 143251662Sdim [CXX98Compat, 144280031Sdim CXX98CompatBindToTemporaryCopy, 145280031Sdim CXXPre14CompatPedantic, 146276479Sdim CXXPre1zCompatPedantic]>; 147208600Srdivacky 148226633Sdimdef CXX11Narrowing : DiagGroup<"c++11-narrowing">; 149234353Sdim 150280031Sdimdef CXX11WarnOverrideMethod : DiagGroup<"inconsistent-missing-override">; 151280031Sdim 152234353Sdim// Original name of this warning in Clang 153226633Sdimdef : DiagGroup<"c++0x-narrowing", [CXX11Narrowing]>; 154226633Sdim 155234353Sdim// Name of this warning in GCC 156234353Sdimdef : DiagGroup<"narrowing", [CXX11Narrowing]>; 157234353Sdim 158234353Sdimdef CXX11CompatReservedUserDefinedLiteral : 159234353Sdim DiagGroup<"c++11-compat-reserved-user-defined-literal">; 160234353Sdimdef ReservedUserDefinedLiteral : 161234353Sdim DiagGroup<"reserved-user-defined-literal", 162234353Sdim [CXX11CompatReservedUserDefinedLiteral]>; 163234353Sdim 164234353Sdimdef CXX11Compat : DiagGroup<"c++11-compat", 165234353Sdim [CXX11Narrowing, 166251662Sdim CXX11CompatReservedUserDefinedLiteral, 167261991Sdim CXX11CompatDeprecatedWritableStr, 168280031Sdim CXXPre14Compat, 169276479Sdim CXXPre1zCompat]>; 170226633Sdimdef : DiagGroup<"c++0x-compat", [CXX11Compat]>; 171251662Sdimdef CXX11CompatPedantic : DiagGroup<"c++11-compat-pedantic", 172280031Sdim [CXXPre14CompatPedantic, 173276479Sdim CXXPre1zCompatPedantic]>; 174226633Sdim 175276479Sdimdef CXX14Compat : DiagGroup<"c++14-compat", [CXXPre1zCompat]>; 176276479Sdimdef CXX14CompatPedantic : DiagGroup<"c++14-compat-pedantic", 177276479Sdim [CXXPre1zCompatPedantic]>; 178276479Sdim 179212904Sdimdef : DiagGroup<"effc++">; 180239462Sdimdef DivZero : DiagGroup<"division-by-zero">; 181221345Sdimdef ExitTimeDestructors : DiagGroup<"exit-time-destructors">; 182234353Sdimdef FlexibleArrayExtensions : DiagGroup<"flexible-array-extensions">; 183193326Seddef FourByteMultiChar : DiagGroup<"four-char-constants">; 184212904Sdimdef GlobalConstructors : DiagGroup<"global-constructors">; 185224145Sdimdef BitwiseOpParentheses: DiagGroup<"bitwise-op-parentheses">; 186218893Sdimdef LogicalOpParentheses: DiagGroup<"logical-op-parentheses">; 187261991Sdimdef LogicalNotParentheses: DiagGroup<"logical-not-parentheses">; 188243830Sdimdef ShiftOpParentheses: DiagGroup<"shift-op-parentheses">; 189251662Sdimdef OverloadedShiftOpParentheses: DiagGroup<"overloaded-shift-op-parentheses">; 190234353Sdimdef DanglingElse: DiagGroup<"dangling-else">; 191249423Sdimdef DanglingField : DiagGroup<"dangling-field">; 192249423Sdimdef DistributedObjectModifiers : DiagGroup<"distributed-object-modifiers">; 193276479Sdimdef InfiniteRecursion : DiagGroup<"infinite-recursion">; 194261991Sdimdef GNUImaginaryConstant : DiagGroup<"gnu-imaginary-constant">; 195210299Seddef IgnoredQualifiers : DiagGroup<"ignored-qualifiers">; 196198092Srdivackydef : DiagGroup<"import">; 197276479Sdimdef IncompatibleMSStruct : DiagGroup<"incompatible-ms-struct">; 198249423Sdimdef IncompatiblePointerTypesDiscardsQualifiers 199249423Sdim : DiagGroup<"incompatible-pointer-types-discards-qualifiers">; 200249423Sdimdef IncompatiblePointerTypes 201249423Sdim : DiagGroup<"incompatible-pointer-types", 202249423Sdim [IncompatiblePointerTypesDiscardsQualifiers]>; 203234353Sdimdef IncompleteUmbrella : DiagGroup<"incomplete-umbrella">; 204276479Sdimdef NonModularIncludeInFrameworkModule 205276479Sdim : DiagGroup<"non-modular-include-in-framework-module">; 206276479Sdimdef NonModularIncludeInModule : DiagGroup<"non-modular-include-in-module", 207276479Sdim [NonModularIncludeInFrameworkModule]>; 208280031Sdimdef IncompleteModule : DiagGroup<"incomplete-module", 209280031Sdim [IncompleteUmbrella, NonModularIncludeInModule]>; 210280031Sdim 211249423Sdimdef InvalidNoreturn : DiagGroup<"invalid-noreturn">; 212249423Sdimdef InvalidSourceEncoding : DiagGroup<"invalid-source-encoding">; 213234353Sdimdef KNRPromotedParameter : DiagGroup<"knr-promoted-parameter">; 214193326Seddef : DiagGroup<"init-self">; 215193326Seddef : DiagGroup<"inline">; 216194613Seddef : DiagGroup<"invalid-pch">; 217261991Sdimdef GNULabelsAsValue : DiagGroup<"gnu-label-as-value">; 218204962Srdivackydef LiteralRange : DiagGroup<"literal-range">; 219234353Sdimdef LocalTypeTemplateArgs : DiagGroup<"local-type-template-args", 220234353Sdim [CXX98CompatLocalTypeTemplateArgs]>; 221261991Sdimdef LoopAnalysis : DiagGroup<"loop-analysis">; 222226633Sdimdef MalformedWarningCheck : DiagGroup<"malformed-warning-check">; 223226633Sdimdef Main : DiagGroup<"main">; 224234353Sdimdef MainReturnType : DiagGroup<"main-return-type">; 225204962Srdivackydef MissingBraces : DiagGroup<"missing-braces">; 226212904Sdimdef MissingDeclarations: DiagGroup<"missing-declarations">; 227193326Seddef : DiagGroup<"missing-format-attribute">; 228198954Srdivackydef : DiagGroup<"missing-include-dirs">; 229249423Sdimdef MissingNoreturn : DiagGroup<"missing-noreturn">; 230193326Seddef MultiChar : DiagGroup<"multichar">; 231193326Seddef : DiagGroup<"nested-externs">; 232243830Sdimdef CXX11LongLong : DiagGroup<"c++11-long-long">; 233243830Sdimdef LongLong : DiagGroup<"long-long", [CXX11LongLong]>; 234249423Sdimdef MethodSignatures : DiagGroup<"method-signatures">; 235243830Sdimdef MismatchedParameterTypes : DiagGroup<"mismatched-parameter-types">; 236243830Sdimdef MismatchedReturnTypes : DiagGroup<"mismatched-return-types">; 237193326Seddef MismatchedTags : DiagGroup<"mismatched-tags">; 238205219Srdivackydef MissingFieldInitializers : DiagGroup<"missing-field-initializers">; 239280031Sdimdef ModuleBuild : DiagGroup<"module-build">; 240249423Sdimdef ModuleConflict : DiagGroup<"module-conflict">; 241261991Sdimdef NewlineEOF : DiagGroup<"newline-eof">; 242249423Sdimdef NullArithmetic : DiagGroup<"null-arithmetic">; 243234353Sdimdef NullCharacter : DiagGroup<"null-character">; 244218893Sdimdef NullDereference : DiagGroup<"null-dereference">; 245210299Seddef InitializerOverrides : DiagGroup<"initializer-overrides">; 246193326Seddef NonNull : DiagGroup<"nonnull">; 247249423Sdimdef NonPODVarargs : DiagGroup<"non-pod-varargs">; 248276479Sdimdef ClassVarargs : DiagGroup<"class-varargs", [NonPODVarargs]>; 249193326Seddef : DiagGroup<"nonportable-cfstrings">; 250218893Sdimdef NonVirtualDtor : DiagGroup<"non-virtual-dtor">; 251234353Sdimdef OveralignedType : DiagGroup<"over-aligned">; 252276479Sdimdef OldStyleCast : DiagGroup<"old-style-cast">; 253193326Seddef : DiagGroup<"old-style-definition">; 254212904Sdimdef OutOfLineDeclaration : DiagGroup<"out-of-line-declaration">; 255198092Srdivackydef : DiagGroup<"overflow">; 256239462Sdimdef ForwardClassReceiver : DiagGroup<"receiver-forward-class">; 257239462Sdimdef MethodAccess : DiagGroup<"objc-method-access">; 258239462Sdimdef ObjCReceiver : DiagGroup<"receiver-expr">; 259276479Sdimdef OperatorNewReturnsNull : DiagGroup<"new-returns-null">; 260212904Sdimdef OverlengthStrings : DiagGroup<"overlength-strings">; 261218893Sdimdef OverloadedVirtual : DiagGroup<"overloaded-virtual">; 262239462Sdimdef PrivateExtern : DiagGroup<"private-extern">; 263239462Sdimdef SelTypeCast : DiagGroup<"cast-of-sel-type">; 264276479Sdimdef FunctionDefInObjCContainer : DiagGroup<"function-def-in-objc-container">; 265243830Sdimdef BadFunctionCast : DiagGroup<"bad-function-cast">; 266234353Sdimdef ObjCPropertyImpl : DiagGroup<"objc-property-implementation">; 267239462Sdimdef ObjCPropertyNoAttribute : DiagGroup<"objc-property-no-attribute">; 268226633Sdimdef ObjCMissingSuperCalls : DiagGroup<"objc-missing-super-calls">; 269276479Sdimdef ObjCDesignatedInit : DiagGroup<"objc-designated-initializers">; 270226633Sdimdef ObjCRetainBlockProperty : DiagGroup<"objc-noncopy-retain-block-property">; 271234353Sdimdef ObjCReadonlyPropertyHasSetter : DiagGroup<"objc-readonly-with-setter-property">; 272261991Sdimdef ObjCInvalidIBOutletProperty : DiagGroup<"invalid-iboutlet">; 273234353Sdimdef ObjCRootClass : DiagGroup<"objc-root-class">; 274261991Sdimdef ObjCPointerIntrospectPerformSelector : DiagGroup<"deprecated-objc-pointer-introspection-performSelector">; 275261991Sdimdef ObjCPointerIntrospect : DiagGroup<"deprecated-objc-pointer-introspection", [ObjCPointerIntrospectPerformSelector]>; 276280031Sdimdef ObjCMultipleMethodNames : DiagGroup<"objc-multiple-method-names">; 277249423Sdimdef DeprecatedObjCIsaUsage : DiagGroup<"deprecated-objc-isa-usage">; 278280031Sdimdef ExplicitInitializeCall : DiagGroup<"explicit-initialize-call">; 279218893Sdimdef Packed : DiagGroup<"packed">; 280218893Sdimdef Padded : DiagGroup<"padded">; 281198092Srdivackydef PointerArith : DiagGroup<"pointer-arith">; 282276479Sdimdef PoundWarning : DiagGroup<"#warnings">; 283234353Sdimdef PoundPragmaMessage : DiagGroup<"#pragma-messages">, 284221345Sdim DiagCategory<"#pragma message Directive">; 285193326Seddef : DiagGroup<"pointer-to-int-cast">; 286193326Seddef : DiagGroup<"redundant-decls">; 287261991Sdimdef RedeclaredClassMember : DiagGroup<"redeclared-class-member">; 288261991Sdimdef GNURedeclaredEnum : DiagGroup<"gnu-redeclared-enum">; 289249423Sdimdef ReturnStackAddress : DiagGroup<"return-stack-address">; 290234353Sdimdef ReturnTypeCLinkage : DiagGroup<"return-type-c-linkage">; 291234353Sdimdef ReturnType : DiagGroup<"return-type", [ReturnTypeCLinkage]>; 292234353Sdimdef BindToTemporaryCopy : DiagGroup<"bind-to-temporary-copy", 293234353Sdim [CXX98CompatBindToTemporaryCopy]>; 294239462Sdimdef SelfAssignmentField : DiagGroup<"self-assign-field">; 295239462Sdimdef SelfAssignment : DiagGroup<"self-assign", [SelfAssignmentField]>; 296280031Sdimdef SelfMove : DiagGroup<"self-move">; 297199482Srdivackydef SemiBeforeMethodBody : DiagGroup<"semicolon-before-method-body">; 298226633Sdimdef Sentinel : DiagGroup<"sentinel">; 299226633Sdimdef MissingMethodReturnType : DiagGroup<"missing-method-return-type">; 300205408Srdivackydef Shadow : DiagGroup<"shadow">; 301243830Sdimdef Shorten64To32 : DiagGroup<"shorten-64-to-32">; 302210299Seddef : DiagGroup<"sign-promo">; 303199482Srdivackydef SignCompare : DiagGroup<"sign-compare">; 304212904Sdimdef : DiagGroup<"stack-protector">; 305212904Sdimdef : DiagGroup<"switch-default">; 306199482Srdivackydef : DiagGroup<"synth">; 307224145Sdimdef SizeofArrayArgument : DiagGroup<"sizeof-array-argument">; 308249423Sdimdef SizeofArrayDecay : DiagGroup<"sizeof-array-decay">; 309249423Sdimdef SizeofPointerMemaccess : DiagGroup<"sizeof-pointer-memaccess">; 310249423Sdimdef StaticInInline : DiagGroup<"static-in-inline">; 311249423Sdimdef StaticLocalInInline : DiagGroup<"static-local-in-inline">; 312249423Sdimdef GNUStaticFloatInit : DiagGroup<"gnu-static-float-init">; 313249423Sdimdef StaticFloatInit : DiagGroup<"static-float-init", [GNUStaticFloatInit]>; 314261991Sdimdef GNUStatementExpression : DiagGroup<"gnu-statement-expression">; 315276479Sdimdef StringCompare : DiagGroup<"string-compare">; 316234353Sdimdef StringPlusInt : DiagGroup<"string-plus-int">; 317261991Sdimdef StringPlusChar : DiagGroup<"string-plus-char">; 318234353Sdimdef StrncatSize : DiagGroup<"strncat-size">; 319243830Sdimdef TautologicalOutOfRangeCompare : DiagGroup<"tautological-constant-out-of-range-compare">; 320276479Sdimdef TautologicalPointerCompare : DiagGroup<"tautological-pointer-compare">; 321276479Sdimdef TautologicalOverlapCompare : DiagGroup<"tautological-overlap-compare">; 322276479Sdimdef TautologicalUndefinedCompare : DiagGroup<"tautological-undefined-compare">; 323243830Sdimdef TautologicalCompare : DiagGroup<"tautological-compare", 324276479Sdim [TautologicalOutOfRangeCompare, 325276479Sdim TautologicalPointerCompare, 326276479Sdim TautologicalOverlapCompare, 327276479Sdim TautologicalUndefinedCompare]>; 328221345Sdimdef HeaderHygiene : DiagGroup<"header-hygiene">; 329243830Sdimdef DuplicateDeclSpecifier : DiagGroup<"duplicate-decl-specifier">; 330243830Sdimdef CompareDistinctPointerType : DiagGroup<"compare-distinct-pointer-types">; 331261991Sdimdef GNUUnionCast : DiagGroup<"gnu-union-cast">; 332261991Sdimdef GNUVariableSizedTypeNotAtEnd : DiagGroup<"gnu-variable-sized-type-not-at-end">; 333261991Sdimdef Varargs : DiagGroup<"varargs">; 334193326Sed 335249423Sdimdef Unsequenced : DiagGroup<"unsequenced">; 336249423Sdim// GCC name for -Wunsequenced 337249423Sdimdef : DiagGroup<"sequence-point", [Unsequenced]>; 338249423Sdim 339198092Srdivacky// Preprocessor warnings. 340243830Sdimdef AmbiguousMacro : DiagGroup<"ambiguous-macro">; 341280031Sdimdef KeywordAsMacro : DiagGroup<"keyword-macro">; 342280031Sdimdef ReservedIdAsMacro : DiagGroup<"reserved-id-macro">; 343198092Srdivacky 344199990Srdivacky// Just silence warnings about -Wstrict-aliasing for now. 345193326Seddef : DiagGroup<"strict-aliasing=0">; 346193326Seddef : DiagGroup<"strict-aliasing=1">; 347193326Seddef : DiagGroup<"strict-aliasing=2">; 348193326Seddef : DiagGroup<"strict-aliasing">; 349193326Sed 350199990Srdivacky// Just silence warnings about -Wstrict-overflow for now. 351193326Seddef : DiagGroup<"strict-overflow=0">; 352193326Seddef : DiagGroup<"strict-overflow=1">; 353193326Seddef : DiagGroup<"strict-overflow=2">; 354199990Srdivackydef : DiagGroup<"strict-overflow=3">; 355199990Srdivackydef : DiagGroup<"strict-overflow=4">; 356199990Srdivackydef : DiagGroup<"strict-overflow=5">; 357193326Seddef : DiagGroup<"strict-overflow">; 358193326Sed 359193326Seddef InvalidOffsetof : DiagGroup<"invalid-offsetof">; 360193326Seddef : DiagGroup<"strict-prototypes">; 361212904Sdimdef StrictSelector : DiagGroup<"strict-selector-match">; 362234353Sdimdef MethodDuplicate : DiagGroup<"duplicate-method-match">; 363280031Sdimdef ObjCCStringFormat : DiagGroup<"cstring-format-directive">; 364234353Sdimdef CoveredSwitchDefault : DiagGroup<"covered-switch-default">; 365276479Sdimdef SwitchBool : DiagGroup<"switch-bool">; 366203955Srdivackydef SwitchEnum : DiagGroup<"switch-enum">; 367234353Sdimdef Switch : DiagGroup<"switch">; 368239462Sdimdef ImplicitFallthroughPerFunction : 369239462Sdim DiagGroup<"implicit-fallthrough-per-function">; 370239462Sdimdef ImplicitFallthrough : DiagGroup<"implicit-fallthrough", 371239462Sdim [ImplicitFallthroughPerFunction]>; 372239462Sdimdef InvalidPPToken : DiagGroup<"invalid-pp-token">; 373207632Srdivackydef Trigraphs : DiagGroup<"trigraphs">; 374193326Sed 375193326Seddef : DiagGroup<"type-limits">; 376249423Sdimdef UndefinedReinterpretCast : DiagGroup<"undefined-reinterpret-cast">; 377249423Sdimdef ReinterpretBaseClass : DiagGroup<"reinterpret-base-class">; 378234353Sdimdef Unicode : DiagGroup<"unicode">; 379221345Sdimdef UninitializedMaybe : DiagGroup<"conditional-uninitialized">; 380239462Sdimdef UninitializedSometimes : DiagGroup<"sometimes-uninitialized">; 381249423Sdimdef UninitializedStaticSelfInit : DiagGroup<"static-self-init">; 382249423Sdimdef Uninitialized : DiagGroup<"uninitialized", [UninitializedSometimes, 383249423Sdim UninitializedStaticSelfInit]>; 384193326Seddef UnknownPragmas : DiagGroup<"unknown-pragmas">; 385276479Sdimdef IgnoredPragmas : DiagGroup<"ignored-pragmas">; 386276479Sdimdef Pragmas : DiagGroup<"pragmas", [UnknownPragmas, IgnoredPragmas]>; 387249423Sdimdef UnknownWarningOption : DiagGroup<"unknown-warning-option">; 388234353Sdimdef NSobjectAttribute : DiagGroup<"NSObject-attribute">; 389276479Sdimdef UnknownAttributes : DiagGroup<"unknown-attributes">; 390234353Sdimdef IgnoredAttributes : DiagGroup<"ignored-attributes">; 391276479Sdimdef Attributes : DiagGroup<"attributes", [UnknownAttributes, 392276479Sdim IgnoredAttributes]>; 393234353Sdimdef UnnamedTypeTemplateArgs : DiagGroup<"unnamed-type-template-args", 394234353Sdim [CXX98CompatUnnamedTypeTemplateArgs]>; 395261991Sdimdef UnsupportedFriend : DiagGroup<"unsupported-friend">; 396193725Seddef UnusedArgument : DiagGroup<"unused-argument">; 397276479Sdimdef UnusedCommandLineArgument : DiagGroup<"unused-command-line-argument">; 398280031Sdimdef IgnoredOptimizationArgument : DiagGroup<"ignored-optimization-argument">; 399280031Sdimdef InvalidCommandLineArgument : DiagGroup<"invalid-command-line-argument", 400280031Sdim [IgnoredOptimizationArgument]>; 401226633Sdimdef UnusedComparison : DiagGroup<"unused-comparison">; 402207619Srdivackydef UnusedExceptionParameter : DiagGroup<"unused-exception-parameter">; 403221345Sdimdef UnneededInternalDecl : DiagGroup<"unneeded-internal-declaration">; 404221345Sdimdef UnneededMemberFunction : DiagGroup<"unneeded-member-function">; 405239462Sdimdef UnusedPrivateField : DiagGroup<"unused-private-field">; 406221345Sdimdef UnusedFunction : DiagGroup<"unused-function", [UnneededInternalDecl]>; 407221345Sdimdef UnusedMemberFunction : DiagGroup<"unused-member-function", 408221345Sdim [UnneededMemberFunction]>; 409193725Seddef UnusedLabel : DiagGroup<"unused-label">; 410193725Seddef UnusedParameter : DiagGroup<"unused-parameter">; 411226633Sdimdef UnusedResult : DiagGroup<"unused-result">; 412280031Sdimdef PotentiallyEvaluatedExpression : DiagGroup<"potentially-evaluated-expression">; 413280031Sdimdef UnevaluatedExpression : DiagGroup<"unevaluated-expression", 414280031Sdim [PotentiallyEvaluatedExpression]>; 415280031Sdimdef UnusedValue : DiagGroup<"unused-value", [UnusedComparison, UnusedResult, 416280031Sdim UnevaluatedExpression]>; 417261991Sdimdef UnusedConstVariable : DiagGroup<"unused-const-variable">; 418261991Sdimdef UnusedVariable : DiagGroup<"unused-variable", 419261991Sdim [UnusedConstVariable]>; 420280031Sdimdef UnusedLocalTypedef : DiagGroup<"unused-local-typedef">; 421261991Sdimdef UnusedPropertyIvar : DiagGroup<"unused-property-ivar">; 422280031Sdimdef UnusedGetterReturnValue : DiagGroup<"unused-getter-return-value">; 423218893Sdimdef UsedButMarkedUnused : DiagGroup<"used-but-marked-unused">; 424226633Sdimdef UserDefinedLiterals : DiagGroup<"user-defined-literals">; 425198092Srdivackydef Reorder : DiagGroup<"reorder">; 426194613Seddef UndeclaredSelector : DiagGroup<"undeclared-selector">; 427218893Sdimdef ImplicitAtomic : DiagGroup<"implicit-atomic-properties">; 428218893Sdimdef CustomAtomic : DiagGroup<"custom-atomic-properties">; 429218893Sdimdef AtomicProperties : DiagGroup<"atomic-properties", 430218893Sdim [ImplicitAtomic, CustomAtomic]>; 431224145Sdimdef ARCUnsafeRetainedAssign : DiagGroup<"arc-unsafe-retained-assign">; 432224145Sdimdef ARCRetainCycles : DiagGroup<"arc-retain-cycles">; 433224145Sdimdef ARCNonPodMemAccess : DiagGroup<"arc-non-pod-memaccess">; 434224145Sdimdef AutomaticReferenceCounting : DiagGroup<"arc", 435243830Sdim [ARCUnsafeRetainedAssign, 436224145Sdim ARCRetainCycles, 437224145Sdim ARCNonPodMemAccess]>; 438243830Sdimdef ARCRepeatedUseOfWeakMaybe : DiagGroup<"arc-maybe-repeated-use-of-weak">; 439243830Sdimdef ARCRepeatedUseOfWeak : DiagGroup<"arc-repeated-use-of-weak", 440243830Sdim [ARCRepeatedUseOfWeakMaybe]>; 441261991Sdimdef ObjCBridge : DiagGroup<"bridge-cast">; 442261991Sdim 443276479Sdimdef DeallocInCategory:DiagGroup<"dealloc-in-category">; 444261991Sdimdef SelectorTypeMismatch : DiagGroup<"selector-type-mismatch">; 445261991Sdimdef Selector : DiagGroup<"selector", [SelectorTypeMismatch]>; 446206084Srdivackydef Protocol : DiagGroup<"protocol">; 447280031Sdimdef AtProtocol : DiagGroup<"at-protocol">; 448280031Sdimdef PropertyAccessDotSyntax: DiagGroup<"property-access-dot-syntax">; 449280031Sdimdef PropertyAttr : DiagGroup<"property-attribute-mismatch">; 450198092Srdivackydef SuperSubClassMismatch : DiagGroup<"super-class-method-mismatch">; 451226633Sdimdef OverridingMethodMismatch : DiagGroup<"overriding-method-mismatch">; 452200583Srdivackydef VariadicMacros : DiagGroup<"variadic-macros">; 453234353Sdimdef VectorConversion : DiagGroup<"vector-conversion">; // clang specific 454234353Sdimdef VexingParse : DiagGroup<"vexing-parse">; 455208600Srdivackydef VLA : DiagGroup<"vla">; 456249423Sdimdef VLAExtension : DiagGroup<"vla-extension">; 457193326Seddef VolatileRegisterVar : DiagGroup<"volatile-register-var">; 458234353Sdimdef Visibility : DiagGroup<"visibility">; 459243830Sdimdef ZeroLengthArray : DiagGroup<"zero-length-array">; 460261991Sdimdef GNUZeroLineDirective : DiagGroup<"gnu-zero-line-directive">; 461261991Sdimdef GNUZeroVariadicMacroArguments : DiagGroup<"gnu-zero-variadic-macro-arguments">; 462276479Sdimdef Fallback : DiagGroup<"fallback">; 463221345Sdim 464276479Sdim// This covers both the deprecated case (in C++98) 465276479Sdim// and the extension case (in C++11 onwards). 466276479Sdimdef WritableStrings : DiagGroup<"writable-strings", [DeprecatedWritableStr]>; 467276479Sdim 468221345Sdim// GCC calls -Wdeprecated-writable-strings -Wwrite-strings. 469276479Sdim// 470276479Sdim// Bizarrely, this warning flag enables -fconst-strings in C. This is 471276479Sdim// GCC-compatible, but really weird. 472276479Sdim// 473276479Sdim// FIXME: Should this affect C++11 (where this is an error, 474276479Sdim// not just deprecated) or not? 475276479Sdimdef GCCWriteStrings : DiagGroup<"write-strings" , [WritableStrings]>; 476221345Sdim 477198092Srdivackydef CharSubscript : DiagGroup<"char-subscripts">; 478218893Sdimdef LargeByValueCopy : DiagGroup<"large-by-value-copy">; 479221345Sdimdef DuplicateArgDecl : DiagGroup<"duplicate-method-arg">; 480193326Sed 481276479Sdim// Unreachable code warning groups. 482276479Sdim// 483276479Sdim// The goal is make -Wunreachable-code on by default, in -Wall, or at 484276479Sdim// least actively used, with more noisy versions of the warning covered 485276479Sdim// under separate flags. 486276479Sdim// 487276479Sdimdef UnreachableCodeLoopIncrement : DiagGroup<"unreachable-code-loop-increment">; 488276479Sdimdef UnreachableCode : DiagGroup<"unreachable-code", 489276479Sdim [UnreachableCodeLoopIncrement]>; 490276479Sdimdef UnreachableCodeBreak : DiagGroup<"unreachable-code-break">; 491276479Sdimdef UnreachableCodeReturn : DiagGroup<"unreachable-code-return">; 492276479Sdimdef UnreachableCodeAggressive : DiagGroup<"unreachable-code-aggressive", 493276479Sdim [UnreachableCode, 494276479Sdim UnreachableCodeBreak, 495276479Sdim UnreachableCodeReturn]>; 496276479Sdim 497193326Sed// Aggregation warning settings. 498193326Sed 499276479Sdim// Populate -Waddress with warnings from other groups. 500276479Sdimdef : DiagGroup<"address", [PointerBoolConversion, 501276479Sdim StringCompare, 502276479Sdim TautologicalPointerCompare]>; 503276479Sdim 504199482Srdivacky// -Widiomatic-parentheses contains warnings about 'idiomatic' 505221345Sdim// missing parentheses; it is off by default. We do not include it 506221345Sdim// in -Wparentheses because most users who use -Wparentheses explicitly 507221345Sdim// do not want these warnings. 508226633Sdimdef ParenthesesOnEquality : DiagGroup<"parentheses-equality">; 509218893Sdimdef Parentheses : DiagGroup<"parentheses", 510224145Sdim [LogicalOpParentheses, 511261991Sdim LogicalNotParentheses, 512226633Sdim BitwiseOpParentheses, 513243830Sdim ShiftOpParentheses, 514251662Sdim OverloadedShiftOpParentheses, 515234353Sdim ParenthesesOnEquality, 516234353Sdim DanglingElse]>; 517193326Sed 518218893Sdim// -Wconversion has its own warnings, but we split a few out for 519218893Sdim// legacy reasons: 520218893Sdim// - some people want just 64-to-32 warnings 521218893Sdim// - conversion warnings with constant sources are on by default 522218893Sdim// - conversion warnings for literals are on by default 523218893Sdim// - bool-to-pointer conversion warnings are on by default 524234353Sdim// - __null-to-integer conversion warnings are on by default 525199482Srdivackydef Conversion : DiagGroup<"conversion", 526243830Sdim [BoolConversion, 527234353Sdim ConstantConversion, 528243830Sdim EnumConversion, 529276479Sdim FloatConversion, 530243830Sdim Shorten64To32, 531243830Sdim IntConversion, 532234353Sdim LiteralConversion, 533243830Sdim NonLiteralNullConversion, // (1-1)->pointer (etc) 534243830Sdim NullConversion, // NULL->non-pointer 535276479Sdim ObjCLiteralConversion, 536234353Sdim SignConversion, 537243830Sdim StringConversion]>, 538208600Srdivacky DiagCategory<"Value Conversion Issue">; 539199482Srdivacky 540193725Seddef Unused : DiagGroup<"unused", 541193725Sed [UnusedArgument, UnusedFunction, UnusedLabel, 542207619Srdivacky // UnusedParameter, (matches GCC's behavior) 543212904Sdim // UnusedMemberFunction, (clean-up llvm before enabling) 544280031Sdim UnusedPrivateField, UnusedLocalTypedef, 545261991Sdim UnusedValue, UnusedVariable, UnusedPropertyIvar]>, 546208600Srdivacky DiagCategory<"Unused Entity Issue">; 547193725Sed 548193326Sed// Format settings. 549226633Sdimdef FormatInvalidSpecifier : DiagGroup<"format-invalid-specifier">; 550219077Sdimdef FormatSecurity : DiagGroup<"format-security">; 551234353Sdimdef FormatNonStandard : DiagGroup<"format-non-iso">; 552224145Sdimdef FormatY2K : DiagGroup<"format-y2k">; 553219077Sdimdef Format : DiagGroup<"format", 554219077Sdim [FormatExtraArgs, FormatZeroLength, NonNull, 555226633Sdim FormatSecurity, FormatY2K, FormatInvalidSpecifier]>, 556208600Srdivacky DiagCategory<"Format String Issue">; 557276479Sdimdef FormatNonLiteral : DiagGroup<"format-nonliteral">; 558193326Seddef Format2 : DiagGroup<"format=2", 559193326Sed [FormatNonLiteral, FormatSecurity, FormatY2K]>; 560193326Sed 561239462Sdimdef TypeSafety : DiagGroup<"type-safety">; 562239462Sdim 563261991Sdimdef IntToVoidPointerCast : DiagGroup<"int-to-void-pointer-cast">; 564261991Sdimdef IntToPointerCast : DiagGroup<"int-to-pointer-cast", 565261991Sdim [IntToVoidPointerCast]>; 566243830Sdim 567194613Seddef Extra : DiagGroup<"extra", [ 568205219Srdivacky MissingFieldInitializers, 569210299Sed IgnoredQualifiers, 570210299Sed InitializerOverrides, 571199482Srdivacky SemiBeforeMethodBody, 572226633Sdim MissingMethodReturnType, 573199482Srdivacky SignCompare, 574194613Sed UnusedParameter 575194613Sed ]>; 576193326Sed 577193326Seddef Most : DiagGroup<"most", [ 578207619Srdivacky CharSubscript, 579193326Sed Comment, 580223017Sdim DeleteNonVirtualDtor, 581193326Sed Format, 582193326Sed Implicit, 583193326Sed MismatchedTags, 584204962Srdivacky MissingBraces, 585193326Sed MultiChar, 586207619Srdivacky Reorder, 587198092Srdivacky ReturnType, 588218893Sdim SelfAssignment, 589280031Sdim SelfMove, 590224145Sdim SizeofArrayArgument, 591249423Sdim SizeofArrayDecay, 592234353Sdim StringPlusInt, 593193326Sed Trigraphs, 594193326Sed Uninitialized, 595193326Sed UnknownPragmas, 596207619Srdivacky Unused, 597218893Sdim VolatileRegisterVar, 598226633Sdim ObjCMissingSuperCalls, 599276479Sdim ObjCDesignatedInit, 600239462Sdim OverloadedVirtual, 601239462Sdim PrivateExtern, 602261991Sdim SelTypeCast, 603261991Sdim ExternCCompat 604193326Sed ]>; 605193326Sed 606226633Sdim// Thread Safety warnings 607239462Sdimdef ThreadSafetyAttributes : DiagGroup<"thread-safety-attributes">; 608243830Sdimdef ThreadSafetyAnalysis : DiagGroup<"thread-safety-analysis">; 609243830Sdimdef ThreadSafetyPrecise : DiagGroup<"thread-safety-precise">; 610280031Sdimdef ThreadSafetyReference : DiagGroup<"thread-safety-reference">; 611280031Sdimdef ThreadSafetyNegative : DiagGroup<"thread-safety-negative">; 612243830Sdimdef ThreadSafety : DiagGroup<"thread-safety", 613243830Sdim [ThreadSafetyAttributes, 614243830Sdim ThreadSafetyAnalysis, 615280031Sdim ThreadSafetyPrecise, 616280031Sdim ThreadSafetyReference]>; 617280031Sdimdef ThreadSafetyVerbose : DiagGroup<"thread-safety-verbose">; 618249423Sdimdef ThreadSafetyBeta : DiagGroup<"thread-safety-beta">; 619226633Sdim 620261991Sdim// Uniqueness Analysis warnings 621261991Sdimdef Consumed : DiagGroup<"consumed">; 622261991Sdim 623234353Sdim// Note that putting warnings in -Wall will not disable them by default. If a 624234353Sdim// warning should be active _only_ when -Wall is passed in, mark it as 625234353Sdim// DefaultIgnore in addition to putting it here. 626276479Sdimdef : DiagGroup<"all", [Most, Parentheses, Switch, SwitchBool]>; 627193326Sed 628239462Sdim// Warnings enabled by -pedantic. This is magically filled in by TableGen. 629239462Sdimdef Pedantic : DiagGroup<"pedantic">; 630239462Sdim 631193326Sed// Aliases. 632201361Srdivackydef : DiagGroup<"", [Extra]>; // -W = -Wextra 633261991Sdimdef : DiagGroup<"endif-labels", [ExtraTokens]>; // -Wendif-labels=-Wextra-tokens 634201361Srdivackydef : DiagGroup<"comments", [Comment]>; // -Wcomments = -Wcomment 635234353Sdimdef : DiagGroup<"conversion-null", 636234353Sdim [NullConversion]>; // -Wconversion-null = -Wnull-conversion 637234353Sdimdef : DiagGroup<"bool-conversions", 638234353Sdim [BoolConversion]>; // -Wbool-conversions = -Wbool-conversion 639234353Sdimdef : DiagGroup<"int-conversions", 640234353Sdim [IntConversion]>; // -Wint-conversions = -Wint-conversion 641234353Sdimdef : DiagGroup<"vector-conversions", 642234353Sdim [VectorConversion]>; // -Wvector-conversions = -Wvector-conversion 643280031Sdimdef : DiagGroup<"unused-local-typedefs", [UnusedLocalTypedef]>; 644280031Sdim // -Wunused-local-typedefs = -Wunused-local-typedef 645193326Sed 646199482Srdivacky// A warning group for warnings that we want to have on by default in clang, 647199482Srdivacky// but which aren't on by default in GCC. 648199482Srdivackydef NonGCC : DiagGroup<"non-gcc", 649204962Srdivacky [SignCompare, Conversion, LiteralRange]>; 650206084Srdivacky 651226633Sdim// A warning group for warnings about using C++11 features as extensions in 652218893Sdim// earlier C++ versions. 653243830Sdimdef CXX11 : DiagGroup<"c++11-extensions", [CXX11ExtraSemi, CXX11LongLong]>; 654243830Sdim 655280031Sdim// A warning group for warnings about using C++14 features as extensions in 656251662Sdim// earlier C++ versions. 657280031Sdimdef CXX14 : DiagGroup<"c++14-extensions">; 658251662Sdim 659276479Sdim// A warning group for warnings about using C++1z features as extensions in 660276479Sdim// earlier C++ versions. 661276479Sdimdef CXX1z : DiagGroup<"c++1z-extensions">; 662276479Sdim 663226633Sdimdef : DiagGroup<"c++0x-extensions", [CXX11]>; 664280031Sdimdef : DiagGroup<"c++1y-extensions", [CXX14]>; 665280031Sdim 666223017Sdimdef DelegatingCtorCycles : 667223017Sdim DiagGroup<"delegating-ctor-cycles">; 668218893Sdim 669234353Sdim// A warning group for warnings about using C11 features as extensions. 670234353Sdimdef C11 : DiagGroup<"c11-extensions">; 671226633Sdim 672234353Sdim// A warning group for warnings about using C99 features as extensions. 673234353Sdimdef C99 : DiagGroup<"c99-extensions">; 674234353Sdim 675206084Srdivacky// A warning group for warnings about GCC extensions. 676261991Sdimdef GNU : DiagGroup<"gnu", [GNUAlignofExpression, GNUAnonymousStruct, 677261991Sdim GNUBinaryLiteral, GNUCaseRange, 678261991Sdim GNUComplexInteger, GNUCompoundLiteralInitializer, 679261991Sdim GNUConditionalOmittedOperand, GNUDesignator, 680261991Sdim GNUEmptyInitializer, GNUEmptyStruct, 681261991Sdim VLAExtension, GNUFlexibleArrayInitializer, 682261991Sdim GNUFlexibleArrayUnionMember, GNUFoldingConstant, 683261991Sdim GNUImaginaryConstant, GNULabelsAsValue, 684261991Sdim RedeclaredClassMember, GNURedeclaredEnum, 685261991Sdim GNUStatementExpression, GNUStaticFloatInit, 686261991Sdim GNUStringLiteralOperatorTemplate, 687261991Sdim GNUUnionCast, GNUVariableSizedTypeNotAtEnd, 688261991Sdim ZeroLengthArray, GNUZeroLineDirective, 689261991Sdim GNUZeroVariadicMacroArguments]>; 690234353Sdim// A warning group for warnings about code that clang accepts but gcc doesn't. 691234353Sdimdef GccCompat : DiagGroup<"gcc-compat">; 692218893Sdim 693218893Sdim// A warning group for warnings about Microsoft extensions. 694218893Sdimdef Microsoft : DiagGroup<"microsoft">; 695224145Sdim 696224145Sdimdef ObjCNonUnifiedException : DiagGroup<"objc-nonunified-exceptions">; 697224145Sdim 698226633Sdimdef ObjCProtocolMethodImpl : DiagGroup<"objc-protocol-method-implementation">; 699234353Sdim 700249423Sdimdef ObjCNoPropertyAutoSynthesis : DiagGroup<"objc-property-synthesis">; 701249423Sdim 702234353Sdim// ObjC API warning groups. 703234353Sdimdef ObjCRedundantLiteralUse : DiagGroup<"objc-redundant-literal-use">; 704234353Sdimdef ObjCRedundantAPIUse : DiagGroup<"objc-redundant-api-use", [ 705234353Sdim ObjCRedundantLiteralUse 706234353Sdim ]>; 707234353Sdim 708234353Sdimdef ObjCCocoaAPI : DiagGroup<"objc-cocoa-api", [ 709234353Sdim ObjCRedundantAPIUse 710234353Sdim ]>; 711239462Sdim 712239462Sdimdef ObjCStringComparison : DiagGroup<"objc-string-compare">; 713261991Sdimdef ObjCStringConcatenation : DiagGroup<"objc-string-concatenation">; 714239462Sdimdef ObjCLiteralComparison : DiagGroup<"objc-literal-compare", [ 715239462Sdim ObjCStringComparison 716239462Sdim ]>; 717243830Sdim 718243830Sdim// Inline ASM warnings. 719243830Sdimdef ASMOperandWidths : DiagGroup<"asm-operand-widths">; 720243830Sdimdef ASM : DiagGroup<"asm", [ 721243830Sdim ASMOperandWidths 722243830Sdim ]>; 723249423Sdim 724249423Sdim// OpenMP warnings. 725249423Sdimdef SourceUsesOpenMP : DiagGroup<"source-uses-openmp">; 726276479Sdimdef OpenMPClauses : DiagGroup<"openmp-clauses">; 727276479Sdimdef OpenMPLoopForm : DiagGroup<"openmp-loop-form">; 728276479Sdim 729276479Sdim// Backend warnings. 730276479Sdimdef BackendInlineAsm : DiagGroup<"inline-asm">; 731276479Sdimdef BackendFrameLargerThanEQ : DiagGroup<"frame-larger-than=">; 732276479Sdimdef BackendPlugin : DiagGroup<"backend-plugin">; 733276479Sdimdef RemarkBackendPlugin : DiagGroup<"remark-backend-plugin">; 734276479Sdimdef BackendOptimizationRemark : DiagGroup<"pass">; 735276479Sdimdef BackendOptimizationRemarkMissed : DiagGroup<"pass-missed">; 736276479Sdimdef BackendOptimizationRemarkAnalysis : DiagGroup<"pass-analysis">; 737276479Sdimdef BackendOptimizationFailure : DiagGroup<"pass-failed">; 738276479Sdim 739276479Sdim// Instrumentation based profiling warnings. 740276479Sdimdef ProfileInstrOutOfDate : DiagGroup<"profile-instr-out-of-date">; 741276479Sdimdef ProfileInstrUnprofiled : DiagGroup<"profile-instr-unprofiled">; 742276479Sdim 743280031Sdim// AddressSanitizer frontent instrumentation remarks. 744280031Sdimdef SanitizeAddressRemarks : DiagGroup<"sanitize-address">; 745280031Sdim 746280031Sdim// Issues with serialized diagnostics. 747280031Sdimdef SerializedDiagnostics : DiagGroup<"serialized-diagnostics">; 748280031Sdim 749276479Sdim// A warning group for warnings about code that clang accepts when 750276479Sdim// compiling CUDA C/C++ but which is not compatible with the CUDA spec. 751276479Sdimdef CudaCompat : DiagGroup<"cuda-compat">; 752280031Sdim 753280031Sdim// A warning group for things that will change semantics in the future. 754280031Sdimdef FutureCompat : DiagGroup<"future-compat">; 755