DiagnosticGroups.td revision 208600
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. 20198092Srdivackydef : DiagGroup<"address">; 21204643Srdivackydef AddressOfTemporary : DiagGroup<"address-of-temporary">; 22193326Seddef : DiagGroup<"aggregate-return">; 23198092Srdivackydef : DiagGroup<"attributes">; 24193326Seddef : DiagGroup<"bad-function-cast">; 25198954Srdivackydef : DiagGroup<"c++-compat">; 26193326Seddef : DiagGroup<"cast-align">; 27193326Seddef : DiagGroup<"cast-qual">; 28193326Seddef : DiagGroup<"char-align">; 29193326Seddef Comment : DiagGroup<"comment">; 30199482Srdivackydef : DiagGroup<"ctor-dtor-privacy">; 31193326Seddef : DiagGroup<"declaration-after-statement">; 32206084Srdivackydef GNUDesignator : DiagGroup<"gnu-designator">; 33204962Srdivackydef Deprecated : DiagGroup<"deprecated">; 34193326Seddef : DiagGroup<"disabled-optimization">; 35193326Seddef : DiagGroup<"discard-qual">; 36194613Seddef : DiagGroup<"div-by-zero">; 37193380Seddef EmptyBody : DiagGroup<"empty-body">; 38193326Seddef ExtraTokens : DiagGroup<"extra-tokens">; 39193326Sed 40193326Seddef FormatExtraArgs : DiagGroup<"format-extra-args">; 41193326Seddef FormatZeroLength : DiagGroup<"format-zero-length">; 42193326Sed 43208600Srdivackydef CXXHexFloats : DiagGroup<"c++-hex-floats">; 44208600Srdivacky 45208600Srdivackydef : DiagGroup<"c++0x-compat", [CXXHexFloats]>; 46193326Seddef FourByteMultiChar : DiagGroup<"four-char-constants">; 47199482Srdivackydef : DiagGroup<"idiomatic-parentheses">; 48198092Srdivackydef : DiagGroup<"import">; 49193326Seddef : DiagGroup<"init-self">; 50193326Seddef : DiagGroup<"inline">; 51193326Seddef : DiagGroup<"int-to-pointer-cast">; 52194613Seddef : DiagGroup<"invalid-pch">; 53204962Srdivackydef LiteralRange : DiagGroup<"literal-range">; 54204962Srdivackydef MissingBraces : DiagGroup<"missing-braces">; 55193326Seddef : DiagGroup<"missing-declarations">; 56193326Seddef : DiagGroup<"missing-format-attribute">; 57198954Srdivackydef : DiagGroup<"missing-include-dirs">; 58193326Seddef : DiagGroup<"missing-noreturn">; 59193326Seddef MultiChar : DiagGroup<"multichar">; 60193326Seddef : DiagGroup<"nested-externs">; 61193326Seddef : DiagGroup<"newline-eof">; 62198092Srdivackydef LongLong : DiagGroup<"long-long">; 63193326Seddef MismatchedTags : DiagGroup<"mismatched-tags">; 64205219Srdivackydef MissingFieldInitializers : DiagGroup<"missing-field-initializers">; 65193326Seddef NonNull : DiagGroup<"nonnull">; 66193326Seddef : DiagGroup<"nonportable-cfstrings">; 67199482Srdivackydef : DiagGroup<"non-virtual-dtor">; 68193326Seddef : DiagGroup<"old-style-definition">; 69198092Srdivackydef : DiagGroup<"overflow">; 70198092Srdivackydef : DiagGroup<"overloaded-virtual">; 71193326Seddef : DiagGroup<"packed">; 72198092Srdivackydef PointerArith : DiagGroup<"pointer-arith">; 73193326Seddef : DiagGroup<"pointer-to-int-cast">; 74193326Seddef : DiagGroup<"redundant-decls">; 75193326Seddef ReturnType : DiagGroup<"return-type">; 76199482Srdivackydef SemiBeforeMethodBody : DiagGroup<"semicolon-before-method-body">; 77193326Seddef : DiagGroup<"sequence-point">; 78205408Srdivackydef Shadow : DiagGroup<"shadow">; 79193326Seddef : DiagGroup<"shorten-64-to-32">; 80199482Srdivackydef SignCompare : DiagGroup<"sign-compare">; 81199482Srdivackydef : DiagGroup<"synth">; 82193326Sed 83198092Srdivacky// Preprocessor warnings. 84198092Srdivackydef : DiagGroup<"builtin-macro-redefined">; 85198092Srdivacky 86199990Srdivacky// Just silence warnings about -Wstrict-aliasing for now. 87193326Seddef : DiagGroup<"strict-aliasing=0">; 88193326Seddef : DiagGroup<"strict-aliasing=1">; 89193326Seddef : DiagGroup<"strict-aliasing=2">; 90193326Seddef : DiagGroup<"strict-aliasing">; 91193326Sed 92199990Srdivacky// Just silence warnings about -Wstrict-overflow for now. 93193326Seddef : DiagGroup<"strict-overflow=0">; 94193326Seddef : DiagGroup<"strict-overflow=1">; 95193326Seddef : DiagGroup<"strict-overflow=2">; 96199990Srdivackydef : DiagGroup<"strict-overflow=3">; 97199990Srdivackydef : DiagGroup<"strict-overflow=4">; 98199990Srdivackydef : DiagGroup<"strict-overflow=5">; 99193326Seddef : DiagGroup<"strict-overflow">; 100193326Sed 101193326Seddef InvalidOffsetof : DiagGroup<"invalid-offsetof">; 102193326Seddef : DiagGroup<"strict-prototypes">; 103193326Seddef : DiagGroup<"strict-selector-match">; 104203955Srdivackydef SwitchEnum : DiagGroup<"switch-enum">; 105203955Srdivackydef Switch : DiagGroup<"switch", [SwitchEnum]>; 106207632Srdivackydef Trigraphs : DiagGroup<"trigraphs">; 107193326Sed 108193326Seddef : DiagGroup<"type-limits">; 109193326Seddef Uninitialized : DiagGroup<"uninitialized">; 110193326Seddef UnknownPragmas : DiagGroup<"unknown-pragmas">; 111193725Seddef UnusedArgument : DiagGroup<"unused-argument">; 112207619Srdivackydef UnusedExceptionParameter : DiagGroup<"unused-exception-parameter">; 113193725Seddef UnusedFunction : DiagGroup<"unused-function">; 114193725Seddef UnusedLabel : DiagGroup<"unused-label">; 115193725Seddef UnusedParameter : DiagGroup<"unused-parameter">; 116193326Seddef UnusedValue : DiagGroup<"unused-value">; 117193326Seddef UnusedVariable : DiagGroup<"unused-variable">; 118194613Seddef ReadOnlySetterAttrs : DiagGroup<"readonly-setter-attrs">; 119198092Srdivackydef Reorder : DiagGroup<"reorder">; 120194613Seddef UndeclaredSelector : DiagGroup<"undeclared-selector">; 121206084Srdivackydef Protocol : DiagGroup<"protocol">; 122198092Srdivackydef SuperSubClassMismatch : DiagGroup<"super-class-method-mismatch">; 123193326Seddef : DiagGroup<"variadic-macros">; 124200583Srdivackydef VariadicMacros : DiagGroup<"variadic-macros">; 125193326Seddef VectorConversions : DiagGroup<"vector-conversions">; // clang specific 126208600Srdivackydef VLA : DiagGroup<"vla">; 127193326Seddef VolatileRegisterVar : DiagGroup<"volatile-register-var">; 128193326Seddef : DiagGroup<"write-strings">; 129198092Srdivackydef CharSubscript : DiagGroup<"char-subscripts">; 130193326Sed 131193326Sed// Aggregation warning settings. 132193326Sed 133199482Srdivacky// -Widiomatic-parentheses contains warnings about 'idiomatic' 134199482Srdivacky// missing parentheses; it is off by default. 135199482Srdivackydef Parentheses : DiagGroup<"parentheses", [DiagGroup<"idiomatic-parentheses">]>; 136193326Sed 137199482Srdivacky// -Wconversion has its own warnings, but we split this one out for 138199482Srdivacky// legacy reasons. 139199482Srdivackydef Conversion : DiagGroup<"conversion", 140207632Srdivacky [DiagGroup<"shorten-64-to-32">]>, 141208600Srdivacky DiagCategory<"Value Conversion Issue">; 142199482Srdivacky 143193725Seddef Unused : DiagGroup<"unused", 144193725Sed [UnusedArgument, UnusedFunction, UnusedLabel, 145207619Srdivacky // UnusedParameter, (matches GCC's behavior) 146208600Srdivacky UnusedValue, UnusedVariable]>, 147208600Srdivacky DiagCategory<"Unused Entity Issue">; 148193725Sed 149193326Sed// Format settings. 150207632Srdivackydef Format : DiagGroup<"format", [FormatExtraArgs, FormatZeroLength, NonNull]>, 151208600Srdivacky DiagCategory<"Format String Issue">; 152193326Seddef FormatSecurity : DiagGroup<"format-security", [Format]>; 153193326Seddef FormatNonLiteral : DiagGroup<"format-nonliteral", [FormatSecurity]>; 154193326Seddef FormatY2K : DiagGroup<"format-y2k", [Format]>; 155193326Seddef Format2 : DiagGroup<"format=2", 156193326Sed [FormatNonLiteral, FormatSecurity, FormatY2K]>; 157193326Sed 158194613Seddef Extra : DiagGroup<"extra", [ 159205219Srdivacky MissingFieldInitializers, 160199482Srdivacky SemiBeforeMethodBody, 161199482Srdivacky SignCompare, 162194613Sed UnusedParameter 163194613Sed ]>; 164193326Sed 165193326Seddef Most : DiagGroup<"most", [ 166207619Srdivacky CharSubscript, 167193326Sed Comment, 168193326Sed Format, 169193326Sed Implicit, 170193326Sed MismatchedTags, 171204962Srdivacky MissingBraces, 172193326Sed MultiChar, 173207619Srdivacky Reorder, 174198092Srdivacky ReturnType, 175193326Sed Switch, 176193326Sed Trigraphs, 177193326Sed Uninitialized, 178193326Sed UnknownPragmas, 179207619Srdivacky Unused, 180193326Sed VectorConversions, 181207619Srdivacky VolatileRegisterVar 182193326Sed ]>; 183193326Sed 184193326Sed// -Wall is -Wmost -Wparentheses 185193326Seddef : DiagGroup<"all", [Most, Parentheses]>; 186193326Sed 187193326Sed// Aliases. 188201361Srdivackydef : DiagGroup<"", [Extra]>; // -W = -Wextra 189201361Srdivackydef : DiagGroup<"endif-labels", [ExtraTokens]>; // -Wendif-labels=-Wendif-tokens 190201361Srdivackydef : DiagGroup<"comments", [Comment]>; // -Wcomments = -Wcomment 191193326Sed 192199482Srdivacky// A warning group for warnings that we want to have on by default in clang, 193199482Srdivacky// but which aren't on by default in GCC. 194199482Srdivackydef NonGCC : DiagGroup<"non-gcc", 195204962Srdivacky [SignCompare, Conversion, LiteralRange]>; 196206084Srdivacky 197206084Srdivacky// A warning group for warnings about GCC extensions. 198208600Srdivackydef GNU : DiagGroup<"gnu", [GNUDesignator, VLA]>; 199