diff --git a/cxx-sensors/src/main/resources/clangtidy.xml b/cxx-sensors/src/main/resources/clangtidy.xml
index 85547133e3..c9fe279d90 100644
--- a/cxx-sensors/src/main/resources/clangtidy.xml
+++ b/cxx-sensors/src/main/resources/clangtidy.xml
@@ -8255,4 +8255,12042 @@ Derived(); // and so temporary construction is okay
MAJOR
BUG
+
+ clang-diagnostic-#pragma-messages
+ clang-diagnostic-#pragma-messages
+ Diagnostic text:
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-#warnings
+ clang-diagnostic-#warnings
+ Diagnostic text:
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-CFString-literal
+ clang-diagnostic-CFString-literal
+ Diagnostic text:
+
+- warning: input conversion stopped due to an input byte that does not belong to the input codeset UTF-8
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-CL4
+ clang-diagnostic-CL4
+ Diagnostic text:
+
+- warning: #pragma warning expected '%0'
+- warning: #pragma warning expected 'push', 'pop', 'default', 'disable', 'error', 'once', 'suppress', 1, 2, 3, or 4
+- warning: #pragma warning expected a warning number
+- warning: #pragma warning(push, level) requires a level between 0 and 4
+- warning: %0
+- warning: %0 has C-linkage specified, but returns incomplete type %1 which could be incompatible with C
+- warning: %0 has C-linkage specified, but returns user-defined type %1 which is incompatible with C
+- warning: %0 has lower precedence than %1; %1 will be evaluated first
+- warning: %2 defined as %select{a struct|an interface|a class}0%select{| template}1 here but previously declared as %select{a struct|an interface|a class}3%select{| template}1
+- warning: %plural{1:enumeration value %1 not handled in switch|2:enumeration values %1 and %2 not handled in switch|3:enumeration values %1, %2, and %3 not handled in switch|:%0 enumeration values not handled in switch: %1, %2, %3...}0
+- warning: %q0 hides overloaded virtual %select{function|functions}1
+- warning: %select{delete|destructor}0 called on %1 that is abstract but has non-virtual destructor
+- warning: %select{delete|destructor}0 called on non-final %1 that has virtual functions but non-virtual destructor
+- warning: %select{equality|inequality|relational|three-way}0 comparison result unused
+- warning: %select{field width|precision}0 used with '%1' conversion specifier, resulting in undefined behavior
+- warning: %select{field|base class}0 %1 will be initialized after %select{field|base}2 %3
+- warning: %select{function|variable}0 %1 is not needed and will not be emitted
+- warning: %select{struct|interface|class}0%select{| template}1 %2 was previously declared as a %select{struct|interface|class}3%select{| template}1
+- warning: %select{values of type|enum values with underlying type}2 '%0' should not be used as format arguments; add an explicit cast to %1 instead
+- warning: %select{void function|void method|constructor|destructor}1 %0 should not return a value
+- warning: %select{|empty }0%select{struct|union}1 has size 0 in C, %select{size 1|non-zero size}2 in C++
+- warning: '%0' is not a valid object format flag
+- warning: '%0' qualifier on function type %1 has no effect
+- warning: '%0' qualifier on omitted return type %1 has no effect
+- warning: '%0' qualifier on reference type %1 has no effect
+- warning: '%0' type qualifier%s1 on return type %plural{1:has|:have}1 no effect
+- warning: '%0' within '%1'
+- warning: '%select{*|.*}0' specified field %select{width|precision}0 is missing a matching 'int' argument
+- warning: '&&' within '||'
+- warning: '/*' within block comment
+- warning: 'static' function %0 declared in header file should be declared 'static inline'
+- warning: // comments are not allowed in this language
+- warning: ARC %select{unused|__unsafe_unretained|__strong|__weak|__autoreleasing}0 lifetime qualifier on return type is ignored
+- warning: add explicit braces to avoid dangling else
+- warning: adding %0 to a string does not append to the string
+- warning: all paths through this function will call itself
+- warning: angle-bracketed include <%0> cannot be aliased to double-quoted include "%1"
+- warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension
+- warning: array section %select{lower bound|length}0 is of type 'char'
+- warning: array subscript is of type 'char'
+- warning: assigning %select{field|instance variable}0 to itself
+- warning: base class %0 is uninitialized when used here to access %q1
+- warning: block pointer variable %0 is uninitialized when captured by block
+- warning: call to function without interrupt attribute could clobber interruptee's VFP registers
+- warning: cannot mix positional and non-positional arguments in format string
+- warning: case value not in enumerated type %0
+- warning: cast of type %0 to %1 is deprecated; use sel_getName instead
+- warning: comparison of integers of different signs: %0 and %1
+- warning: container access result unused - container access should not be used for side effects
+- warning: control may reach end of coroutine; which is undefined behavior because the promise type %0 does not declare 'return_void()'
+- warning: control may reach end of non-void function
+- warning: control may reach end of non-void lambda
+- warning: control reaches end of coroutine; which is undefined behavior because the promise type %0 does not declare 'return_void()'
+- warning: control reaches end of non-void function
+- warning: control reaches end of non-void lambda
+- warning: convenience initializer missing a 'self' call to another initializer
+- warning: convenience initializer should not invoke an initializer on 'super'
+- warning: data argument not used by format string
+- warning: data argument position '%0' exceeds the number of data arguments (%1)
+- warning: designated initializer invoked a non-designated initializer
+- warning: designated initializer missing a 'super' call to a designated initializer of the super class
+- warning: designated initializer should only invoke a designated initializer on 'super'
+- warning: double-quoted include "%0" cannot be aliased to angle-bracketed include <%1>
+- warning: equality comparison with extraneous parentheses
+- warning: escaped newline between */ characters at block comment end
+- warning: expected 'ON' or 'OFF' or 'DEFAULT' in pragma
+- warning: expected end of directive in pragma
+- warning: explicitly assigning value of variable of type %0 to itself
+- warning: explicitly assigning value of variable of type %0 to itself
+- warning: explicitly moving variable of type %0 to itself
+- warning: explicitly moving variable of type %0 to itself
+- warning: expression result unused
+- warning: expression result unused; should this cast be to 'void'?
+- warning: expression with side effects has no effect in an unevaluated context
+- warning: expression with side effects will be evaluated despite being used as an operand to 'typeid'
+- warning: field %0 can overwrite instance variable %1 with variable sized type %2 in superclass %3
+- warning: field %0 is uninitialized when used here
+- warning: field %0 with variable sized type %1 is not visible to subclasses and can conflict with their instance variables
+- warning: field %select{width|precision}0 should have type %1, but argument has type %2
+- warning: flag '%0' is ignored when flag '%1' is present
+- warning: flag '%0' results in undefined behavior with '%1' conversion specifier
+- warning: format specifies type %0 but the argument has %select{type|underlying type}2 %1
+- warning: format string contains '\0' within the string body
+- warning: format string is empty
+- warning: format string is not a string literal (potentially insecure)
+- warning: format string is not null-terminated
+- warning: format string missing
+- warning: format string should not be a wide string
+- warning: ignored trigraph would end block comment
+- warning: ignoring return value of function declared with %0 attribute
+- warning: ignoring return value of function declared with %0 attribute
+- warning: implicit declaration of function %0
+- warning: implicit declaration of function %0 is invalid in C99
+- warning: implicitly declaring library function '%0' with type %1
+- warning: incomplete format specifier
+- warning: initializer overrides prior initialization of this subobject
+- warning: invalid conversion specifier '%0'
+- warning: invalid position specified for %select{field width|field precision}0
+- warning: ivar %0 which backs the property is not referenced in this property's accessor
+- warning: lambda capture %0 is not %select{used|required to be captured for this use}1
+- warning: length modifier '%0' results in undefined behavior or no effect with '%1' conversion specifier
+- warning: local variable %0 will be copied despite being %select{returned|thrown}1 by name
+- warning: logical not is only applied to the left hand side of this %select{comparison|bitwise operator}0
+- warning: method has no return type specified; defaults to 'id'
+- warning: method override for the designated initializer of the superclass %objcinstance0 not found
+- warning: method possibly missing a [super %0] call
+- warning: missing field %0 initializer
+- warning: missing object format flag
+- warning: more '%%' conversions than data arguments
+- warning: moving a local object in a return statement prevents copy elision
+- warning: moving a temporary object prevents copy elision
+- warning: multi-character character constant
+- warning: multi-line // comment
+- warning: no closing ']' for '%%[' in scanf format string
+- warning: non-void %select{function|method}1 %0 should return a value
+- warning: non-void %select{function|method}1 %0 should return a value
+- warning: null passed to a callee that requires a non-null argument
+- warning: null returned from %select{function|method}0 that requires a non-null return value
+- warning: object format flags cannot be used with '%0' conversion specifier
+- warning: operator '%0' has lower precedence than '%1'; '%1' will be evaluated first
+- warning: operator '?:' has lower precedence than '%0'; '%0' will be evaluated first
+- warning: overflow converting case value to switch condition type (%0 to %1)
+- warning: overloaded operator %select{>>|<<}0 has higher precedence than comparison operator
+- warning: performing pointer arithmetic on a null pointer has undefined behavior%select{| if the offset is nonzero}0
+- warning: position arguments in format strings start counting at 1 (not 0)
+- warning: pragma STDC FENV_ACCESS ON is not supported, ignoring pragma
+- warning: pragma diagnostic expected 'error', 'warning', 'ignored', 'fatal', 'push', or 'pop'
+- warning: pragma diagnostic expected option name (e.g. "-Wundef")
+- warning: pragma diagnostic pop could not pop, no matching push
+- warning: pragma include_alias expected '%0'
+- warning: pragma include_alias expected include filename
+- warning: private field %0 is not used
+- warning: redundant move in return statement
+- warning: reference %0 is not yet bound to a value when used here
+- warning: reference %0 is not yet bound to a value when used within its own initialization
+- warning: semicolon before method body is ignored
+- warning: sizeof on array function parameter will return size of %0 instead of %1
+- warning: sizeof on pointer operation will return size of %0 instead of %1
+- warning: static variable %0 is suspiciously used within its own initialization
+- warning: subobject initialization overrides initialization of other fields within its enclosing subobject
+- warning: suggest braces around initialization of subobject
+- warning: switch condition has boolean value
+- warning: trigraph converted to '%0' character
+- warning: trigraph ends block comment
+- warning: trigraph ignored
+- warning: type specifier missing, defaults to 'int'
+- warning: unexpected token in pragma diagnostic
+- warning: unknown pragma ignored
+- warning: unknown pragma in STDC namespace
+- warning: unused %select{typedef|type alias}0 %1
+- warning: unused function %0
+- warning: unused label %0
+- warning: unused parameter %0
+- warning: unused variable %0
+- warning: unused variable %0
+- warning: use of __private_extern__ on a declaration may not produce external symbol private to the linkage unit and is deprecated
+- warning: use of unknown builtin %0
+- warning: using '%%P' format specifier without precision
+- warning: using '%0' format specifier annotation outside of os_log()/os_trace()
+- warning: using the result of an assignment as a condition without parentheses
+- warning: variable %0 is %select{decremented|incremented}1 both in the loop header and in the loop body
+- warning: variable %0 is %select{used|captured}1 uninitialized whenever %select{'%3' condition is %select{true|false}4|'%3' loop %select{is entered|exits because its condition is false}4|'%3' loop %select{condition is true|exits because its condition is false}4|switch %3 is taken|its declaration is reached|%3 is called}2
+- warning: variable %0 is uninitialized when %select{used here|captured by block}1
+- warning: variable %0 is uninitialized when used within its own initialization
+- warning: variable%select{s| %1|s %1 and %2|s %1, %2, and %3|s %1, %2, %3, and %4}0 used in loop condition not modified in loop body
+- warning: zero field width in scanf format string is unused
+
+References
+Diagnostic flags in Clang
+ ]]>
+ CRITICAL
+ CODE_SMELL
+
+
+ clang-diagnostic-IndependentClass-attribute
+ clang-diagnostic-IndependentClass-attribute
+ Diagnostic text:
+
+- warning: 'objc_independent_class' attribute may be put on Objective-C object pointer type only; attribute is ignored
+- warning: 'objc_independent_class' attribute may be put on a typedef only; attribute is ignored
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-NSObject-attribute
+ clang-diagnostic-NSObject-attribute
+ Diagnostic text:
+
+- warning: 'NSObject' attribute may be put on a typedef only; attribute is ignored
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-absolute-value
+ clang-diagnostic-absolute-value
+ Diagnostic text:
+
+- warning: absolute value function %0 given an argument of type %1 but has parameter of type %2 which may cause truncation of value
+- warning: taking the absolute value of %select{pointer|function|array}0 type %1 is suspicious
+- warning: taking the absolute value of unsigned type %0 has no effect
+- warning: using %select{integer|floating point|complex}1 absolute value function %0 when argument is of %select{integer|floating point|complex}2 type
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-abstract-final-class
+ clang-diagnostic-abstract-final-class
+ Diagnostic text:
+
+- warning: abstract class is marked '%select{final|sealed}0'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-abstract-vbase-init
+ clang-diagnostic-abstract-vbase-init
+ Diagnostic text:
+
+- warning: initializer for virtual base class %0 of abstract class %1 will never be used
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-address
+ clang-diagnostic-address
+ Diagnostic text:
+
+- warning: address of%select{| function| array}0 '%1' will always evaluate to 'true'
+- warning: comparison of %select{address of|function|array}0 '%1' %select{not |}2equal to a null pointer is always %select{true|false}2
+- warning: comparison of nonnull %select{function call|parameter}0 '%1' %select{not |}2equal to a null pointer is '%select{true|false}2' on first encounter
+- warning: nonnull %select{function call|parameter}0 '%1' will evaluate to 'true' on first encounter
+- warning: result of comparison against %select{a string literal|@encode}0 is unspecified (use strncmp instead)
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-address-of-packed-member
+ clang-diagnostic-address-of-packed-member
+ Diagnostic text:
+
+- warning: taking address of packed member %0 of class or structure %q1 may result in an unaligned pointer value
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-address-of-temporary
+ clang-diagnostic-address-of-temporary
+ Diagnostic text:
+
+- warning: taking the address of a temporary object of type %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ CRITICAL
+ CODE_SMELL
+
+
+ clang-diagnostic-all
+ clang-diagnostic-all
+ Diagnostic text:
+
+- warning: #pragma warning expected '%0'
+- warning: #pragma warning expected 'push', 'pop', 'default', 'disable', 'error', 'once', 'suppress', 1, 2, 3, or 4
+- warning: #pragma warning expected a warning number
+- warning: #pragma warning(push, level) requires a level between 0 and 4
+- warning: %0
+- warning: %0 has C-linkage specified, but returns incomplete type %1 which could be incompatible with C
+- warning: %0 has C-linkage specified, but returns user-defined type %1 which is incompatible with C
+- warning: %0 has lower precedence than %1; %1 will be evaluated first
+- warning: %2 defined as %select{a struct|an interface|a class}0%select{| template}1 here but previously declared as %select{a struct|an interface|a class}3%select{| template}1
+- warning: %plural{1:enumeration value %1 not handled in switch|2:enumeration values %1 and %2 not handled in switch|3:enumeration values %1, %2, and %3 not handled in switch|:%0 enumeration values not handled in switch: %1, %2, %3...}0
+- warning: %q0 hides overloaded virtual %select{function|functions}1
+- warning: %select{delete|destructor}0 called on %1 that is abstract but has non-virtual destructor
+- warning: %select{delete|destructor}0 called on non-final %1 that has virtual functions but non-virtual destructor
+- warning: %select{equality|inequality|relational|three-way}0 comparison result unused
+- warning: %select{field width|precision}0 used with '%1' conversion specifier, resulting in undefined behavior
+- warning: %select{field|base class}0 %1 will be initialized after %select{field|base}2 %3
+- warning: %select{function|variable}0 %1 is not needed and will not be emitted
+- warning: %select{struct|interface|class}0%select{| template}1 %2 was previously declared as a %select{struct|interface|class}3%select{| template}1
+- warning: %select{values of type|enum values with underlying type}2 '%0' should not be used as format arguments; add an explicit cast to %1 instead
+- warning: %select{void function|void method|constructor|destructor}1 %0 should not return a value
+- warning: %select{|empty }0%select{struct|union}1 has size 0 in C, %select{size 1|non-zero size}2 in C++
+- warning: '%0' is not a valid object format flag
+- warning: '%0' within '%1'
+- warning: '%select{*|.*}0' specified field %select{width|precision}0 is missing a matching 'int' argument
+- warning: '&&' within '||'
+- warning: '/*' within block comment
+- warning: 'static' function %0 declared in header file should be declared 'static inline'
+- warning: // comments are not allowed in this language
+- warning: add explicit braces to avoid dangling else
+- warning: adding %0 to a string does not append to the string
+- warning: all paths through this function will call itself
+- warning: angle-bracketed include <%0> cannot be aliased to double-quoted include "%1"
+- warning: array section %select{lower bound|length}0 is of type 'char'
+- warning: array subscript is of type 'char'
+- warning: assigning %select{field|instance variable}0 to itself
+- warning: base class %0 is uninitialized when used here to access %q1
+- warning: block pointer variable %0 is uninitialized when captured by block
+- warning: cannot mix positional and non-positional arguments in format string
+- warning: case value not in enumerated type %0
+- warning: cast of type %0 to %1 is deprecated; use sel_getName instead
+- warning: container access result unused - container access should not be used for side effects
+- warning: control may reach end of coroutine; which is undefined behavior because the promise type %0 does not declare 'return_void()'
+- warning: control may reach end of non-void function
+- warning: control may reach end of non-void lambda
+- warning: control reaches end of coroutine; which is undefined behavior because the promise type %0 does not declare 'return_void()'
+- warning: control reaches end of non-void function
+- warning: control reaches end of non-void lambda
+- warning: convenience initializer missing a 'self' call to another initializer
+- warning: convenience initializer should not invoke an initializer on 'super'
+- warning: data argument not used by format string
+- warning: data argument position '%0' exceeds the number of data arguments (%1)
+- warning: designated initializer invoked a non-designated initializer
+- warning: designated initializer missing a 'super' call to a designated initializer of the super class
+- warning: designated initializer should only invoke a designated initializer on 'super'
+- warning: double-quoted include "%0" cannot be aliased to angle-bracketed include <%1>
+- warning: equality comparison with extraneous parentheses
+- warning: escaped newline between */ characters at block comment end
+- warning: expected 'ON' or 'OFF' or 'DEFAULT' in pragma
+- warning: expected end of directive in pragma
+- warning: explicitly assigning value of variable of type %0 to itself
+- warning: explicitly assigning value of variable of type %0 to itself
+- warning: explicitly moving variable of type %0 to itself
+- warning: explicitly moving variable of type %0 to itself
+- warning: expression result unused
+- warning: expression result unused; should this cast be to 'void'?
+- warning: expression with side effects has no effect in an unevaluated context
+- warning: expression with side effects will be evaluated despite being used as an operand to 'typeid'
+- warning: field %0 can overwrite instance variable %1 with variable sized type %2 in superclass %3
+- warning: field %0 is uninitialized when used here
+- warning: field %0 with variable sized type %1 is not visible to subclasses and can conflict with their instance variables
+- warning: field %select{width|precision}0 should have type %1, but argument has type %2
+- warning: flag '%0' is ignored when flag '%1' is present
+- warning: flag '%0' results in undefined behavior with '%1' conversion specifier
+- warning: format specifies type %0 but the argument has %select{type|underlying type}2 %1
+- warning: format string contains '\0' within the string body
+- warning: format string is empty
+- warning: format string is not a string literal (potentially insecure)
+- warning: format string is not null-terminated
+- warning: format string missing
+- warning: format string should not be a wide string
+- warning: ignored trigraph would end block comment
+- warning: ignoring return value of function declared with %0 attribute
+- warning: ignoring return value of function declared with %0 attribute
+- warning: implicit declaration of function %0
+- warning: implicit declaration of function %0 is invalid in C99
+- warning: implicitly declaring library function '%0' with type %1
+- warning: incomplete format specifier
+- warning: invalid conversion specifier '%0'
+- warning: invalid position specified for %select{field width|field precision}0
+- warning: ivar %0 which backs the property is not referenced in this property's accessor
+- warning: lambda capture %0 is not %select{used|required to be captured for this use}1
+- warning: length modifier '%0' results in undefined behavior or no effect with '%1' conversion specifier
+- warning: local variable %0 will be copied despite being %select{returned|thrown}1 by name
+- warning: logical not is only applied to the left hand side of this %select{comparison|bitwise operator}0
+- warning: method override for the designated initializer of the superclass %objcinstance0 not found
+- warning: method possibly missing a [super %0] call
+- warning: missing object format flag
+- warning: more '%%' conversions than data arguments
+- warning: moving a local object in a return statement prevents copy elision
+- warning: moving a temporary object prevents copy elision
+- warning: multi-character character constant
+- warning: multi-line // comment
+- warning: no closing ']' for '%%[' in scanf format string
+- warning: non-void %select{function|method}1 %0 should return a value
+- warning: non-void %select{function|method}1 %0 should return a value
+- warning: null passed to a callee that requires a non-null argument
+- warning: null returned from %select{function|method}0 that requires a non-null return value
+- warning: object format flags cannot be used with '%0' conversion specifier
+- warning: operator '%0' has lower precedence than '%1'; '%1' will be evaluated first
+- warning: operator '?:' has lower precedence than '%0'; '%0' will be evaluated first
+- warning: overflow converting case value to switch condition type (%0 to %1)
+- warning: overloaded operator %select{>>|<<}0 has higher precedence than comparison operator
+- warning: position arguments in format strings start counting at 1 (not 0)
+- warning: pragma STDC FENV_ACCESS ON is not supported, ignoring pragma
+- warning: pragma diagnostic expected 'error', 'warning', 'ignored', 'fatal', 'push', or 'pop'
+- warning: pragma diagnostic expected option name (e.g. "-Wundef")
+- warning: pragma diagnostic pop could not pop, no matching push
+- warning: pragma include_alias expected '%0'
+- warning: pragma include_alias expected include filename
+- warning: private field %0 is not used
+- warning: redundant move in return statement
+- warning: reference %0 is not yet bound to a value when used here
+- warning: reference %0 is not yet bound to a value when used within its own initialization
+- warning: sizeof on array function parameter will return size of %0 instead of %1
+- warning: sizeof on pointer operation will return size of %0 instead of %1
+- warning: static variable %0 is suspiciously used within its own initialization
+- warning: suggest braces around initialization of subobject
+- warning: switch condition has boolean value
+- warning: trigraph converted to '%0' character
+- warning: trigraph ends block comment
+- warning: trigraph ignored
+- warning: type specifier missing, defaults to 'int'
+- warning: unexpected token in pragma diagnostic
+- warning: unknown pragma ignored
+- warning: unknown pragma in STDC namespace
+- warning: unused %select{typedef|type alias}0 %1
+- warning: unused function %0
+- warning: unused label %0
+- warning: unused variable %0
+- warning: unused variable %0
+- warning: use of __private_extern__ on a declaration may not produce external symbol private to the linkage unit and is deprecated
+- warning: use of unknown builtin %0
+- warning: using '%%P' format specifier without precision
+- warning: using '%0' format specifier annotation outside of os_log()/os_trace()
+- warning: using the result of an assignment as a condition without parentheses
+- warning: variable %0 is %select{decremented|incremented}1 both in the loop header and in the loop body
+- warning: variable %0 is %select{used|captured}1 uninitialized whenever %select{'%3' condition is %select{true|false}4|'%3' loop %select{is entered|exits because its condition is false}4|'%3' loop %select{condition is true|exits because its condition is false}4|switch %3 is taken|its declaration is reached|%3 is called}2
+- warning: variable %0 is uninitialized when %select{used here|captured by block}1
+- warning: variable %0 is uninitialized when used within its own initialization
+- warning: variable%select{s| %1|s %1 and %2|s %1, %2, and %3|s %1, %2, %3, and %4}0 used in loop condition not modified in loop body
+- warning: zero field width in scanf format string is unused
+
+References
+Diagnostic flags in Clang
+ ]]>
+ CRITICAL
+ CODE_SMELL
+
+
+ clang-diagnostic-alloca-with-align-alignof
+ clang-diagnostic-alloca-with-align-alignof
+ Diagnostic text:
+
+- warning: second argument to __builtin_alloca_with_align is supposed to be in bits
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-ambiguous-delete
+ clang-diagnostic-ambiguous-delete
+ Diagnostic text:
+
+- warning: multiple suitable %0 functions for %1; no 'operator delete' function will be invoked if initialization throws an exception
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-ambiguous-ellipsis
+ clang-diagnostic-ambiguous-ellipsis
+ Diagnostic text:
+
+- warning: '...' in this location creates a C-style varargs function%select{, not a function parameter pack|}0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-ambiguous-macro
+ clang-diagnostic-ambiguous-macro
+ Diagnostic text:
+
+- warning: ambiguous expansion of macro %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-ambiguous-member-template
+ clang-diagnostic-ambiguous-member-template
+ Diagnostic text:
+
+- warning: lookup of %0 in member access expression is ambiguous; using member of %1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-analyzer-incompatible-plugin
+ clang-diagnostic-analyzer-incompatible-plugin
+ Diagnostic text:
+
+- warning: checker plugin '%0' is not compatible with this version of the analyzer
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-anonymous-pack-parens
+ clang-diagnostic-anonymous-pack-parens
+ Diagnostic text:
+
+- warning: ISO C++11 requires a parenthesized pack declaration to have a name
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-arc
+ clang-diagnostic-arc
+ Diagnostic text:
+
+- warning: %select{destination for|source of}0 this %1 call is a pointer to ownership-qualified type %2
+- warning: assigning %select{array literal|dictionary literal|numeric literal|boxed expression|<should not happen>|block literal}0 to a weak %select{property|variable}1; object will be released after assignment
+- warning: assigning retained object to %select{weak|unsafe_unretained}0 %select{property|variable}1; object will be released after assignment
+- warning: assigning retained object to unsafe property; object will be released after assignment
+- warning: capturing %0 strongly in this block is likely to lead to a retain cycle
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-arc-bridge-casts-disallowed-in-nonarc
+ clang-diagnostic-arc-bridge-casts-disallowed-in-nonarc
+ Diagnostic text:
+
+- warning: '%0' casts have no effect when not using ARC
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-arc-maybe-repeated-use-of-weak
+ clang-diagnostic-arc-maybe-repeated-use-of-weak
+ Diagnostic text:
+
+- warning: weak %select{variable|property|implicit property|instance variable}0 %1 may be accessed multiple times in this %select{function|method|block|lambda}2 and may be unpredictably set to nil; assign to a strong variable to keep the object alive
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-arc-non-pod-memaccess
+ clang-diagnostic-arc-non-pod-memaccess
+ Diagnostic text:
+
+- warning: %select{destination for|source of}0 this %1 call is a pointer to ownership-qualified type %2
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-arc-performSelector-leaks
+ clang-diagnostic-arc-performSelector-leaks
+ Diagnostic text:
+
+- warning: performSelector may cause a leak because its selector is unknown
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-arc-repeated-use-of-weak
+ clang-diagnostic-arc-repeated-use-of-weak
+ Diagnostic text:
+
+- warning: weak %select{variable|property|implicit property|instance variable}0 %1 is accessed multiple times in this %select{function|method|block|lambda}2 but may be unpredictably set to nil; assign to a strong variable to keep the object alive
+- warning: weak %select{variable|property|implicit property|instance variable}0 %1 may be accessed multiple times in this %select{function|method|block|lambda}2 and may be unpredictably set to nil; assign to a strong variable to keep the object alive
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-arc-retain-cycles
+ clang-diagnostic-arc-retain-cycles
+ Diagnostic text:
+
+- warning: capturing %0 strongly in this block is likely to lead to a retain cycle
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-arc-unsafe-retained-assign
+ clang-diagnostic-arc-unsafe-retained-assign
+ Diagnostic text:
+
+- warning: assigning %select{array literal|dictionary literal|numeric literal|boxed expression|<should not happen>|block literal}0 to a weak %select{property|variable}1; object will be released after assignment
+- warning: assigning retained object to %select{weak|unsafe_unretained}0 %select{property|variable}1; object will be released after assignment
+- warning: assigning retained object to unsafe property; object will be released after assignment
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-argument-outside-range
+ clang-diagnostic-argument-outside-range
+ Diagnostic text:
+
+- warning: argument value %0 is outside the valid range [%1, %2]
+
+References
+Diagnostic flags in Clang
+ ]]>
+ CRITICAL
+ CODE_SMELL
+
+
+ clang-diagnostic-array-bounds
+ clang-diagnostic-array-bounds
+ Diagnostic text:
+
+- warning: 'static' has no effect on zero-length arrays
+- warning: array argument is too small; contains %0 elements, callee requires at least %1
+- warning: array index %0 is before the beginning of the array
+- warning: array index %0 is past the end of the array (which contains %1 element%s2)
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-array-bounds-pointer-arithmetic
+ clang-diagnostic-array-bounds-pointer-arithmetic
+ Diagnostic text:
+
+- warning: the pointer decremented by %0 refers before the beginning of the array
+- warning: the pointer incremented by %0 refers past the end of the array (that contains %1 element%s2)
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-asm
+ clang-diagnostic-asm
+ Diagnostic text:
+
+- warning: ignored %0 qualifier on asm
+- warning: meaningless 'volatile' on asm outside function
+- warning: value size does not match register size specified by the constraint and modifier
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-asm-ignored-qualifier
+ clang-diagnostic-asm-ignored-qualifier
+ Diagnostic text:
+
+- warning: ignored %0 qualifier on asm
+- warning: meaningless 'volatile' on asm outside function
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-asm-operand-widths
+ clang-diagnostic-asm-operand-widths
+ Diagnostic text:
+
+- warning: value size does not match register size specified by the constraint and modifier
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-assign-enum
+ clang-diagnostic-assign-enum
+ Diagnostic text:
+
+- warning: integer constant not in range of enumerated type %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-assume
+ clang-diagnostic-assume
+ Diagnostic text:
+
+- warning: the argument to %0 has side effects that will be discarded
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-atimport-in-framework-header
+ clang-diagnostic-atimport-in-framework-header
+ Diagnostic text:
+
+- warning: use of '@import' in framework header is discouraged, including this header requires -fmodules
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-atomic-alignment
+ clang-diagnostic-atomic-alignment
+ Diagnostic text:
+
+- warning: %select{large|misaligned}0 atomic operation may incur significant performance penalty
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-atomic-implicit-seq-cst
+ clang-diagnostic-atomic-implicit-seq-cst
+ Diagnostic text:
+
+- warning: implicit use of sequentially-consistent atomic may incur stronger memory barriers than necessary
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-atomic-memory-ordering
+ clang-diagnostic-atomic-memory-ordering
+ Diagnostic text:
+
+- warning: memory order argument to atomic operation is invalid
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-atomic-properties
+ clang-diagnostic-atomic-properties
+ Diagnostic text:
+
+- warning: atomic by default property %0 has a user defined %select{getter|setter}1 (property should be marked 'atomic' if this is intended)
+- warning: property is assumed atomic by default
+- warning: property is assumed atomic when auto-synthesizing the property
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-atomic-property-with-user-defined-accessor
+ clang-diagnostic-atomic-property-with-user-defined-accessor
+ Diagnostic text:
+
+- warning: writable atomic property %0 cannot pair a synthesized %select{getter|setter}1 with a user defined %select{getter|setter}2
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-attribute-packed-for-bitfield
+ clang-diagnostic-attribute-packed-for-bitfield
+ Diagnostic text:
+
+- warning: 'packed' attribute was ignored on bit-fields with single-byte alignment in older versions of GCC and Clang
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-attributes
+ clang-diagnostic-attributes
+ Diagnostic text:
+
+- warning: %0 attribute argument not supported: %1
+- warning: %0 attribute can only be applied to instance variables or properties
+- warning: %0 attribute ignored
+- warning: %0 attribute ignored for field of type %1
+- warning: %0 attribute ignored on inline function
+- warning: %0 attribute ignored when parsing type
+- warning: %0 attribute is deprecated and ignored in OpenCL version %1
+- warning: %0 attribute only applies to %1
+- warning: %0 attribute only applies to %select{Objective-C object|pointer|pointer-to-CF-pointer}1 parameters
+- warning: %0 attribute only applies to %select{functions|methods|properties}1 that return %select{an Objective-C object|a pointer|a non-retainable pointer}2
+- warning: %0 attribute only applies to %select{functions|unions|variables and functions|functions and methods|functions, methods and blocks|functions, methods, and parameters|variables|variables and fields|variables, data members and tag types|types and namespaces|variables, functions and classes|kernel functions|non-K&R-style functions}1
+- warning: %0 attribute only applies to a pointer or reference (%1 is invalid)
+- warning: %0 attribute only applies to return values that are pointers
+- warning: %0 attribute only applies to return values that are pointers or references
+- warning: %0 attribute only applies to%select{| constant}1 pointer arguments
+- warning: %0 calling convention ignored on constructor/destructor
+- warning: %0 calling convention ignored on variadic function
+- warning: %q0 redeclared inline; %1 attribute ignored
+- warning: %select{alias|ifunc}1 will not be in section '%0' but in the same section as the %select{aliasee|resolver}2
+- warning: %select{alias|ifunc}2 will always resolve to %0 even if weak definition of %1 is overridden
+- warning: %select{alignment|size}0 of field %1 (%2 bits) does not match the %select{alignment|size}0 of the first field in transparent union; transparent_union attribute ignored
+- warning: %select{unsupported|duplicate}0%select{| architecture}1 '%2' in the 'target' attribute string; 'target' attribute ignored
+- warning: '%0' attribute cannot be specified on a definition
+- warning: '%0' only applies to %select{function|pointer|Objective-C object or block pointer}1 types; type here is %2
+- warning: 'abi_tag' attribute on %select{non-inline|anonymous}0 namespace ignored
+- warning: 'deprecated' attribute on anonymous namespace ignored
+- warning: 'gnu_inline' attribute requires function to be marked 'inline', attribute ignored
+- warning: 'internal_linkage' attribute on a non-static local variable is ignored
+- warning: 'nocf_check' attribute ignored; use -fcf-protection to enable the attribute
+- warning: 'nonnull' attribute applied to function with no pointer arguments
+- warning: 'nonnull' attribute when used on parameters takes no arguments
+- warning: 'sentinel' attribute only supported for variadic %select{functions|blocks}0
+- warning: 'sentinel' attribute requires named arguments
+- warning: 'trivial_abi' cannot be applied to %0
+- warning: MIPS 'interrupt' attribute only applies to functions that have %select{no parameters|a 'void' return type}0
+- warning: Objective-C GC does not allow weak variables on the stack
+- warning: RISC-V 'interrupt' attribute only applies to functions that have %select{no parameters|a 'void' return type}0
+- warning: __declspec attribute %0 is not supported
+- warning: __weak attribute cannot be specified on a field declaration
+- warning: __weak attribute cannot be specified on an automatic variable when ARC is not enabled
+- warning: attribute %0 after definition is ignored
+- warning: attribute %0 cannot be applied to %select{functions|Objective-C method}1 without return value
+- warning: attribute %0 ignored, because it cannot be applied to a type
+- warning: attribute %0 ignored, because it cannot be applied to omitted return type
+- warning: attribute %0 ignored, because it is not attached to a declaration
+- warning: attribute %0 is already applied
+- warning: attribute %0 is already applied with different parameters
+- warning: attribute %0 is ignored, place it after "%select{class|struct|interface|union|enum}1" to apply attribute to type declaration
+- warning: attribute declaration must precede definition
+- warning: calling convention %0 ignored for this target
+- warning: first field of a transparent union cannot have %select{floating point|vector}0 type %1; transparent_union attribute ignored
+- warning: inheritance model ignored on %select{primary template|partial specialization}0
+- warning: qualifiers after comma in declarator list are ignored
+- warning: repeated RISC-V 'interrupt' attribute
+- warning: transparent union definition must contain at least one field; transparent_union attribute ignored
+- warning: transparent_union attribute can only be applied to a union definition; attribute ignored
+- warning: unknown attribute %0 ignored
+- warning: unknown attribute '%0'
+- warning: unknown visibility %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-auto-disable-vptr-sanitizer
+ clang-diagnostic-auto-disable-vptr-sanitizer
+ Diagnostic text:
+
+- warning: implicitly disabling vptr sanitizer because rtti wasn't enabled
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-auto-import
+ clang-diagnostic-auto-import
+ Diagnostic text:
+
+- warning: treating #%select{include|import|include_next|__include_macros}0 as an import of module '%1'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-auto-storage-class
+ clang-diagnostic-auto-storage-class
+ Diagnostic text:
+
+- warning: 'auto' storage class specifier is not permitted in C++11, and will not be supported in future releases
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-auto-var-id
+ clang-diagnostic-auto-var-id
+ Diagnostic text:
+
+- warning: 'auto' deduced as 'id' in declaration of %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-availability
+ clang-diagnostic-availability
+ Diagnostic text:
+
+- warning: %select{|overriding }1method cannot be unavailable on %0 when %select{the protocol method it implements|its overridden method}1 is available
+- warning: %select{|overriding }4method %select{introduced after|deprecated before|obsoleted before}0 %select{the protocol method it implements|overridden method}4 on %1 (%2 vs. %3)
+- warning: 'unavailable' availability overrides all other availability information
+- warning: availability does not match previous declaration
+- warning: feature cannot be %select{introduced|deprecated|obsoleted}0 in %1 version %2 before it was %select{introduced|deprecated|obsoleted}3 in version %4; attribute ignored
+- warning: ignoring availability attribute %select{on '+load' method|with constructor attribute|with destructor attribute}0
+- warning: unknown platform %0 in availability macro
+- warning: use same version number separators '_' or '.'; as in 'major[.minor[.subminor]]'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-backend-plugin
+ clang-diagnostic-backend-plugin
+ Diagnostic text:
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-backslash-newline-escape
+ clang-diagnostic-backslash-newline-escape
+ Diagnostic text:
+
+- warning: backslash and newline separated by space
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-bad-function-cast
+ clang-diagnostic-bad-function-cast
+ Diagnostic text:
+
+- warning: cast from function call of type %0 to non-matching type %1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-binary-literal
+ clang-diagnostic-binary-literal
+ Diagnostic text:
+
+- warning: binary integer literals are a C++14 extension
+- warning: binary integer literals are a GNU extension
+- warning: binary integer literals are incompatible with C++ standards before C++14
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-bind-to-temporary-copy
+ clang-diagnostic-bind-to-temporary-copy
+ Diagnostic text:
+
+- warning: %sub{select_initialized_entity_kind}1 of type %2 when binding a reference to a temporary would %select{invoke an inaccessible constructor|find no viable constructor|find ambiguous constructors|invoke a deleted constructor}0 in C++98
+- warning: C++98 requires an accessible copy constructor for class %2 when binding a reference to a temporary; was %select{private|protected}0
+- warning: no viable constructor %sub{select_initialized_entity_kind}0 of type %1; C++98 requires a copy constructor when binding a reference to a temporary
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-binding-in-condition
+ clang-diagnostic-binding-in-condition
+ Diagnostic text:
+
+- warning: ISO C++17 does not permit structured binding declaration in a condition
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-bitfield-constant-conversion
+ clang-diagnostic-bitfield-constant-conversion
+ Diagnostic text:
+
+- warning: implicit truncation from %2 to bit-field changes value from %0 to %1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-bitfield-enum-conversion
+ clang-diagnostic-bitfield-enum-conversion
+ Diagnostic text:
+
+- warning: assigning value of signed enum type %1 to unsigned bit-field %0; negative enumerators of enum %1 will be converted to positive values
+- warning: bit-field %0 is not wide enough to store all enumerators of %1
+- warning: signed bit-field %0 needs an extra bit to represent the largest positive enumerators of %1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-bitfield-width
+ clang-diagnostic-bitfield-width
+ Diagnostic text:
+
+- warning: width of anonymous bit-field (%0 bits) exceeds width of its type; value will be truncated to %1 bit%s1
+- warning: width of bit-field %0 (%1 bits) exceeds the width of its type; value will be truncated to %2 bit%s2
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-bitwise-op-parentheses
+ clang-diagnostic-bitwise-op-parentheses
+ Diagnostic text:
+
+- warning: '%0' within '%1'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-block-capture-autoreleasing
+ clang-diagnostic-block-capture-autoreleasing
+ Diagnostic text:
+
+- warning: block captures an autoreleasing out-parameter, which may result in use-after-free bugs
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-bool-conversion
+ clang-diagnostic-bool-conversion
+ Diagnostic text:
+
+- warning: 'this' pointer cannot be null in well-defined C++ code; pointer may be assumed to always convert to true
+- warning: address of%select{| function| array}0 '%1' will always evaluate to 'true'
+- warning: initialization of pointer of type %0 to null from a constant boolean expression
+- warning: nonnull %select{function call|parameter}0 '%1' will evaluate to 'true' on first encounter
+- warning: reference cannot be bound to dereferenced null pointer in well-defined C++ code; pointer may be assumed to always convert to true
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-bool-conversions
+ clang-diagnostic-bool-conversions
+ Diagnostic text:
+
+- warning: 'this' pointer cannot be null in well-defined C++ code; pointer may be assumed to always convert to true
+- warning: address of%select{| function| array}0 '%1' will always evaluate to 'true'
+- warning: initialization of pointer of type %0 to null from a constant boolean expression
+- warning: nonnull %select{function call|parameter}0 '%1' will evaluate to 'true' on first encounter
+- warning: reference cannot be bound to dereferenced null pointer in well-defined C++ code; pointer may be assumed to always convert to true
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-braced-scalar-init
+ clang-diagnostic-braced-scalar-init
+ Diagnostic text:
+
+- warning: braces around scalar initializer
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-bridge-cast
+ clang-diagnostic-bridge-cast
+ Diagnostic text:
+
+- warning: %0 bridges to %1, not %2
+- warning: %0 cannot bridge to %1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-builtin-macro-redefined
+ clang-diagnostic-builtin-macro-redefined
+ Diagnostic text:
+
+- warning: redefining builtin macro
+- warning: undefining builtin macro
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-builtin-memcpy-chk-size
+ clang-diagnostic-builtin-memcpy-chk-size
+ Diagnostic text:
+
+- warning: '%0' will always overflow; destination buffer has size %1, but size argument is %2
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-builtin-requires-header
+ clang-diagnostic-builtin-requires-header
+ Diagnostic text:
+
+- warning: declaration of built-in function '%1' requires inclusion of the header <%0>
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-c++-compat
+ clang-diagnostic-c++-compat
+ Diagnostic text:
+
+- warning: %select{|empty }0%select{struct|union}1 has size 0 in C, %select{size 1|non-zero size}2 in C++
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-c++0x-compat
+ clang-diagnostic-c++0x-compat
+ Diagnostic text:
+
+- warning: %select{case value|enumerator value|non-type template argument|array size|constexpr if condition}0 %select{cannot be narrowed from type %2 to %3|evaluates to %2, which cannot be narrowed to type %3}1
+- warning: %select{default construction|assignment}0 of lambda is incompatible with C++ standards before C++2a
+- warning: %select{if|switch}0 initialization statements are incompatible with C++ standards before C++17
+- warning: '%0' is a keyword in C++11
+- warning: '<=>' operator is incompatible with C++ standards before C++2a
+- warning: 'auto' storage class specifier is redundant and incompatible with C++11
+- warning: 'begin' and 'end' returning different types (%0 and %1) is incompatible with C++ standards before C++17
+- warning: 'char8_t' type specifier is incompatible with C++ standards before C++20
+- warning: 'decltype(auto)' type specifier is incompatible with C++ standards before C++14
+- warning: by value capture of '*this' is incompatible with C++ standards before C++17
+- warning: class template argument deduction is incompatible with C++ standards before C++17%select{|; for compatibility, use explicit type name %1}0
+- warning: constant expression evaluates to %0 which cannot be narrowed to type %1
+- warning: constant expression evaluates to %0 which cannot be narrowed to type %1 in C++11
+- warning: constexpr function with no return statements is incompatible with C++ standards before C++14
+- warning: constexpr if is incompatible with C++ standards before C++17
+- warning: constexpr on lambda expressions is incompatible with C++ standards before C++17
+- warning: conversion from string literal to %0 is deprecated
+- warning: decomposition declarations are incompatible with C++ standards before C++17
+- warning: default member initializer for bit-field is incompatible with C++ standards before C++2a
+- warning: default scope specifier for attributes is incompatible with C++ standards before C++17
+- warning: digit separators are incompatible with C++ standards before C++14
+- warning: explicit capture of 'this' with a capture default of '=' is incompatible with C++ standards before C++2a
+- warning: explicit instantiation cannot be 'inline'
+- warning: explicit instantiation of %0 must occur at global scope
+- warning: explicit instantiation of %0 not in a namespace enclosing %1
+- warning: explicit instantiation of %q0 must occur in namespace %1
+- warning: explicitly defaulting this %sub{select_special_member_kind}0 with a type different from the implicit type is incompatible with C++ standards before C++2a
+- warning: generic lambdas are incompatible with C++11
+- warning: identifier after literal will be treated as a reserved user-defined literal suffix in C++11
+- warning: identifier after literal will be treated as a user-defined literal suffix in C++11
+- warning: initialized lambda captures are incompatible with C++ standards before C++14
+- warning: inline variables are incompatible with C++ standards before C++17
+- warning: integer literal is too large to be represented in type 'long' and is subject to undefined behavior under C++98, interpreting as 'unsigned long'; this literal will %select{have type 'long long'|be ill-formed}0 in C++11 onwards
+- warning: integer literal is too large to be represented in type 'long', interpreting as 'unsigned long' per C++98; this literal will %select{have type 'long long'|be ill-formed}0 in C++11 onwards
+- warning: multiple return statements in constexpr function is incompatible with C++ standards before C++14
+- warning: nested namespace definition is incompatible with C++ standards before C++17
+- warning: non-constant-expression cannot be narrowed from type %0 to %1 in initializer list
+- warning: non-constant-expression cannot be narrowed from type %0 to %1 in initializer list in C++11
+- warning: non-type template parameters declared with %0 are incompatible with C++ standards before C++17
+- warning: pack expansion using declaration is incompatible with C++ standards before C++17
+- warning: pack fold expression is incompatible with C++ standards before C++17
+- warning: range-based for loop initialization statements are incompatible with C++ standards before C++2a
+- warning: return type deduction is incompatible with C++ standards before C++14
+- warning: static_assert with no message is incompatible with C++ standards before C++17
+- warning: template template parameter using 'typename' is incompatible with C++ standards before C++17
+- warning: type %0 cannot be narrowed to %1 in initializer list
+- warning: type %0 cannot be narrowed to %1 in initializer list in C++11
+- warning: type definition in a constexpr %select{function|constructor}0 is incompatible with C++ standards before C++14
+- warning: unicode literals are incompatible with C++ standards before C++17
+- warning: use of multiple declarators in a single using declaration is incompatible with C++ standards before C++17
+- warning: use of right-shift operator ('>>') in template argument will require parentheses in C++11
+- warning: use of this statement in a constexpr %select{function|constructor}0 is incompatible with C++ standards before C++14
+- warning: variable declaration in a constexpr %select{function|constructor}0 is incompatible with C++ standards before C++14
+- warning: variable templates are incompatible with C++ standards before C++14
+
+References
+Diagnostic flags in Clang
+ ]]>
+ CRITICAL
+ CODE_SMELL
+
+
+ clang-diagnostic-c++0x-extensions
+ clang-diagnostic-c++0x-extensions
+ Diagnostic text:
+
+- warning: %select{defaulted|deleted}0 function definitions are a C++11 extension
+- warning: '%0' keyword is a C++11 extension
+- warning: 'auto' type specifier is a C++11 extension
+- warning: 'long long' is a C++11 extension
+- warning: 'template' keyword outside of a template
+- warning: 'typename' occurs outside of a template
+- warning: alias declarations are a C++11 extension
+- warning: befriending enumeration type %0 is a C++11 extension
+- warning: commas at the end of enumerator lists are a C++11 extension
+- warning: default template arguments for a function template are a C++11 extension
+- warning: enumeration types with a fixed underlying type are a C++11 extension
+- warning: explicit conversion functions are a C++11 extension
+- warning: extern templates are a C++11 extension
+- warning: extra ';' outside of a function is a C++11 extension
+- warning: generalized initializer lists are a C++11 extension
+- warning: implicit conversion from array size expression of type %0 to %select{integral|enumeration}1 type %2 is a C++11 extension
+- warning: in-class initialization of non-static data member is a C++11 extension
+- warning: inline namespaces are a C++11 feature
+- warning: non-class friend type %0 is a C++11 extension
+- warning: non-type template argument referring to %select{function|object}0 %1 with internal linkage is a C++11 extension
+- warning: range-based for loop is a C++11 extension
+- warning: reference qualifiers on functions are a C++11 extension
+- warning: rvalue references are a C++11 extension
+- warning: scoped enumerations are a C++11 extension
+- warning: static data member %0 in union is a C++11 extension
+- warning: unelaborated friend declaration is a C++11 extension; specify '%select{struct|interface|union|class|enum}0' to befriend %1
+- warning: use of enumeration in a nested name specifier is a C++11 extension
+- warning: variadic templates are a C++11 extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-c++0x-narrowing
+ clang-diagnostic-c++0x-narrowing
+ Diagnostic text:
+
+- warning: %select{case value|enumerator value|non-type template argument|array size|constexpr if condition}0 %select{cannot be narrowed from type %2 to %3|evaluates to %2, which cannot be narrowed to type %3}1
+- warning: constant expression evaluates to %0 which cannot be narrowed to type %1
+- warning: constant expression evaluates to %0 which cannot be narrowed to type %1 in C++11
+- warning: non-constant-expression cannot be narrowed from type %0 to %1 in initializer list
+- warning: non-constant-expression cannot be narrowed from type %0 to %1 in initializer list in C++11
+- warning: type %0 cannot be narrowed to %1 in initializer list
+- warning: type %0 cannot be narrowed to %1 in initializer list in C++11
+
+References
+Diagnostic flags in Clang
+ ]]>
+ CRITICAL
+ CODE_SMELL
+
+
+ clang-diagnostic-c++11-compat
+ clang-diagnostic-c++11-compat
+ Diagnostic text:
+
+- warning: %select{case value|enumerator value|non-type template argument|array size|constexpr if condition}0 %select{cannot be narrowed from type %2 to %3|evaluates to %2, which cannot be narrowed to type %3}1
+- warning: %select{default construction|assignment}0 of lambda is incompatible with C++ standards before C++2a
+- warning: %select{if|switch}0 initialization statements are incompatible with C++ standards before C++17
+- warning: '%0' is a keyword in C++11
+- warning: '<=>' operator is incompatible with C++ standards before C++2a
+- warning: 'auto' storage class specifier is redundant and incompatible with C++11
+- warning: 'begin' and 'end' returning different types (%0 and %1) is incompatible with C++ standards before C++17
+- warning: 'char8_t' type specifier is incompatible with C++ standards before C++20
+- warning: 'decltype(auto)' type specifier is incompatible with C++ standards before C++14
+- warning: by value capture of '*this' is incompatible with C++ standards before C++17
+- warning: class template argument deduction is incompatible with C++ standards before C++17%select{|; for compatibility, use explicit type name %1}0
+- warning: constant expression evaluates to %0 which cannot be narrowed to type %1
+- warning: constant expression evaluates to %0 which cannot be narrowed to type %1 in C++11
+- warning: constexpr function with no return statements is incompatible with C++ standards before C++14
+- warning: constexpr if is incompatible with C++ standards before C++17
+- warning: constexpr on lambda expressions is incompatible with C++ standards before C++17
+- warning: conversion from string literal to %0 is deprecated
+- warning: decomposition declarations are incompatible with C++ standards before C++17
+- warning: default member initializer for bit-field is incompatible with C++ standards before C++2a
+- warning: default scope specifier for attributes is incompatible with C++ standards before C++17
+- warning: digit separators are incompatible with C++ standards before C++14
+- warning: explicit capture of 'this' with a capture default of '=' is incompatible with C++ standards before C++2a
+- warning: explicit instantiation cannot be 'inline'
+- warning: explicit instantiation of %0 must occur at global scope
+- warning: explicit instantiation of %0 not in a namespace enclosing %1
+- warning: explicit instantiation of %q0 must occur in namespace %1
+- warning: explicitly defaulting this %sub{select_special_member_kind}0 with a type different from the implicit type is incompatible with C++ standards before C++2a
+- warning: generic lambdas are incompatible with C++11
+- warning: identifier after literal will be treated as a reserved user-defined literal suffix in C++11
+- warning: identifier after literal will be treated as a user-defined literal suffix in C++11
+- warning: initialized lambda captures are incompatible with C++ standards before C++14
+- warning: inline variables are incompatible with C++ standards before C++17
+- warning: integer literal is too large to be represented in type 'long' and is subject to undefined behavior under C++98, interpreting as 'unsigned long'; this literal will %select{have type 'long long'|be ill-formed}0 in C++11 onwards
+- warning: integer literal is too large to be represented in type 'long', interpreting as 'unsigned long' per C++98; this literal will %select{have type 'long long'|be ill-formed}0 in C++11 onwards
+- warning: multiple return statements in constexpr function is incompatible with C++ standards before C++14
+- warning: nested namespace definition is incompatible with C++ standards before C++17
+- warning: non-constant-expression cannot be narrowed from type %0 to %1 in initializer list
+- warning: non-constant-expression cannot be narrowed from type %0 to %1 in initializer list in C++11
+- warning: non-type template parameters declared with %0 are incompatible with C++ standards before C++17
+- warning: pack expansion using declaration is incompatible with C++ standards before C++17
+- warning: pack fold expression is incompatible with C++ standards before C++17
+- warning: range-based for loop initialization statements are incompatible with C++ standards before C++2a
+- warning: return type deduction is incompatible with C++ standards before C++14
+- warning: static_assert with no message is incompatible with C++ standards before C++17
+- warning: template template parameter using 'typename' is incompatible with C++ standards before C++17
+- warning: type %0 cannot be narrowed to %1 in initializer list
+- warning: type %0 cannot be narrowed to %1 in initializer list in C++11
+- warning: type definition in a constexpr %select{function|constructor}0 is incompatible with C++ standards before C++14
+- warning: unicode literals are incompatible with C++ standards before C++17
+- warning: use of multiple declarators in a single using declaration is incompatible with C++ standards before C++17
+- warning: use of right-shift operator ('>>') in template argument will require parentheses in C++11
+- warning: use of this statement in a constexpr %select{function|constructor}0 is incompatible with C++ standards before C++14
+- warning: variable declaration in a constexpr %select{function|constructor}0 is incompatible with C++ standards before C++14
+- warning: variable templates are incompatible with C++ standards before C++14
+
+References
+Diagnostic flags in Clang
+ ]]>
+ CRITICAL
+ CODE_SMELL
+
+
+ clang-diagnostic-c++11-compat-deprecated-writable-strings
+ clang-diagnostic-c++11-compat-deprecated-writable-strings
+ Diagnostic text:
+
+- warning: conversion from string literal to %0 is deprecated
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-c++11-compat-pedantic
+ clang-diagnostic-c++11-compat-pedantic
+ Diagnostic text:
+
+- warning: %select{case value|enumerator value|non-type template argument|array size|constexpr if condition}0 %select{cannot be narrowed from type %2 to %3|evaluates to %2, which cannot be narrowed to type %3}1
+- warning: %select{default construction|assignment}0 of lambda is incompatible with C++ standards before C++2a
+- warning: %select{default construction|assignment}0 of lambda is incompatible with C++ standards before C++2a
+- warning: %select{if|switch}0 initialization statements are incompatible with C++ standards before C++17
+- warning: %select{if|switch}0 initialization statements are incompatible with C++ standards before C++17
+- warning: '%0' is a keyword in C++11
+- warning: '<=>' operator is incompatible with C++ standards before C++2a
+- warning: '<=>' operator is incompatible with C++ standards before C++2a
+- warning: 'auto' storage class specifier is redundant and incompatible with C++11
+- warning: 'begin' and 'end' returning different types (%0 and %1) is incompatible with C++ standards before C++17
+- warning: 'begin' and 'end' returning different types (%0 and %1) is incompatible with C++ standards before C++17
+- warning: 'char8_t' type specifier is incompatible with C++ standards before C++20
+- warning: 'char8_t' type specifier is incompatible with C++ standards before C++20
+- warning: 'decltype(auto)' type specifier is incompatible with C++ standards before C++14
+- warning: 'decltype(auto)' type specifier is incompatible with C++ standards before C++14
+- warning: attributes on %select{a namespace|an enumerator}0 declaration are incompatible with C++ standards before C++17
+- warning: binary integer literals are incompatible with C++ standards before C++14
+- warning: by value capture of '*this' is incompatible with C++ standards before C++17
+- warning: by value capture of '*this' is incompatible with C++ standards before C++17
+- warning: class template argument deduction is incompatible with C++ standards before C++17%select{|; for compatibility, use explicit type name %1}0
+- warning: class template argument deduction is incompatible with C++ standards before C++17%select{|; for compatibility, use explicit type name %1}0
+- warning: constant expression evaluates to %0 which cannot be narrowed to type %1
+- warning: constant expression evaluates to %0 which cannot be narrowed to type %1 in C++11
+- warning: constexpr function with no return statements is incompatible with C++ standards before C++14
+- warning: constexpr function with no return statements is incompatible with C++ standards before C++14
+- warning: constexpr if is incompatible with C++ standards before C++17
+- warning: constexpr if is incompatible with C++ standards before C++17
+- warning: constexpr on lambda expressions is incompatible with C++ standards before C++17
+- warning: constexpr on lambda expressions is incompatible with C++ standards before C++17
+- warning: conversion from string literal to %0 is deprecated
+- warning: decomposition declarations are incompatible with C++ standards before C++17
+- warning: decomposition declarations are incompatible with C++ standards before C++17
+- warning: default member initializer for bit-field is incompatible with C++ standards before C++2a
+- warning: default member initializer for bit-field is incompatible with C++ standards before C++2a
+- warning: default scope specifier for attributes is incompatible with C++ standards before C++17
+- warning: default scope specifier for attributes is incompatible with C++ standards before C++17
+- warning: digit separators are incompatible with C++ standards before C++14
+- warning: digit separators are incompatible with C++ standards before C++14
+- warning: explicit capture of 'this' with a capture default of '=' is incompatible with C++ standards before C++2a
+- warning: explicit capture of 'this' with a capture default of '=' is incompatible with C++ standards before C++2a
+- warning: explicit instantiation cannot be 'inline'
+- warning: explicit instantiation of %0 must occur at global scope
+- warning: explicit instantiation of %0 not in a namespace enclosing %1
+- warning: explicit instantiation of %q0 must occur in namespace %1
+- warning: explicitly defaulting this %sub{select_special_member_kind}0 with a type different from the implicit type is incompatible with C++ standards before C++2a
+- warning: explicitly defaulting this %sub{select_special_member_kind}0 with a type different from the implicit type is incompatible with C++ standards before C++2a
+- warning: generic lambdas are incompatible with C++11
+- warning: generic lambdas are incompatible with C++11
+- warning: hexadecimal floating literals are incompatible with C++ standards before C++17
+- warning: identifier after literal will be treated as a reserved user-defined literal suffix in C++11
+- warning: identifier after literal will be treated as a user-defined literal suffix in C++11
+- warning: initialized lambda captures are incompatible with C++ standards before C++14
+- warning: initialized lambda captures are incompatible with C++ standards before C++14
+- warning: inline variables are incompatible with C++ standards before C++17
+- warning: inline variables are incompatible with C++ standards before C++17
+- warning: integer literal is too large to be represented in type 'long' and is subject to undefined behavior under C++98, interpreting as 'unsigned long'; this literal will %select{have type 'long long'|be ill-formed}0 in C++11 onwards
+- warning: integer literal is too large to be represented in type 'long', interpreting as 'unsigned long' per C++98; this literal will %select{have type 'long long'|be ill-formed}0 in C++11 onwards
+- warning: invoking a pointer to a 'const &' member function on an rvalue is incompatible with C++ standards before C++2a
+- warning: multiple return statements in constexpr function is incompatible with C++ standards before C++14
+- warning: multiple return statements in constexpr function is incompatible with C++ standards before C++14
+- warning: nested namespace definition is incompatible with C++ standards before C++17
+- warning: nested namespace definition is incompatible with C++ standards before C++17
+- warning: non-constant-expression cannot be narrowed from type %0 to %1 in initializer list
+- warning: non-constant-expression cannot be narrowed from type %0 to %1 in initializer list in C++11
+- warning: non-type template parameters declared with %0 are incompatible with C++ standards before C++17
+- warning: non-type template parameters declared with %0 are incompatible with C++ standards before C++17
+- warning: pack expansion using declaration is incompatible with C++ standards before C++17
+- warning: pack expansion using declaration is incompatible with C++ standards before C++17
+- warning: pack fold expression is incompatible with C++ standards before C++17
+- warning: pack fold expression is incompatible with C++ standards before C++17
+- warning: range-based for loop initialization statements are incompatible with C++ standards before C++2a
+- warning: range-based for loop initialization statements are incompatible with C++ standards before C++2a
+- warning: return type deduction is incompatible with C++ standards before C++14
+- warning: return type deduction is incompatible with C++ standards before C++14
+- warning: static_assert with no message is incompatible with C++ standards before C++17
+- warning: static_assert with no message is incompatible with C++ standards before C++17
+- warning: template template parameter using 'typename' is incompatible with C++ standards before C++17
+- warning: template template parameter using 'typename' is incompatible with C++ standards before C++17
+- warning: type %0 cannot be narrowed to %1 in initializer list
+- warning: type %0 cannot be narrowed to %1 in initializer list in C++11
+- warning: type definition in a constexpr %select{function|constructor}0 is incompatible with C++ standards before C++14
+- warning: type definition in a constexpr %select{function|constructor}0 is incompatible with C++ standards before C++14
+- warning: unicode literals are incompatible with C++ standards before C++17
+- warning: unicode literals are incompatible with C++ standards before C++17
+- warning: use of multiple declarators in a single using declaration is incompatible with C++ standards before C++17
+- warning: use of multiple declarators in a single using declaration is incompatible with C++ standards before C++17
+- warning: use of right-shift operator ('>>') in template argument will require parentheses in C++11
+- warning: use of this statement in a constexpr %select{function|constructor}0 is incompatible with C++ standards before C++14
+- warning: use of this statement in a constexpr %select{function|constructor}0 is incompatible with C++ standards before C++14
+- warning: variable declaration in a constexpr %select{function|constructor}0 is incompatible with C++ standards before C++14
+- warning: variable declaration in a constexpr %select{function|constructor}0 is incompatible with C++ standards before C++14
+- warning: variable templates are incompatible with C++ standards before C++14
+- warning: variable templates are incompatible with C++ standards before C++14
+
+References
+Diagnostic flags in Clang
+ ]]>
+ CRITICAL
+ CODE_SMELL
+
+
+ clang-diagnostic-c++11-compat-reserved-user-defined-literal
+ clang-diagnostic-c++11-compat-reserved-user-defined-literal
+ Diagnostic text:
+
+- warning: identifier after literal will be treated as a reserved user-defined literal suffix in C++11
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-c++11-extensions
+ clang-diagnostic-c++11-extensions
+ Diagnostic text:
+
+- warning: %select{defaulted|deleted}0 function definitions are a C++11 extension
+- warning: '%0' keyword is a C++11 extension
+- warning: 'auto' type specifier is a C++11 extension
+- warning: 'long long' is a C++11 extension
+- warning: 'template' keyword outside of a template
+- warning: 'typename' occurs outside of a template
+- warning: alias declarations are a C++11 extension
+- warning: befriending enumeration type %0 is a C++11 extension
+- warning: commas at the end of enumerator lists are a C++11 extension
+- warning: default template arguments for a function template are a C++11 extension
+- warning: enumeration types with a fixed underlying type are a C++11 extension
+- warning: explicit conversion functions are a C++11 extension
+- warning: extern templates are a C++11 extension
+- warning: extra ';' outside of a function is a C++11 extension
+- warning: generalized initializer lists are a C++11 extension
+- warning: implicit conversion from array size expression of type %0 to %select{integral|enumeration}1 type %2 is a C++11 extension
+- warning: in-class initialization of non-static data member is a C++11 extension
+- warning: inline namespaces are a C++11 feature
+- warning: non-class friend type %0 is a C++11 extension
+- warning: non-type template argument referring to %select{function|object}0 %1 with internal linkage is a C++11 extension
+- warning: range-based for loop is a C++11 extension
+- warning: reference qualifiers on functions are a C++11 extension
+- warning: rvalue references are a C++11 extension
+- warning: scoped enumerations are a C++11 extension
+- warning: static data member %0 in union is a C++11 extension
+- warning: unelaborated friend declaration is a C++11 extension; specify '%select{struct|interface|union|class|enum}0' to befriend %1
+- warning: use of enumeration in a nested name specifier is a C++11 extension
+- warning: variadic templates are a C++11 extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-c++11-extra-semi
+ clang-diagnostic-c++11-extra-semi
+ Diagnostic text:
+
+- warning: extra ';' outside of a function is a C++11 extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-c++11-inline-namespace
+ clang-diagnostic-c++11-inline-namespace
+ Diagnostic text:
+
+- warning: inline namespaces are a C++11 feature
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-c++11-long-long
+ clang-diagnostic-c++11-long-long
+ Diagnostic text:
+
+- warning: 'long long' is a C++11 extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-c++11-narrowing
+ clang-diagnostic-c++11-narrowing
+ Diagnostic text:
+
+- warning: %select{case value|enumerator value|non-type template argument|array size|constexpr if condition}0 %select{cannot be narrowed from type %2 to %3|evaluates to %2, which cannot be narrowed to type %3}1
+- warning: constant expression evaluates to %0 which cannot be narrowed to type %1
+- warning: constant expression evaluates to %0 which cannot be narrowed to type %1 in C++11
+- warning: non-constant-expression cannot be narrowed from type %0 to %1 in initializer list
+- warning: non-constant-expression cannot be narrowed from type %0 to %1 in initializer list in C++11
+- warning: type %0 cannot be narrowed to %1 in initializer list
+- warning: type %0 cannot be narrowed to %1 in initializer list in C++11
+
+References
+Diagnostic flags in Clang
+ ]]>
+ CRITICAL
+ CODE_SMELL
+
+
+ clang-diagnostic-c++14-binary-literal
+ clang-diagnostic-c++14-binary-literal
+ Diagnostic text:
+
+- warning: binary integer literals are a C++14 extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-c++14-compat
+ clang-diagnostic-c++14-compat
+ Diagnostic text:
+
+- warning: %select{default construction|assignment}0 of lambda is incompatible with C++ standards before C++2a
+- warning: %select{if|switch}0 initialization statements are incompatible with C++ standards before C++17
+- warning: '<=>' operator is incompatible with C++ standards before C++2a
+- warning: 'begin' and 'end' returning different types (%0 and %1) is incompatible with C++ standards before C++17
+- warning: 'char8_t' type specifier is incompatible with C++ standards before C++20
+- warning: by value capture of '*this' is incompatible with C++ standards before C++17
+- warning: class template argument deduction is incompatible with C++ standards before C++17%select{|; for compatibility, use explicit type name %1}0
+- warning: constexpr if is incompatible with C++ standards before C++17
+- warning: constexpr on lambda expressions is incompatible with C++ standards before C++17
+- warning: decomposition declarations are incompatible with C++ standards before C++17
+- warning: default member initializer for bit-field is incompatible with C++ standards before C++2a
+- warning: default scope specifier for attributes is incompatible with C++ standards before C++17
+- warning: explicit capture of 'this' with a capture default of '=' is incompatible with C++ standards before C++2a
+- warning: explicitly defaulting this %sub{select_special_member_kind}0 with a type different from the implicit type is incompatible with C++ standards before C++2a
+- warning: inline variables are incompatible with C++ standards before C++17
+- warning: nested namespace definition is incompatible with C++ standards before C++17
+- warning: non-type template parameters declared with %0 are incompatible with C++ standards before C++17
+- warning: pack expansion using declaration is incompatible with C++ standards before C++17
+- warning: pack fold expression is incompatible with C++ standards before C++17
+- warning: range-based for loop initialization statements are incompatible with C++ standards before C++2a
+- warning: static_assert with no message is incompatible with C++ standards before C++17
+- warning: template template parameter using 'typename' is incompatible with C++ standards before C++17
+- warning: unicode literals are incompatible with C++ standards before C++17
+- warning: use of multiple declarators in a single using declaration is incompatible with C++ standards before C++17
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-c++14-compat-pedantic
+ clang-diagnostic-c++14-compat-pedantic
+ Diagnostic text:
+
+- warning: %select{default construction|assignment}0 of lambda is incompatible with C++ standards before C++2a
+- warning: %select{default construction|assignment}0 of lambda is incompatible with C++ standards before C++2a
+- warning: %select{if|switch}0 initialization statements are incompatible with C++ standards before C++17
+- warning: %select{if|switch}0 initialization statements are incompatible with C++ standards before C++17
+- warning: '<=>' operator is incompatible with C++ standards before C++2a
+- warning: '<=>' operator is incompatible with C++ standards before C++2a
+- warning: 'begin' and 'end' returning different types (%0 and %1) is incompatible with C++ standards before C++17
+- warning: 'begin' and 'end' returning different types (%0 and %1) is incompatible with C++ standards before C++17
+- warning: 'char8_t' type specifier is incompatible with C++ standards before C++20
+- warning: 'char8_t' type specifier is incompatible with C++ standards before C++20
+- warning: attributes on %select{a namespace|an enumerator}0 declaration are incompatible with C++ standards before C++17
+- warning: by value capture of '*this' is incompatible with C++ standards before C++17
+- warning: by value capture of '*this' is incompatible with C++ standards before C++17
+- warning: class template argument deduction is incompatible with C++ standards before C++17%select{|; for compatibility, use explicit type name %1}0
+- warning: class template argument deduction is incompatible with C++ standards before C++17%select{|; for compatibility, use explicit type name %1}0
+- warning: constexpr if is incompatible with C++ standards before C++17
+- warning: constexpr if is incompatible with C++ standards before C++17
+- warning: constexpr on lambda expressions is incompatible with C++ standards before C++17
+- warning: constexpr on lambda expressions is incompatible with C++ standards before C++17
+- warning: decomposition declarations are incompatible with C++ standards before C++17
+- warning: decomposition declarations are incompatible with C++ standards before C++17
+- warning: default member initializer for bit-field is incompatible with C++ standards before C++2a
+- warning: default member initializer for bit-field is incompatible with C++ standards before C++2a
+- warning: default scope specifier for attributes is incompatible with C++ standards before C++17
+- warning: default scope specifier for attributes is incompatible with C++ standards before C++17
+- warning: explicit capture of 'this' with a capture default of '=' is incompatible with C++ standards before C++2a
+- warning: explicit capture of 'this' with a capture default of '=' is incompatible with C++ standards before C++2a
+- warning: explicitly defaulting this %sub{select_special_member_kind}0 with a type different from the implicit type is incompatible with C++ standards before C++2a
+- warning: explicitly defaulting this %sub{select_special_member_kind}0 with a type different from the implicit type is incompatible with C++ standards before C++2a
+- warning: hexadecimal floating literals are incompatible with C++ standards before C++17
+- warning: inline variables are incompatible with C++ standards before C++17
+- warning: inline variables are incompatible with C++ standards before C++17
+- warning: invoking a pointer to a 'const &' member function on an rvalue is incompatible with C++ standards before C++2a
+- warning: nested namespace definition is incompatible with C++ standards before C++17
+- warning: nested namespace definition is incompatible with C++ standards before C++17
+- warning: non-type template parameters declared with %0 are incompatible with C++ standards before C++17
+- warning: non-type template parameters declared with %0 are incompatible with C++ standards before C++17
+- warning: pack expansion using declaration is incompatible with C++ standards before C++17
+- warning: pack expansion using declaration is incompatible with C++ standards before C++17
+- warning: pack fold expression is incompatible with C++ standards before C++17
+- warning: pack fold expression is incompatible with C++ standards before C++17
+- warning: range-based for loop initialization statements are incompatible with C++ standards before C++2a
+- warning: range-based for loop initialization statements are incompatible with C++ standards before C++2a
+- warning: static_assert with no message is incompatible with C++ standards before C++17
+- warning: static_assert with no message is incompatible with C++ standards before C++17
+- warning: template template parameter using 'typename' is incompatible with C++ standards before C++17
+- warning: template template parameter using 'typename' is incompatible with C++ standards before C++17
+- warning: unicode literals are incompatible with C++ standards before C++17
+- warning: unicode literals are incompatible with C++ standards before C++17
+- warning: use of multiple declarators in a single using declaration is incompatible with C++ standards before C++17
+- warning: use of multiple declarators in a single using declaration is incompatible with C++ standards before C++17
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-c++14-extensions
+ clang-diagnostic-c++14-extensions
+ Diagnostic text:
+
+- warning: 'decltype(auto)' type specifier is a C++14 extension
+- warning: binary integer literals are a C++14 extension
+- warning: initialized lambda captures are a C++14 extension
+- warning: multiple return statements in constexpr function is a C++14 extension
+- warning: type definition in a constexpr %select{function|constructor}0 is a C++14 extension
+- warning: use of the %0 attribute is a C++14 extension
+- warning: use of this statement in a constexpr %select{function|constructor}0 is a C++14 extension
+- warning: variable declaration in a constexpr %select{function|constructor}0 is a C++14 extension
+- warning: variable templates are a C++14 extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-c++17-compat
+ clang-diagnostic-c++17-compat
+ Diagnostic text:
+
+- warning: %select{default construction|assignment}0 of lambda is incompatible with C++ standards before C++2a
+- warning: '<=>' operator is incompatible with C++ standards before C++2a
+- warning: 'char8_t' type specifier is incompatible with C++ standards before C++20
+- warning: 'register' storage class specifier is deprecated and incompatible with C++17
+- warning: default member initializer for bit-field is incompatible with C++ standards before C++2a
+- warning: explicit capture of 'this' with a capture default of '=' is incompatible with C++ standards before C++2a
+- warning: explicitly defaulting this %sub{select_special_member_kind}0 with a type different from the implicit type is incompatible with C++ standards before C++2a
+- warning: incrementing expression of type bool is deprecated and incompatible with C++17
+- warning: mangled name of %0 will change in C++17 due to non-throwing exception specification in function signature
+- warning: range-based for loop initialization statements are incompatible with C++ standards before C++2a
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-c++17-compat-mangling
+ clang-diagnostic-c++17-compat-mangling
+ Diagnostic text:
+
+- warning: mangled name of %0 will change in C++17 due to non-throwing exception specification in function signature
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-c++17-compat-pedantic
+ clang-diagnostic-c++17-compat-pedantic
+ Diagnostic text:
+
+- warning: %select{default construction|assignment}0 of lambda is incompatible with C++ standards before C++2a
+- warning: %select{default construction|assignment}0 of lambda is incompatible with C++ standards before C++2a
+- warning: '<=>' operator is incompatible with C++ standards before C++2a
+- warning: '<=>' operator is incompatible with C++ standards before C++2a
+- warning: 'char8_t' type specifier is incompatible with C++ standards before C++20
+- warning: 'char8_t' type specifier is incompatible with C++ standards before C++20
+- warning: 'register' storage class specifier is deprecated and incompatible with C++17
+- warning: default member initializer for bit-field is incompatible with C++ standards before C++2a
+- warning: default member initializer for bit-field is incompatible with C++ standards before C++2a
+- warning: explicit capture of 'this' with a capture default of '=' is incompatible with C++ standards before C++2a
+- warning: explicit capture of 'this' with a capture default of '=' is incompatible with C++ standards before C++2a
+- warning: explicitly defaulting this %sub{select_special_member_kind}0 with a type different from the implicit type is incompatible with C++ standards before C++2a
+- warning: explicitly defaulting this %sub{select_special_member_kind}0 with a type different from the implicit type is incompatible with C++ standards before C++2a
+- warning: incrementing expression of type bool is deprecated and incompatible with C++17
+- warning: invoking a pointer to a 'const &' member function on an rvalue is incompatible with C++ standards before C++2a
+- warning: mangled name of %0 will change in C++17 due to non-throwing exception specification in function signature
+- warning: range-based for loop initialization statements are incompatible with C++ standards before C++2a
+- warning: range-based for loop initialization statements are incompatible with C++ standards before C++2a
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-c++17-extensions
+ clang-diagnostic-c++17-extensions
+ Diagnostic text:
+
+- warning: '%select{if|switch}0' initialization statements are a C++17 extension
+- warning: 'begin' and 'end' returning different types (%0 and %1) is a C++17 extension
+- warning: 'constexpr' on lambda expressions is a C++17 extension
+- warning: ISO C++ standards before C++17 do not allow new expression for type %0 to use list-initialization
+- warning: attributes on %select{a namespace|an enumerator}0 declaration are a C++17 extension
+- warning: capture of '*this' by copy is a C++17 extension
+- warning: constexpr if is a C++17 extension
+- warning: decomposition declarations are a C++17 extension
+- warning: default scope specifier for attributes is a C++17 extension
+- warning: hexadecimal floating literals are a C++17 feature
+- warning: inline variables are a C++17 extension
+- warning: nested namespace definition is a C++17 extension; define each namespace separately
+- warning: pack expansion of using declaration is a C++17 extension
+- warning: pack fold expression is a C++17 extension
+- warning: static_assert with no message is a C++17 extension
+- warning: template template parameter using 'typename' is a C++17 extension
+- warning: use of multiple declarators in a single using declaration is a C++17 extension
+- warning: use of the %0 attribute is a C++17 extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-c++1y-extensions
+ clang-diagnostic-c++1y-extensions
+ Diagnostic text:
+
+- warning: 'decltype(auto)' type specifier is a C++14 extension
+- warning: binary integer literals are a C++14 extension
+- warning: initialized lambda captures are a C++14 extension
+- warning: multiple return statements in constexpr function is a C++14 extension
+- warning: type definition in a constexpr %select{function|constructor}0 is a C++14 extension
+- warning: use of the %0 attribute is a C++14 extension
+- warning: use of this statement in a constexpr %select{function|constructor}0 is a C++14 extension
+- warning: variable declaration in a constexpr %select{function|constructor}0 is a C++14 extension
+- warning: variable templates are a C++14 extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-c++1z-compat
+ clang-diagnostic-c++1z-compat
+ Diagnostic text:
+
+- warning: %select{default construction|assignment}0 of lambda is incompatible with C++ standards before C++2a
+- warning: '<=>' operator is incompatible with C++ standards before C++2a
+- warning: 'char8_t' type specifier is incompatible with C++ standards before C++20
+- warning: 'register' storage class specifier is deprecated and incompatible with C++17
+- warning: default member initializer for bit-field is incompatible with C++ standards before C++2a
+- warning: explicit capture of 'this' with a capture default of '=' is incompatible with C++ standards before C++2a
+- warning: explicitly defaulting this %sub{select_special_member_kind}0 with a type different from the implicit type is incompatible with C++ standards before C++2a
+- warning: incrementing expression of type bool is deprecated and incompatible with C++17
+- warning: mangled name of %0 will change in C++17 due to non-throwing exception specification in function signature
+- warning: range-based for loop initialization statements are incompatible with C++ standards before C++2a
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-c++1z-compat-mangling
+ clang-diagnostic-c++1z-compat-mangling
+ Diagnostic text:
+
+- warning: mangled name of %0 will change in C++17 due to non-throwing exception specification in function signature
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-c++1z-extensions
+ clang-diagnostic-c++1z-extensions
+ Diagnostic text:
+
+- warning: '%select{if|switch}0' initialization statements are a C++17 extension
+- warning: 'begin' and 'end' returning different types (%0 and %1) is a C++17 extension
+- warning: 'constexpr' on lambda expressions is a C++17 extension
+- warning: ISO C++ standards before C++17 do not allow new expression for type %0 to use list-initialization
+- warning: attributes on %select{a namespace|an enumerator}0 declaration are a C++17 extension
+- warning: capture of '*this' by copy is a C++17 extension
+- warning: constexpr if is a C++17 extension
+- warning: decomposition declarations are a C++17 extension
+- warning: default scope specifier for attributes is a C++17 extension
+- warning: hexadecimal floating literals are a C++17 feature
+- warning: inline variables are a C++17 extension
+- warning: nested namespace definition is a C++17 extension; define each namespace separately
+- warning: pack expansion of using declaration is a C++17 extension
+- warning: pack fold expression is a C++17 extension
+- warning: static_assert with no message is a C++17 extension
+- warning: template template parameter using 'typename' is a C++17 extension
+- warning: use of multiple declarators in a single using declaration is a C++17 extension
+- warning: use of the %0 attribute is a C++17 extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-c++2a-compat
+ clang-diagnostic-c++2a-compat
+ Diagnostic text:
+
+- warning: '%0' is a keyword in C++2a
+- warning: '<=>' is a single token in C++2a; add a space to avoid a change in behavior
+- warning: aggregate initialization of type %0 with user-declared constructors is incompatible with C++2a
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-c++2a-compat-pedantic
+ clang-diagnostic-c++2a-compat-pedantic
+ Diagnostic text:
+
+- warning: '%0' is a keyword in C++2a
+- warning: '<=>' is a single token in C++2a; add a space to avoid a change in behavior
+- warning: aggregate initialization of type %0 with user-declared constructors is incompatible with C++2a
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-c++2a-extensions
+ clang-diagnostic-c++2a-extensions
+ Diagnostic text:
+
+- warning: default member initializer for bit-field is a C++2a extension
+- warning: explicit capture of 'this' with a capture default of '=' is a C++2a extension
+- warning: invoking a pointer to a 'const &' member function on an rvalue is a C++2a extension
+- warning: range-based for loop initialization statements are a C++2a extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-c++98-c++11-c++14-c++17-compat
+ clang-diagnostic-c++98-c++11-c++14-c++17-compat
+ Diagnostic text:
+
+- warning: %select{default construction|assignment}0 of lambda is incompatible with C++ standards before C++2a
+- warning: '<=>' operator is incompatible with C++ standards before C++2a
+- warning: 'char8_t' type specifier is incompatible with C++ standards before C++20
+- warning: default member initializer for bit-field is incompatible with C++ standards before C++2a
+- warning: explicit capture of 'this' with a capture default of '=' is incompatible with C++ standards before C++2a
+- warning: explicitly defaulting this %sub{select_special_member_kind}0 with a type different from the implicit type is incompatible with C++ standards before C++2a
+- warning: range-based for loop initialization statements are incompatible with C++ standards before C++2a
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-c++98-c++11-c++14-c++17-compat-pedantic
+ clang-diagnostic-c++98-c++11-c++14-c++17-compat-pedantic
+ Diagnostic text:
+
+- warning: %select{default construction|assignment}0 of lambda is incompatible with C++ standards before C++2a
+- warning: '<=>' operator is incompatible with C++ standards before C++2a
+- warning: 'char8_t' type specifier is incompatible with C++ standards before C++20
+- warning: default member initializer for bit-field is incompatible with C++ standards before C++2a
+- warning: explicit capture of 'this' with a capture default of '=' is incompatible with C++ standards before C++2a
+- warning: explicitly defaulting this %sub{select_special_member_kind}0 with a type different from the implicit type is incompatible with C++ standards before C++2a
+- warning: invoking a pointer to a 'const &' member function on an rvalue is incompatible with C++ standards before C++2a
+- warning: range-based for loop initialization statements are incompatible with C++ standards before C++2a
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-c++98-c++11-c++14-compat
+ clang-diagnostic-c++98-c++11-c++14-compat
+ Diagnostic text:
+
+- warning: %select{if|switch}0 initialization statements are incompatible with C++ standards before C++17
+- warning: 'begin' and 'end' returning different types (%0 and %1) is incompatible with C++ standards before C++17
+- warning: by value capture of '*this' is incompatible with C++ standards before C++17
+- warning: class template argument deduction is incompatible with C++ standards before C++17%select{|; for compatibility, use explicit type name %1}0
+- warning: constexpr if is incompatible with C++ standards before C++17
+- warning: constexpr on lambda expressions is incompatible with C++ standards before C++17
+- warning: decomposition declarations are incompatible with C++ standards before C++17
+- warning: default scope specifier for attributes is incompatible with C++ standards before C++17
+- warning: inline variables are incompatible with C++ standards before C++17
+- warning: nested namespace definition is incompatible with C++ standards before C++17
+- warning: non-type template parameters declared with %0 are incompatible with C++ standards before C++17
+- warning: pack expansion using declaration is incompatible with C++ standards before C++17
+- warning: pack fold expression is incompatible with C++ standards before C++17
+- warning: static_assert with no message is incompatible with C++ standards before C++17
+- warning: template template parameter using 'typename' is incompatible with C++ standards before C++17
+- warning: unicode literals are incompatible with C++ standards before C++17
+- warning: use of multiple declarators in a single using declaration is incompatible with C++ standards before C++17
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-c++98-c++11-c++14-compat-pedantic
+ clang-diagnostic-c++98-c++11-c++14-compat-pedantic
+ Diagnostic text:
+
+- warning: %select{if|switch}0 initialization statements are incompatible with C++ standards before C++17
+- warning: 'begin' and 'end' returning different types (%0 and %1) is incompatible with C++ standards before C++17
+- warning: attributes on %select{a namespace|an enumerator}0 declaration are incompatible with C++ standards before C++17
+- warning: by value capture of '*this' is incompatible with C++ standards before C++17
+- warning: class template argument deduction is incompatible with C++ standards before C++17%select{|; for compatibility, use explicit type name %1}0
+- warning: constexpr if is incompatible with C++ standards before C++17
+- warning: constexpr on lambda expressions is incompatible with C++ standards before C++17
+- warning: decomposition declarations are incompatible with C++ standards before C++17
+- warning: default scope specifier for attributes is incompatible with C++ standards before C++17
+- warning: hexadecimal floating literals are incompatible with C++ standards before C++17
+- warning: inline variables are incompatible with C++ standards before C++17
+- warning: nested namespace definition is incompatible with C++ standards before C++17
+- warning: non-type template parameters declared with %0 are incompatible with C++ standards before C++17
+- warning: pack expansion using declaration is incompatible with C++ standards before C++17
+- warning: pack fold expression is incompatible with C++ standards before C++17
+- warning: static_assert with no message is incompatible with C++ standards before C++17
+- warning: template template parameter using 'typename' is incompatible with C++ standards before C++17
+- warning: unicode literals are incompatible with C++ standards before C++17
+- warning: use of multiple declarators in a single using declaration is incompatible with C++ standards before C++17
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-c++98-c++11-compat
+ clang-diagnostic-c++98-c++11-compat
+ Diagnostic text:
+
+- warning: 'decltype(auto)' type specifier is incompatible with C++ standards before C++14
+- warning: constexpr function with no return statements is incompatible with C++ standards before C++14
+- warning: digit separators are incompatible with C++ standards before C++14
+- warning: generic lambdas are incompatible with C++11
+- warning: initialized lambda captures are incompatible with C++ standards before C++14
+- warning: multiple return statements in constexpr function is incompatible with C++ standards before C++14
+- warning: return type deduction is incompatible with C++ standards before C++14
+- warning: type definition in a constexpr %select{function|constructor}0 is incompatible with C++ standards before C++14
+- warning: use of this statement in a constexpr %select{function|constructor}0 is incompatible with C++ standards before C++14
+- warning: variable declaration in a constexpr %select{function|constructor}0 is incompatible with C++ standards before C++14
+- warning: variable templates are incompatible with C++ standards before C++14
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-c++98-c++11-compat-binary-literal
+ clang-diagnostic-c++98-c++11-compat-binary-literal
+ Diagnostic text:
+
+- warning: binary integer literals are incompatible with C++ standards before C++14
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-c++98-c++11-compat-pedantic
+ clang-diagnostic-c++98-c++11-compat-pedantic
+ Diagnostic text:
+
+- warning: 'decltype(auto)' type specifier is incompatible with C++ standards before C++14
+- warning: binary integer literals are incompatible with C++ standards before C++14
+- warning: constexpr function with no return statements is incompatible with C++ standards before C++14
+- warning: digit separators are incompatible with C++ standards before C++14
+- warning: generic lambdas are incompatible with C++11
+- warning: initialized lambda captures are incompatible with C++ standards before C++14
+- warning: multiple return statements in constexpr function is incompatible with C++ standards before C++14
+- warning: return type deduction is incompatible with C++ standards before C++14
+- warning: type definition in a constexpr %select{function|constructor}0 is incompatible with C++ standards before C++14
+- warning: use of this statement in a constexpr %select{function|constructor}0 is incompatible with C++ standards before C++14
+- warning: variable declaration in a constexpr %select{function|constructor}0 is incompatible with C++ standards before C++14
+- warning: variable templates are incompatible with C++ standards before C++14
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-c++98-compat
+ clang-diagnostic-c++98-compat
+ Diagnostic text:
+
+- warning: %select{anonymous struct|union}0 member %1 with a non-trivial %sub{select_special_member_kind}2 is incompatible with C++98
+- warning: %select{default construction|assignment}0 of lambda is incompatible with C++ standards before C++2a
+- warning: %select{defaulted|deleted}0 function definitions are incompatible with C++98
+- warning: %select{if|switch}0 initialization statements are incompatible with C++ standards before C++17
+- warning: '%0' keyword is incompatible with C++98
+- warning: '%0' type specifier is incompatible with C++98
+- warning: '<::' is treated as digraph '<:' (aka '[') followed by ':' in C++98
+- warning: '<=>' operator is incompatible with C++ standards before C++2a
+- warning: 'alignas' is incompatible with C++98
+- warning: 'auto' type specifier is incompatible with C++98
+- warning: 'begin' and 'end' returning different types (%0 and %1) is incompatible with C++ standards before C++17
+- warning: 'char8_t' type specifier is incompatible with C++ standards before C++20
+- warning: 'constexpr' specifier is incompatible with C++98
+- warning: 'decltype' type specifier is incompatible with C++98
+- warning: 'decltype(auto)' type specifier is incompatible with C++ standards before C++14
+- warning: 'nullptr' is incompatible with C++98
+- warning: C++11 attribute syntax is incompatible with C++98
+- warning: alias declarations are incompatible with C++98
+- warning: alignof expressions are incompatible with C++98
+- warning: befriending %1 without '%select{struct|interface|union|class|enum}0' keyword is incompatible with C++98
+- warning: befriending enumeration type %0 is incompatible with C++98
+- warning: by value capture of '*this' is incompatible with C++ standards before C++17
+- warning: class template argument deduction is incompatible with C++ standards before C++17%select{|; for compatibility, use explicit type name %1}0
+- warning: consecutive right angle brackets are incompatible with C++98 (use '> >')
+- warning: constexpr function with no return statements is incompatible with C++ standards before C++14
+- warning: constexpr if is incompatible with C++ standards before C++17
+- warning: constexpr on lambda expressions is incompatible with C++ standards before C++17
+- warning: constructor call from initializer list is incompatible with C++98
+- warning: decomposition declarations are incompatible with C++ standards before C++17
+- warning: default member initializer for bit-field is incompatible with C++ standards before C++2a
+- warning: default scope specifier for attributes is incompatible with C++ standards before C++17
+- warning: default template arguments for a function template are incompatible with C++98
+- warning: delegating constructors are incompatible with C++98
+- warning: digit separators are incompatible with C++ standards before C++14
+- warning: enumeration type in nested name specifier is incompatible with C++98
+- warning: enumeration types with a fixed underlying type are incompatible with C++98
+- warning: explicit capture of 'this' with a capture default of '=' is incompatible with C++ standards before C++2a
+- warning: explicit conversion functions are incompatible with C++98
+- warning: explicitly defaulting this %sub{select_special_member_kind}0 with a type different from the implicit type is incompatible with C++ standards before C++2a
+- warning: friend declaration naming a member of the declaring class is incompatible with C++98
+- warning: generalized initializer lists are incompatible with C++98
+- warning: generic lambdas are incompatible with C++11
+- warning: in-class initialization of non-static data members is incompatible with C++98
+- warning: inheriting constructors are incompatible with C++98
+- warning: initialization of initializer_list object is incompatible with C++98
+- warning: initialized lambda captures are incompatible with C++ standards before C++14
+- warning: inline namespaces are incompatible with C++98
+- warning: inline variables are incompatible with C++ standards before C++17
+- warning: jump from switch statement to this case label is incompatible with C++98
+- warning: jump from this goto statement to its label is incompatible with C++98
+- warning: jump from this indirect goto statement to one of its possible targets is incompatible with C++98
+- warning: lambda expressions are incompatible with C++98
+- warning: literal operators are incompatible with C++98
+- warning: local type %0 as template argument is incompatible with C++98
+- warning: multiple return statements in constexpr function is incompatible with C++ standards before C++14
+- warning: nested namespace definition is incompatible with C++ standards before C++17
+- warning: noexcept expressions are incompatible with C++98
+- warning: noexcept specifications are incompatible with C++98
+- warning: non-class friend type %0 is incompatible with C++98
+- warning: non-type template argument referring to %select{function|object}0 %1 with internal linkage is incompatible with C++98
+- warning: non-type template parameters declared with %0 are incompatible with C++ standards before C++17
+- warning: pack expansion using declaration is incompatible with C++ standards before C++17
+- warning: pack fold expression is incompatible with C++ standards before C++17
+- warning: passing object of trivial but non-POD type %0 through variadic %select{function|block|method|constructor}1 is incompatible with C++98
+- warning: range-based for loop initialization statements are incompatible with C++ standards before C++2a
+- warning: range-based for loop is incompatible with C++98
+- warning: raw string literals are incompatible with C++98
+- warning: redundant parentheses surrounding address non-type template argument are incompatible with C++98
+- warning: reference initialized from initializer list is incompatible with C++98
+- warning: reference qualifiers on functions are incompatible with C++98
+- warning: return type deduction is incompatible with C++ standards before C++14
+- warning: rvalue references are incompatible with C++98
+- warning: scalar initialized from empty initializer list is incompatible with C++98
+- warning: scoped enumerations are incompatible with C++98
+- warning: specifying character '%0' with a universal character name is incompatible with C++98
+- warning: static data member %0 in union is incompatible with C++98
+- warning: static_assert declarations are incompatible with C++98
+- warning: static_assert with no message is incompatible with C++ standards before C++17
+- warning: substitution failure due to access control is incompatible with C++98
+- warning: template template parameter using 'typename' is incompatible with C++ standards before C++17
+- warning: trailing return types are incompatible with C++98
+- warning: type definition in a constexpr %select{function|constructor}0 is incompatible with C++ standards before C++14
+- warning: unicode literals are incompatible with C++ standards before C++17
+- warning: unicode literals are incompatible with C++98
+- warning: universal character name referring to a control character is incompatible with C++98
+- warning: unnamed type as template argument is incompatible with C++98
+- warning: use of 'template' keyword outside of a template is incompatible with C++98
+- warning: use of 'typename' outside of a template is incompatible with C++98
+- warning: use of multiple declarators in a single using declaration is incompatible with C++ standards before C++17
+- warning: use of non-static data member %0 in an unevaluated context is incompatible with C++98
+- warning: use of null pointer as non-type template argument is incompatible with C++98
+- warning: use of this statement in a constexpr %select{function|constructor}0 is incompatible with C++ standards before C++14
+- warning: using this character in an identifier is incompatible with C++98
+- warning: variable declaration in a constexpr %select{function|constructor}0 is incompatible with C++ standards before C++14
+- warning: variable templates are incompatible with C++ standards before C++14
+- warning: variadic templates are incompatible with C++98
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-c++98-compat-bind-to-temporary-copy
+ clang-diagnostic-c++98-compat-bind-to-temporary-copy
+ Diagnostic text:
+
+- warning: %sub{select_initialized_entity_kind}1 of type %2 when binding a reference to a temporary would %select{invoke an inaccessible constructor|find no viable constructor|find ambiguous constructors|invoke a deleted constructor}0 in C++98
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-c++98-compat-extra-semi
+ clang-diagnostic-c++98-compat-extra-semi
+ Diagnostic text:
+
+- warning: extra ';' outside of a function is incompatible with C++98
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-c++98-compat-local-type-template-args
+ clang-diagnostic-c++98-compat-local-type-template-args
+ Diagnostic text:
+
+- warning: local type %0 as template argument is incompatible with C++98
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-c++98-compat-pedantic
+ clang-diagnostic-c++98-compat-pedantic
+ Diagnostic text:
+
+- warning: #line number greater than 32767 is incompatible with C++98
+- warning: %select{anonymous struct|union}0 member %1 with a non-trivial %sub{select_special_member_kind}2 is incompatible with C++98
+- warning: %select{default construction|assignment}0 of lambda is incompatible with C++ standards before C++2a
+- warning: %select{default construction|assignment}0 of lambda is incompatible with C++ standards before C++2a
+- warning: %select{defaulted|deleted}0 function definitions are incompatible with C++98
+- warning: %select{if|switch}0 initialization statements are incompatible with C++ standards before C++17
+- warning: %select{if|switch}0 initialization statements are incompatible with C++ standards before C++17
+- warning: %sub{select_initialized_entity_kind}1 of type %2 when binding a reference to a temporary would %select{invoke an inaccessible constructor|find no viable constructor|find ambiguous constructors|invoke a deleted constructor}0 in C++98
+- warning: '%0' keyword is incompatible with C++98
+- warning: '%0' type specifier is incompatible with C++98
+- warning: '<::' is treated as digraph '<:' (aka '[') followed by ':' in C++98
+- warning: '<=>' operator is incompatible with C++ standards before C++2a
+- warning: '<=>' operator is incompatible with C++ standards before C++2a
+- warning: 'alignas' is incompatible with C++98
+- warning: 'auto' type specifier is incompatible with C++98
+- warning: 'begin' and 'end' returning different types (%0 and %1) is incompatible with C++ standards before C++17
+- warning: 'begin' and 'end' returning different types (%0 and %1) is incompatible with C++ standards before C++17
+- warning: 'char8_t' type specifier is incompatible with C++ standards before C++20
+- warning: 'char8_t' type specifier is incompatible with C++ standards before C++20
+- warning: 'constexpr' specifier is incompatible with C++98
+- warning: 'decltype' type specifier is incompatible with C++98
+- warning: 'decltype(auto)' type specifier is incompatible with C++ standards before C++14
+- warning: 'decltype(auto)' type specifier is incompatible with C++ standards before C++14
+- warning: 'long long' is incompatible with C++98
+- warning: 'nullptr' is incompatible with C++98
+- warning: C++11 attribute syntax is incompatible with C++98
+- warning: C++98 requires newline at end of file
+- warning: alias declarations are incompatible with C++98
+- warning: alignof expressions are incompatible with C++98
+- warning: attributes on %select{a namespace|an enumerator}0 declaration are incompatible with C++ standards before C++17
+- warning: befriending %1 without '%select{struct|interface|union|class|enum}0' keyword is incompatible with C++98
+- warning: befriending enumeration type %0 is incompatible with C++98
+- warning: binary integer literals are incompatible with C++ standards before C++14
+- warning: by value capture of '*this' is incompatible with C++ standards before C++17
+- warning: by value capture of '*this' is incompatible with C++ standards before C++17
+- warning: cast between pointer-to-function and pointer-to-object is incompatible with C++98
+- warning: class template argument deduction is incompatible with C++ standards before C++17%select{|; for compatibility, use explicit type name %1}0
+- warning: class template argument deduction is incompatible with C++ standards before C++17%select{|; for compatibility, use explicit type name %1}0
+- warning: commas at the end of enumerator lists are incompatible with C++98
+- warning: consecutive right angle brackets are incompatible with C++98 (use '> >')
+- warning: constexpr function with no return statements is incompatible with C++ standards before C++14
+- warning: constexpr function with no return statements is incompatible with C++ standards before C++14
+- warning: constexpr if is incompatible with C++ standards before C++17
+- warning: constexpr if is incompatible with C++ standards before C++17
+- warning: constexpr on lambda expressions is incompatible with C++ standards before C++17
+- warning: constexpr on lambda expressions is incompatible with C++ standards before C++17
+- warning: constructor call from initializer list is incompatible with C++98
+- warning: decomposition declarations are incompatible with C++ standards before C++17
+- warning: decomposition declarations are incompatible with C++ standards before C++17
+- warning: default member initializer for bit-field is incompatible with C++ standards before C++2a
+- warning: default member initializer for bit-field is incompatible with C++ standards before C++2a
+- warning: default scope specifier for attributes is incompatible with C++ standards before C++17
+- warning: default scope specifier for attributes is incompatible with C++ standards before C++17
+- warning: default template arguments for a function template are incompatible with C++98
+- warning: delegating constructors are incompatible with C++98
+- warning: digit separators are incompatible with C++ standards before C++14
+- warning: digit separators are incompatible with C++ standards before C++14
+- warning: empty macro arguments are incompatible with C++98
+- warning: enumeration type in nested name specifier is incompatible with C++98
+- warning: enumeration types with a fixed underlying type are incompatible with C++98
+- warning: explicit capture of 'this' with a capture default of '=' is incompatible with C++ standards before C++2a
+- warning: explicit capture of 'this' with a capture default of '=' is incompatible with C++ standards before C++2a
+- warning: explicit conversion functions are incompatible with C++98
+- warning: explicitly defaulting this %sub{select_special_member_kind}0 with a type different from the implicit type is incompatible with C++ standards before C++2a
+- warning: explicitly defaulting this %sub{select_special_member_kind}0 with a type different from the implicit type is incompatible with C++ standards before C++2a
+- warning: extern templates are incompatible with C++98
+- warning: extra ';' outside of a function is incompatible with C++98
+- warning: friend declaration naming a member of the declaring class is incompatible with C++98
+- warning: generalized initializer lists are incompatible with C++98
+- warning: generic lambdas are incompatible with C++11
+- warning: generic lambdas are incompatible with C++11
+- warning: hexadecimal floating literals are incompatible with C++ standards before C++17
+- warning: implicit conversion from array size expression of type %0 to %select{integral|enumeration}1 type %2 is incompatible with C++98
+- warning: in-class initialization of non-static data members is incompatible with C++98
+- warning: inheriting constructors are incompatible with C++98
+- warning: initialization of initializer_list object is incompatible with C++98
+- warning: initialized lambda captures are incompatible with C++ standards before C++14
+- warning: initialized lambda captures are incompatible with C++ standards before C++14
+- warning: inline namespaces are incompatible with C++98
+- warning: inline variables are incompatible with C++ standards before C++17
+- warning: inline variables are incompatible with C++ standards before C++17
+- warning: invoking a pointer to a 'const &' member function on an rvalue is incompatible with C++ standards before C++2a
+- warning: jump from switch statement to this case label is incompatible with C++98
+- warning: jump from this goto statement to its label is incompatible with C++98
+- warning: jump from this indirect goto statement to one of its possible targets is incompatible with C++98
+- warning: lambda expressions are incompatible with C++98
+- warning: literal operators are incompatible with C++98
+- warning: local type %0 as template argument is incompatible with C++98
+- warning: multiple return statements in constexpr function is incompatible with C++ standards before C++14
+- warning: multiple return statements in constexpr function is incompatible with C++ standards before C++14
+- warning: nested namespace definition is incompatible with C++ standards before C++17
+- warning: nested namespace definition is incompatible with C++ standards before C++17
+- warning: noexcept expressions are incompatible with C++98
+- warning: noexcept specifications are incompatible with C++98
+- warning: non-class friend type %0 is incompatible with C++98
+- warning: non-type template argument referring to %select{function|object}0 %1 with internal linkage is incompatible with C++98
+- warning: non-type template parameters declared with %0 are incompatible with C++ standards before C++17
+- warning: non-type template parameters declared with %0 are incompatible with C++ standards before C++17
+- warning: pack expansion using declaration is incompatible with C++ standards before C++17
+- warning: pack expansion using declaration is incompatible with C++ standards before C++17
+- warning: pack fold expression is incompatible with C++ standards before C++17
+- warning: pack fold expression is incompatible with C++ standards before C++17
+- warning: passing object of trivial but non-POD type %0 through variadic %select{function|block|method|constructor}1 is incompatible with C++98
+- warning: range-based for loop initialization statements are incompatible with C++ standards before C++2a
+- warning: range-based for loop initialization statements are incompatible with C++ standards before C++2a
+- warning: range-based for loop is incompatible with C++98
+- warning: raw string literals are incompatible with C++98
+- warning: redundant parentheses surrounding address non-type template argument are incompatible with C++98
+- warning: reference initialized from initializer list is incompatible with C++98
+- warning: reference qualifiers on functions are incompatible with C++98
+- warning: return type deduction is incompatible with C++ standards before C++14
+- warning: return type deduction is incompatible with C++ standards before C++14
+- warning: rvalue references are incompatible with C++98
+- warning: scalar initialized from empty initializer list is incompatible with C++98
+- warning: scoped enumerations are incompatible with C++98
+- warning: specifying character '%0' with a universal character name is incompatible with C++98
+- warning: static data member %0 in union is incompatible with C++98
+- warning: static_assert declarations are incompatible with C++98
+- warning: static_assert with no message is incompatible with C++ standards before C++17
+- warning: static_assert with no message is incompatible with C++ standards before C++17
+- warning: substitution failure due to access control is incompatible with C++98
+- warning: template template parameter using 'typename' is incompatible with C++ standards before C++17
+- warning: template template parameter using 'typename' is incompatible with C++ standards before C++17
+- warning: trailing return types are incompatible with C++98
+- warning: type definition in a constexpr %select{function|constructor}0 is incompatible with C++ standards before C++14
+- warning: type definition in a constexpr %select{function|constructor}0 is incompatible with C++ standards before C++14
+- warning: unicode literals are incompatible with C++ standards before C++17
+- warning: unicode literals are incompatible with C++ standards before C++17
+- warning: unicode literals are incompatible with C++98
+- warning: universal character name referring to a control character is incompatible with C++98
+- warning: unnamed type as template argument is incompatible with C++98
+- warning: use of 'template' keyword outside of a template is incompatible with C++98
+- warning: use of 'typename' outside of a template is incompatible with C++98
+- warning: use of multiple declarators in a single using declaration is incompatible with C++ standards before C++17
+- warning: use of multiple declarators in a single using declaration is incompatible with C++ standards before C++17
+- warning: use of non-static data member %0 in an unevaluated context is incompatible with C++98
+- warning: use of null pointer as non-type template argument is incompatible with C++98
+- warning: use of this statement in a constexpr %select{function|constructor}0 is incompatible with C++ standards before C++14
+- warning: use of this statement in a constexpr %select{function|constructor}0 is incompatible with C++ standards before C++14
+- warning: using this character in an identifier is incompatible with C++98
+- warning: variable declaration in a constexpr %select{function|constructor}0 is incompatible with C++ standards before C++14
+- warning: variable declaration in a constexpr %select{function|constructor}0 is incompatible with C++ standards before C++14
+- warning: variable templates are incompatible with C++ standards before C++14
+- warning: variable templates are incompatible with C++ standards before C++14
+- warning: variadic macros are incompatible with C++98
+- warning: variadic templates are incompatible with C++98
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-c++98-compat-unnamed-type-template-args
+ clang-diagnostic-c++98-compat-unnamed-type-template-args
+ Diagnostic text:
+
+- warning: unnamed type as template argument is incompatible with C++98
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-c11-extensions
+ clang-diagnostic-c11-extensions
+ Diagnostic text:
+
+- warning: %0 is a C11-specific feature
+- warning: _Noreturn functions are a C11-specific feature
+- warning: _Static_assert is a C11-specific feature
+- warning: anonymous structs are a C11 extension
+- warning: anonymous unions are a C11 extension
+- warning: generic selections are a C11-specific feature
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-c99-compat
+ clang-diagnostic-c99-compat
+ Diagnostic text:
+
+- warning: %select{using this character in an identifier|starting an identifier with this character}0 is incompatible with C99
+- warning: integer literal is too large to be represented in type 'long', interpreting as 'unsigned long' per C89; this literal will %select{have type 'long long'|be ill-formed}0 in C99 onwards
+- warning: unicode literals are incompatible with C99
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-c99-extensions
+ clang-diagnostic-c99-extensions
+ Diagnostic text:
+
+- warning: %select{qualifier in |static |}0array size %select{||'[*] '}0is a C99 feature
+- warning: ISO C99 requires whitespace after the macro name
+- warning: commas at the end of enumerator lists are a C99-specific feature
+- warning: compound literals are a C99-specific feature
+- warning: designated initializers are a C99 feature
+- warning: empty macro arguments are a C99 feature
+- warning: flexible array members are a C99 feature
+- warning: hexadecimal floating constants are a C99 feature
+- warning: initializer for aggregate is not a compile-time constant
+- warning: variable declaration in for loop is a C99-specific feature
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-cast-align
+ clang-diagnostic-cast-align
+ Diagnostic text:
+
+- warning: cast from %0 to %1 increases required alignment from %2 to %3
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-cast-calling-convention
+ clang-diagnostic-cast-calling-convention
+ Diagnostic text:
+
+- warning: cast between incompatible calling conventions '%0' and '%1'; calls through this pointer may abort at runtime
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-cast-of-sel-type
+ clang-diagnostic-cast-of-sel-type
+ Diagnostic text:
+
+- warning: cast of type %0 to %1 is deprecated; use sel_getName instead
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-cast-qual
+ clang-diagnostic-cast-qual
+ Diagnostic text:
+
+- warning: cast from %0 to %1 drops %select{const and volatile qualifiers|const qualifier|volatile qualifier}2
+- warning: cast from %0 to %1 must have all intermediate pointers const qualified to be safe
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-cast-qual-unrelated
+ clang-diagnostic-cast-qual-unrelated
+ Diagnostic text:
+
+- warning: ISO C++ does not allow %select{const_cast|static_cast|reinterpret_cast|dynamic_cast|C-style cast|functional-style cast}0 from %1 to %2 because it casts away qualifiers, even though the source and destination types are unrelated
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-char-subscripts
+ clang-diagnostic-char-subscripts
+ Diagnostic text:
+
+- warning: array section %select{lower bound|length}0 is of type 'char'
+- warning: array subscript is of type 'char'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-clang-cl-pch
+ clang-diagnostic-clang-cl-pch
+ Diagnostic text:
+
+- warning: #pragma hdrstop filename not supported, /Fp can be used to specify precompiled header filename
+- warning: definition of macro %0 does not match definition in precompiled header
+- warning: support for '%0' without a corresponding /FI flag not implemented yet; flag ignored
+- warning: support for '/Yc' and '/Yu' with different filenames not implemented yet; flags ignored
+- warning: support for '/Yc' with more than one source file not implemented yet; flag ignored
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-class-varargs
+ clang-diagnostic-class-varargs
+ Diagnostic text:
+
+- warning: cannot pass %select{non-POD|non-trivial}0 object of type %1 to variadic %select{function|block|method|constructor}2; expected type from format string was %3
+- warning: cannot pass object of %select{non-POD|non-trivial}0 type %1 through variadic %select{function|block|method|constructor}2; call will abort at runtime
+- warning: passing object of class type %0 through variadic %select{function|block|method|constructor}1%select{|; did you mean to call '%3'?}2
+- warning: second argument to 'va_arg' is of ARC ownership-qualified type %0
+- warning: second argument to 'va_arg' is of non-POD type %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ CRITICAL
+ CODE_SMELL
+
+
+ clang-diagnostic-comma
+ clang-diagnostic-comma
+ Diagnostic text:
+
+- warning: possible misuse of comma operator here
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-comment
+ clang-diagnostic-comment
+ Diagnostic text:
+
+- warning: '/*' within block comment
+- warning: // comments are not allowed in this language
+- warning: escaped newline between */ characters at block comment end
+- warning: multi-line // comment
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-comments
+ clang-diagnostic-comments
+ Diagnostic text:
+
+- warning: '/*' within block comment
+- warning: // comments are not allowed in this language
+- warning: escaped newline between */ characters at block comment end
+- warning: multi-line // comment
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-compare-distinct-pointer-types
+ clang-diagnostic-compare-distinct-pointer-types
+ Diagnostic text:
+
+- warning: comparison of distinct pointer types%diff{ ($ and $)|}0,1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-complex-component-init
+ clang-diagnostic-complex-component-init
+ Diagnostic text:
+
+- warning: complex initialization specifying real and imaginary components is an extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-conditional-type-mismatch
+ clang-diagnostic-conditional-type-mismatch
+ Diagnostic text:
+
+- warning: pointer/integer type mismatch in conditional expression%diff{ ($ and $)|}0,1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-conditional-uninitialized
+ clang-diagnostic-conditional-uninitialized
+ Diagnostic text:
+
+- warning: variable %0 may be uninitialized when %select{used here|captured by block}1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-config-macros
+ clang-diagnostic-config-macros
+ Diagnostic text:
+
+- warning: %select{definition|#undef}0 of configuration macro '%1' has no effect on the import of '%2'; pass '%select{-D%1=...|-U%1}0' on the command line to configure the module
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-constant-conversion
+ clang-diagnostic-constant-conversion
+ Diagnostic text:
+
+- warning: implicit conversion from %2 to %3 changes value from %0 to %1
+- warning: implicit truncation from %2 to bit-field changes value from %0 to %1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-constant-logical-operand
+ clang-diagnostic-constant-logical-operand
+ Diagnostic text:
+
+- warning: use of logical '%0' with constant operand
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-constexpr-not-const
+ clang-diagnostic-constexpr-not-const
+ Diagnostic text:
+
+- warning: 'constexpr' non-static member function will not be implicitly 'const' in C++14; add 'const' to avoid a change in behavior
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-consumed
+ clang-diagnostic-consumed
+ Diagnostic text:
+
+- warning: argument not in expected state; expected '%0', observed '%1'
+- warning: consumed analysis attribute is attached to member of class '%0' which isn't marked as consumable
+- warning: invalid invocation of method '%0' on a temporary object while it is in the '%1' state
+- warning: invalid invocation of method '%0' on object '%1' while it is in the '%2' state
+- warning: parameter '%0' not in expected state when the function returns: expected '%1', observed '%2'
+- warning: return state set for an unconsumable type '%0'
+- warning: return value not in expected state; expected '%0', observed '%1'
+- warning: state of variable '%0' must match at the entry and exit of loop
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-conversion
+ clang-diagnostic-conversion
+ Diagnostic text:
+
+- warning: 'this' pointer cannot be null in well-defined C++ code; pointer may be assumed to always convert to true
+- warning: address of%select{| function| array}0 '%1' will always evaluate to 'true'
+- warning: assigning value of signed enum type %1 to unsigned bit-field %0; negative enumerators of enum %1 will be converted to positive values
+- warning: bit-field %0 is not wide enough to store all enumerators of %1
+- warning: expression which evaluates to zero treated as a null pointer constant of type %0
+- warning: implicit boolean conversion of Objective-C object literal always evaluates to true
+- warning: implicit conversion changes signedness: %0 to %1
+- warning: implicit conversion discards imaginary component: %0 to %1
+- warning: implicit conversion from %0 to %1 changes non-zero value from %2 to %3
+- warning: implicit conversion from %0 to %1 changes value from %2 to %3
+- warning: implicit conversion from %0 to %1 changes value from %2 to %3
+- warning: implicit conversion from %2 to %3 changes value from %0 to %1
+- warning: implicit conversion from enumeration type %0 to different enumeration type %1
+- warning: implicit conversion loses floating-point precision: %0 to %1
+- warning: implicit conversion loses integer precision: %0 to %1
+- warning: implicit conversion loses integer precision: %0 to %1
+- warning: implicit conversion of %select{NULL|nullptr}0 constant to %1
+- warning: implicit conversion of out of range value from %0 to %1 is undefined
+- warning: implicit conversion of out of range value from %0 to %1 is undefined
+- warning: implicit conversion turns floating-point number into integer: %0 to %1
+- warning: implicit conversion turns string literal into bool: %0 to %1
+- warning: implicit conversion turns vector to scalar: %0 to %1
+- warning: implicit conversion when assigning computation result loses floating-point precision: %0 to %1
+- warning: implicit truncation from %2 to bit-field changes value from %0 to %1
+- warning: incompatible integer to pointer conversion %select{%diff{assigning to $ from $|assigning to different types}0,1|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2%select{|; dereference with *|; take the address with &|; remove *|; remove &}3
+- warning: incompatible pointer to integer conversion %select{%diff{assigning to $ from $|assigning to different types}0,1|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2%select{|; dereference with *|; take the address with &|; remove *|; remove &}3
+- warning: initialization of pointer of type %0 to null from a constant boolean expression
+- warning: non-type template argument value '%0' truncated to '%1' for template parameter of type %2
+- warning: non-type template argument with value '%0' converted to '%1' for unsigned template parameter of type %2
+- warning: nonnull %select{function call|parameter}0 '%1' will evaluate to 'true' on first encounter
+- warning: object of type %0 is not compatible with %select{array element type|dictionary key type|dictionary value type}1 %2
+- warning: operand of ? changes signedness: %0 to %1
+- warning: passing non-generic address space pointer to %0 may cause dynamic conversion affecting performance
+- warning: reference cannot be bound to dereferenced null pointer in well-defined C++ code; pointer may be assumed to always convert to true
+- warning: signed bit-field %0 needs an extra bit to represent the largest positive enumerators of %1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-conversion-null
+ clang-diagnostic-conversion-null
+ Diagnostic text:
+
+- warning: implicit conversion of %select{NULL|nullptr}0 constant to %1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-coroutine
+ clang-diagnostic-coroutine
+ Diagnostic text:
+
+- warning: %0 is required to declare the member 'unhandled_exception()' when exceptions are enabled
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-coroutine-missing-unhandled-exception
+ clang-diagnostic-coroutine-missing-unhandled-exception
+ Diagnostic text:
+
+- warning: %0 is required to declare the member 'unhandled_exception()' when exceptions are enabled
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-covered-switch-default
+ clang-diagnostic-covered-switch-default
+ Diagnostic text:
+
+- warning: default label in switch which covers all enumeration values
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-cpp
+ clang-diagnostic-cpp
+ Diagnostic text:
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-cstring-format-directive
+ clang-diagnostic-cstring-format-directive
+ Diagnostic text:
+
+- warning: using %0 directive in %select{NSString|CFString}1 which is being passed as a formatting argument to the formatting %select{method|CFfunction}2
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-cuda-compat
+ clang-diagnostic-cuda-compat
+ Diagnostic text:
+
+- warning: %0 attribute parameter %1 is negative and will be ignored
+- warning: argument to '#pragma unroll' should not be in parentheses in CUDA C/C++
+- warning: ignored 'inline' attribute on kernel function %0
+- warning: kernel function %0 is a member function; this may not be accepted by nvcc
+- warning: nvcc does not allow '__%0__' to appear after '()' in lambdas
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-custom-atomic-properties
+ clang-diagnostic-custom-atomic-properties
+ Diagnostic text:
+
+- warning: atomic by default property %0 has a user defined %select{getter|setter}1 (property should be marked 'atomic' if this is intended)
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-dangling
+ clang-diagnostic-dangling
+ Diagnostic text:
+
+- warning: %select{address of|reference to}0 stack memory associated with %select{local variable|parameter}2 %1 returned
+- warning: %select{reference|backing array for 'std::initializer_list'}2 %select{|subobject of }1member %0 %select{binds to|is}2 a temporary object whose lifetime is shorter than the lifetime of the constructed object
+- warning: %select{temporary %select{whose address is used as value of|%select{|implicitly }2bound to}4 %select{%select{|reference }4member of local variable|local %select{variable|reference}4}1|array backing %select{initializer list subobject of local variable|local initializer list}1}0 %select{%3 |}2will be destroyed at the end of the full-expression
+- warning: array backing %select{initializer list subobject of the allocated object|the allocated initializer list}0 will be destroyed at the end of the full-expression
+- warning: binding reference member %0 to stack allocated %select{variable|parameter}2 %1
+- warning: initializing pointer member %0 with the stack address of %select{variable|parameter}2 %1
+- warning: returning %select{address of|reference to}0 local temporary object
+- warning: returning address of label, which is local
+- warning: sorry, lifetime extension of %select{temporary|backing array of initializer list}0 created by aggregate initialization using default member initializer is not supported; lifetime of %select{temporary|backing array}0 will end at the end of the full-expression
+- warning: temporary bound to reference member of allocated object will be destroyed at the end of the full-expression
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-dangling-else
+ clang-diagnostic-dangling-else
+ Diagnostic text:
+
+- warning: add explicit braces to avoid dangling else
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-dangling-field
+ clang-diagnostic-dangling-field
+ Diagnostic text:
+
+- warning: %select{reference|backing array for 'std::initializer_list'}2 %select{|subobject of }1member %0 %select{binds to|is}2 a temporary object whose lifetime is shorter than the lifetime of the constructed object
+- warning: binding reference member %0 to stack allocated %select{variable|parameter}2 %1
+- warning: initializing pointer member %0 with the stack address of %select{variable|parameter}2 %1
+- warning: temporary bound to reference member of allocated object will be destroyed at the end of the full-expression
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-dangling-initializer-list
+ clang-diagnostic-dangling-initializer-list
+ Diagnostic text:
+
+- warning: array backing %select{initializer list subobject of the allocated object|the allocated initializer list}0 will be destroyed at the end of the full-expression
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-date-time
+ clang-diagnostic-date-time
+ Diagnostic text:
+
+- warning: expansion of date or time macro is not reproducible
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-dealloc-in-category
+ clang-diagnostic-dealloc-in-category
+ Diagnostic text:
+
+- warning: -dealloc is being overridden in a category
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-debug-compression-unavailable
+ clang-diagnostic-debug-compression-unavailable
+ Diagnostic text:
+
+- warning: cannot compress debug sections (zlib not installed)
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-declaration-after-statement
+ clang-diagnostic-declaration-after-statement
+ Diagnostic text:
+
+- warning: ISO C90 forbids mixing declarations and code
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-defaulted-function-deleted
+ clang-diagnostic-defaulted-function-deleted
+ Diagnostic text:
+
+- warning: explicitly defaulted %sub{select_special_member_kind}0 is implicitly deleted
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-delegating-ctor-cycles
+ clang-diagnostic-delegating-ctor-cycles
+ Diagnostic text:
+
+- warning: constructor for %0 creates a delegation cycle
+
+References
+Diagnostic flags in Clang
+ ]]>
+ CRITICAL
+ CODE_SMELL
+
+
+ clang-diagnostic-delete-incomplete
+ clang-diagnostic-delete-incomplete
+ Diagnostic text:
+
+- warning: cannot delete expression with pointer-to-'void' type %0
+- warning: deleting pointer to incomplete type %0 may cause undefined behavior
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-delete-non-virtual-dtor
+ clang-diagnostic-delete-non-virtual-dtor
+ Diagnostic text:
+
+- warning: %select{delete|destructor}0 called on %1 that is abstract but has non-virtual destructor
+- warning: %select{delete|destructor}0 called on non-final %1 that has virtual functions but non-virtual destructor
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-deprecated
+ clang-diagnostic-deprecated
+ Diagnostic text:
+
+- warning: %0 is deprecated
+- warning: %0 is deprecated: %1
+- warning: %0 may be deprecated because the receiver type is unknown
+- warning: 'register' storage class specifier is deprecated and incompatible with C++17
+- warning: -O4 is equivalent to -O3
+- warning: OpenCL version %0 does not support the option '%1'
+- warning: Use of 'long' with '__vector' is deprecated
+- warning: access declarations are deprecated; use using declarations instead
+- warning: argument '%0' is deprecated, use '%1' instead
+- warning: conversion from string literal to %0 is deprecated
+- warning: definition of implicit copy %select{constructor|assignment operator}1 for %0 is deprecated because it has a user-declared %select{copy %select{assignment operator|constructor}1|destructor}2
+- warning: dynamic exception specifications are deprecated
+- warning: implicit capture of 'this' with a capture default of '=' is deprecated
+- warning: incrementing expression of type bool is deprecated and incompatible with C++17
+- warning: out-of-line definition of constexpr static data member is redundant in C++17 and is deprecated
+- warning: property access is using %0 method which is deprecated
+- warning: specifying 'uuid' as an ATL attribute is deprecated; use __declspec instead
+- warning: specifying vector types with the 'mode' attribute is deprecated; use the 'vector_size' attribute instead
+- warning: treating '%0' input as '%1' when in C++ mode, this behavior is deprecated
+- warning: use of C-style parameters in Objective-C method declarations is deprecated
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-deprecated-attributes
+ clang-diagnostic-deprecated-attributes
+ Diagnostic text:
+
+- warning: specifying vector types with the 'mode' attribute is deprecated; use the 'vector_size' attribute instead
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-deprecated-declarations
+ clang-diagnostic-deprecated-declarations
+ Diagnostic text:
+
+- warning: %0 is deprecated
+- warning: %0 is deprecated: %1
+- warning: %0 may be deprecated because the receiver type is unknown
+- warning: property access is using %0 method which is deprecated
+- warning: specifying 'uuid' as an ATL attribute is deprecated; use __declspec instead
+- warning: use of C-style parameters in Objective-C method declarations is deprecated
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-deprecated-dynamic-exception-spec
+ clang-diagnostic-deprecated-dynamic-exception-spec
+ Diagnostic text:
+
+- warning: dynamic exception specifications are deprecated
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-deprecated-implementations
+ clang-diagnostic-deprecated-implementations
+ Diagnostic text:
+
+- warning: implementing deprecated %select{method|class|category}0
+- warning: implementing unavailable method
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-deprecated-increment-bool
+ clang-diagnostic-deprecated-increment-bool
+ Diagnostic text:
+
+- warning: incrementing expression of type bool is deprecated and incompatible with C++17
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-deprecated-objc-isa-usage
+ clang-diagnostic-deprecated-objc-isa-usage
+ Diagnostic text:
+
+- warning: assignment to Objective-C's isa is deprecated in favor of object_setClass()
+- warning: direct access to Objective-C's isa is deprecated in favor of object_getClass()
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-deprecated-objc-pointer-introspection
+ clang-diagnostic-deprecated-objc-pointer-introspection
+ Diagnostic text:
+
+- warning: bitmasking for introspection of Objective-C object pointers is strongly discouraged
+- warning: bitmasking for introspection of Objective-C object pointers is strongly discouraged
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-deprecated-objc-pointer-introspection-performSelector
+ clang-diagnostic-deprecated-objc-pointer-introspection-performSelector
+ Diagnostic text:
+
+- warning: bitmasking for introspection of Objective-C object pointers is strongly discouraged
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-deprecated-register
+ clang-diagnostic-deprecated-register
+ Diagnostic text:
+
+- warning: 'register' storage class specifier is deprecated and incompatible with C++17
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-deprecated-this-capture
+ clang-diagnostic-deprecated-this-capture
+ Diagnostic text:
+
+- warning: implicit capture of 'this' with a capture default of '=' is deprecated
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-deprecated-writable-strings
+ clang-diagnostic-deprecated-writable-strings
+ Diagnostic text:
+
+- warning: conversion from string literal to %0 is deprecated
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-direct-ivar-access
+ clang-diagnostic-direct-ivar-access
+ Diagnostic text:
+
+- warning: instance variable %0 is being directly accessed
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-disabled-macro-expansion
+ clang-diagnostic-disabled-macro-expansion
+ Diagnostic text:
+
+- warning: disabled expansion of recursive macro
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-distributed-object-modifiers
+ clang-diagnostic-distributed-object-modifiers
+ Diagnostic text:
+
+- warning: conflicting distributed object modifiers on parameter type in implementation of %0
+- warning: conflicting distributed object modifiers on return type in implementation of %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-div-by-zero
+ clang-diagnostic-div-by-zero
+ Diagnostic text:
+
+- warning: %select{remainder|division}0 by zero is undefined
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-division-by-zero
+ clang-diagnostic-division-by-zero
+ Diagnostic text:
+
+- warning: %select{remainder|division}0 by zero is undefined
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-dll-attribute-on-redeclaration
+ clang-diagnostic-dll-attribute-on-redeclaration
+ Diagnostic text:
+
+- warning: redeclaration of %q0 should not add %q1 attribute
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-dllexport-explicit-instantiation-decl
+ clang-diagnostic-dllexport-explicit-instantiation-decl
+ Diagnostic text:
+
+- warning: explicit instantiation declaration should not be 'dllexport'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-dllimport-static-field-def
+ clang-diagnostic-dllimport-static-field-def
+ Diagnostic text:
+
+- warning: definition of dllimport static field
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-documentation
+ clang-diagnostic-documentation
+ Diagnostic text:
+
+- warning: '%select{\|@}0%1' command does not terminate a verbatim text block
+- warning: '%select{\|@}0%1' command used in a comment that is attached to a %select{function returning void|constructor|destructor|method returning void}2
+- warning: '%select{\|@}0%1' command used in a comment that is not attached to a function or method declaration
+- warning: '%select{\|@}0%select{classdesign|coclass|dependency|helper|helperclass|helps|instancesize|ownership|performance|security|superclass}1' command should not be used in a comment attached to a non-container declaration
+- warning: '%select{\|@}0%select{class|interface|protocol|struct|union}1' command should not be used in a comment attached to a non-%select{class|interface|protocol|struct|union}2 declaration
+- warning: '%select{\|@}0%select{function|functiongroup|method|methodgroup|callback}1' command should be used in a comment attached to %select{a function|a function|an Objective-C method|an Objective-C method|a pointer to function}2 declaration
+- warning: '%select{\|@}0param' command used in a comment that is not attached to a function declaration
+- warning: '%select{\|@}0tparam' command used in a comment that is not attached to a template declaration
+- warning: HTML end tag '%0' is forbidden
+- warning: HTML end tag does not match any start tag
+- warning: HTML start tag '%0' closed by '%1'
+- warning: HTML start tag prematurely ended, expected attribute name or '>'
+- warning: HTML tag '%0' requires an end tag
+- warning: declaration is marked with '\deprecated' command but does not have a deprecation attribute
+- warning: duplicated command '%select{\|@}0%1'
+- warning: empty paragraph passed to '%select{\|@}0%1' command
+- warning: expected quoted string after equals sign
+- warning: not a Doxygen trailing comment
+- warning: parameter '%0' is already documented
+- warning: parameter '%0' not found in the function declaration
+- warning: template parameter '%0' is already documented
+- warning: template parameter '%0' not found in the template declaration
+- warning: unrecognized parameter passing direction, valid directions are '[in]', '[out]' and '[in,out]'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-documentation-deprecated-sync
+ clang-diagnostic-documentation-deprecated-sync
+ Diagnostic text:
+
+- warning: declaration is marked with '\deprecated' command but does not have a deprecation attribute
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-documentation-html
+ clang-diagnostic-documentation-html
+ Diagnostic text:
+
+- warning: HTML end tag '%0' is forbidden
+- warning: HTML end tag does not match any start tag
+- warning: HTML start tag '%0' closed by '%1'
+- warning: HTML tag '%0' requires an end tag
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-documentation-pedantic
+ clang-diagnostic-documentation-pedantic
+ Diagnostic text:
+
+- warning: unknown command tag name
+- warning: unknown command tag name '%0'; did you mean '%1'?
+- warning: whitespace is not allowed in parameter passing direction
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-documentation-unknown-command
+ clang-diagnostic-documentation-unknown-command
+ Diagnostic text:
+
+- warning: unknown command tag name
+- warning: unknown command tag name '%0'; did you mean '%1'?
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-dollar-in-identifier-extension
+ clang-diagnostic-dollar-in-identifier-extension
+ Diagnostic text:
+
+- warning: '$' in identifier
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-double-promotion
+ clang-diagnostic-double-promotion
+ Diagnostic text:
+
+- warning: implicit conversion increases floating-point precision: %0 to %1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-duplicate-decl-specifier
+ clang-diagnostic-duplicate-decl-specifier
+ Diagnostic text:
+
+- warning: duplicate '%0' declaration specifier
+- warning: duplicate '%0' declaration specifier
+- warning: multiple identical address spaces specified for type
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-duplicate-enum
+ clang-diagnostic-duplicate-enum
+ Diagnostic text:
+
+- warning: element %0 has been implicitly assigned %1 which another element has been assigned
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-duplicate-method-arg
+ clang-diagnostic-duplicate-method-arg
+ Diagnostic text:
+
+- warning: redeclaration of method parameter %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-duplicate-method-match
+ clang-diagnostic-duplicate-method-match
+ Diagnostic text:
+
+- warning: multiple declarations of method %0 found and ignored
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-duplicate-protocol
+ clang-diagnostic-duplicate-protocol
+ Diagnostic text:
+
+- warning: duplicate protocol definition of %0 is ignored
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-dynamic-class-memaccess
+ clang-diagnostic-dynamic-class-memaccess
+ Diagnostic text:
+
+- warning: %select{destination for|source of|first operand of|second operand of}0 this %1 call is a pointer to %select{|class containing a }2dynamic class %3; vtable pointer will be %select{overwritten|copied|moved|compared}4
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-dynamic-exception-spec
+ clang-diagnostic-dynamic-exception-spec
+ Diagnostic text:
+
+- warning: ISO C++17 does not allow dynamic exception specifications
+- warning: dynamic exception specifications are deprecated
+
+References
+Diagnostic flags in Clang
+ ]]>
+ CRITICAL
+ CODE_SMELL
+
+
+ clang-diagnostic-effc++
+ clang-diagnostic-effc++
+ Diagnostic text:
+
+- warning: %0 has virtual functions but non-virtual destructor
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-embedded-directive
+ clang-diagnostic-embedded-directive
+ Diagnostic text:
+
+- warning: embedding a directive within macro arguments has undefined behavior
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-empty-body
+ clang-diagnostic-empty-body
+ Diagnostic text:
+
+- warning: for loop has empty body
+- warning: if statement has empty body
+- warning: range-based for loop has empty body
+- warning: switch statement has empty body
+- warning: while loop has empty body
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-empty-decomposition
+ clang-diagnostic-empty-decomposition
+ Diagnostic text:
+
+- warning: ISO C++17 does not allow a decomposition group to be empty
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-empty-translation-unit
+ clang-diagnostic-empty-translation-unit
+ Diagnostic text:
+
+- warning: ISO C requires a translation unit to contain at least one declaration
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-encode-type
+ clang-diagnostic-encode-type
+ Diagnostic text:
+
+- warning: encoding of %0 type is incomplete because %1 component has unknown encoding
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-endif-labels
+ clang-diagnostic-endif-labels
+ Diagnostic text:
+
+- warning: extra tokens at end of #%0 directive
+- warning: extra tokens at the end of '#pragma omp %0' are ignored
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-enum-compare
+ clang-diagnostic-enum-compare
+ Diagnostic text:
+
+- warning: comparison of two values with different enumeration types in switch statement%diff{ ($ and $)|}0,1
+- warning: comparison of two values with different enumeration types%diff{ ($ and $)|}0,1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-enum-compare-switch
+ clang-diagnostic-enum-compare-switch
+ Diagnostic text:
+
+- warning: comparison of two values with different enumeration types in switch statement%diff{ ($ and $)|}0,1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-enum-conversion
+ clang-diagnostic-enum-conversion
+ Diagnostic text:
+
+- warning: implicit conversion from enumeration type %0 to different enumeration type %1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-enum-too-large
+ clang-diagnostic-enum-too-large
+ Diagnostic text:
+
+- warning: enumeration values exceed range of largest integer
+- warning: incremented enumerator value %0 is not representable in the largest integer type
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-exceptions
+ clang-diagnostic-exceptions
+ Diagnostic text:
+
+- warning: %0 has a non-throwing exception specification but can still throw
+- warning: cannot refer to a non-static member from the handler of a %select{constructor|destructor}0 function try block
+- warning: exception of type %0 will be caught by earlier handler
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-exit-time-destructors
+ clang-diagnostic-exit-time-destructors
+ Diagnostic text:
+
+- warning: declaration requires an exit-time destructor
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-expansion-to-defined
+ clang-diagnostic-expansion-to-defined
+ Diagnostic text:
+
+- warning: macro expansion producing 'defined' has undefined behavior
+- warning: macro expansion producing 'defined' has undefined behavior
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-experimental-isel
+ clang-diagnostic-experimental-isel
+ Diagnostic text:
+
+- warning: -fexperimental-isel support for the '%0' architecture is incomplete
+- warning: -fexperimental-isel support is incomplete for this architecture at the current optimization level
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-explicit-initialize-call
+ clang-diagnostic-explicit-initialize-call
+ Diagnostic text:
+
+- warning: explicit call to +initialize results in duplicate call to +initialize
+- warning: explicit call to [super initialize] should only be in implementation of +initialize
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-explicit-ownership-type
+ clang-diagnostic-explicit-ownership-type
+ Diagnostic text:
+
+- warning: method parameter of type %0 with no explicit ownership
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-extern-c-compat
+ clang-diagnostic-extern-c-compat
+ Diagnostic text:
+
+- warning: %select{|empty }0%select{struct|union}1 has size 0 in C, %select{size 1|non-zero size}2 in C++
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-extern-initializer
+ clang-diagnostic-extern-initializer
+ Diagnostic text:
+
+- warning: 'extern' variable has an initializer
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-extra
+ clang-diagnostic-extra
+ Diagnostic text:
+
+- warning: '%0' qualifier on function type %1 has no effect
+- warning: '%0' qualifier on omitted return type %1 has no effect
+- warning: '%0' qualifier on reference type %1 has no effect
+- warning: '%0' type qualifier%s1 on return type %plural{1:has|:have}1 no effect
+- warning: ARC %select{unused|__unsafe_unretained|__strong|__weak|__autoreleasing}0 lifetime qualifier on return type is ignored
+- warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension
+- warning: call to function without interrupt attribute could clobber interruptee's VFP registers
+- warning: comparison of integers of different signs: %0 and %1
+- warning: initializer overrides prior initialization of this subobject
+- warning: method has no return type specified; defaults to 'id'
+- warning: missing field %0 initializer
+- warning: performing pointer arithmetic on a null pointer has undefined behavior%select{| if the offset is nonzero}0
+- warning: semicolon before method body is ignored
+- warning: subobject initialization overrides initialization of other fields within its enclosing subobject
+- warning: unused parameter %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-extra-qualification
+ clang-diagnostic-extra-qualification
+ Diagnostic text:
+
+- warning: extra qualification on member %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-extra-semi
+ clang-diagnostic-extra-semi
+ Diagnostic text:
+
+- warning: extra ';' %select{outside of a function|inside a %1|inside instance variable list|after member function definition}0
+- warning: extra ';' after member function definition
+- warning: extra ';' outside of a function is a C++11 extension
+- warning: extra ';' outside of a function is incompatible with C++98
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-extra-tokens
+ clang-diagnostic-extra-tokens
+ Diagnostic text:
+
+- warning: extra tokens at end of #%0 directive
+- warning: extra tokens at the end of '#pragma omp %0' are ignored
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-fallback
+ clang-diagnostic-fallback
+ Diagnostic text:
+
+- warning: falling back to %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-fixed-enum-extension
+ clang-diagnostic-fixed-enum-extension
+ Diagnostic text:
+
+- warning: enumeration types with a fixed underlying type are a Clang extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-flag-enum
+ clang-diagnostic-flag-enum
+ Diagnostic text:
+
+- warning: enumeration value %0 is out of range of flags in enumeration type %1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-flexible-array-extensions
+ clang-diagnostic-flexible-array-extensions
+ Diagnostic text:
+
+- warning: %0 may not be nested in a struct due to flexible array member
+- warning: %0 may not be used as an array element due to flexible array member
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-float-conversion
+ clang-diagnostic-float-conversion
+ Diagnostic text:
+
+- warning: implicit conversion from %0 to %1 changes non-zero value from %2 to %3
+- warning: implicit conversion from %0 to %1 changes value from %2 to %3
+- warning: implicit conversion of out of range value from %0 to %1 is undefined
+- warning: implicit conversion turns floating-point number into integer: %0 to %1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-float-equal
+ clang-diagnostic-float-equal
+ Diagnostic text:
+
+- warning: comparing floating point with == or != is unsafe
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-float-overflow-conversion
+ clang-diagnostic-float-overflow-conversion
+ Diagnostic text:
+
+- warning: implicit conversion from %0 to %1 changes value from %2 to %3
+- warning: implicit conversion of out of range value from %0 to %1 is undefined
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-float-zero-conversion
+ clang-diagnostic-float-zero-conversion
+ Diagnostic text:
+
+- warning: implicit conversion from %0 to %1 changes non-zero value from %2 to %3
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-for-loop-analysis
+ clang-diagnostic-for-loop-analysis
+ Diagnostic text:
+
+- warning: variable %0 is %select{decremented|incremented}1 both in the loop header and in the loop body
+- warning: variable%select{s| %1|s %1 and %2|s %1, %2, and %3|s %1, %2, %3, and %4}0 used in loop condition not modified in loop body
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-format
+ clang-diagnostic-format
+ Diagnostic text:
+
+- warning: %select{field width|precision}0 used with '%1' conversion specifier, resulting in undefined behavior
+- warning: %select{values of type|enum values with underlying type}2 '%0' should not be used as format arguments; add an explicit cast to %1 instead
+- warning: '%0' is not a valid object format flag
+- warning: '%select{*|.*}0' specified field %select{width|precision}0 is missing a matching 'int' argument
+- warning: cannot mix positional and non-positional arguments in format string
+- warning: data argument not used by format string
+- warning: data argument position '%0' exceeds the number of data arguments (%1)
+- warning: field %select{width|precision}0 should have type %1, but argument has type %2
+- warning: flag '%0' is ignored when flag '%1' is present
+- warning: flag '%0' results in undefined behavior with '%1' conversion specifier
+- warning: format specifies type %0 but the argument has %select{type|underlying type}2 %1
+- warning: format string contains '\0' within the string body
+- warning: format string is empty
+- warning: format string is not a string literal (potentially insecure)
+- warning: format string is not null-terminated
+- warning: format string missing
+- warning: format string should not be a wide string
+- warning: incomplete format specifier
+- warning: invalid conversion specifier '%0'
+- warning: invalid position specified for %select{field width|field precision}0
+- warning: length modifier '%0' results in undefined behavior or no effect with '%1' conversion specifier
+- warning: missing object format flag
+- warning: more '%%' conversions than data arguments
+- warning: no closing ']' for '%%[' in scanf format string
+- warning: null passed to a callee that requires a non-null argument
+- warning: null returned from %select{function|method}0 that requires a non-null return value
+- warning: object format flags cannot be used with '%0' conversion specifier
+- warning: position arguments in format strings start counting at 1 (not 0)
+- warning: using '%%P' format specifier without precision
+- warning: using '%0' format specifier annotation outside of os_log()/os_trace()
+- warning: zero field width in scanf format string is unused
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-format-extra-args
+ clang-diagnostic-format-extra-args
+ Diagnostic text:
+
+- warning: data argument not used by format string
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-format-invalid-specifier
+ clang-diagnostic-format-invalid-specifier
+ Diagnostic text:
+
+- warning: invalid conversion specifier '%0'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-format-non-iso
+ clang-diagnostic-format-non-iso
+ Diagnostic text:
+
+- warning: '%0' %select{length modifier|conversion specifier}1 is not supported by ISO C
+- warning: positional arguments are not supported by ISO C
+- warning: using length modifier '%0' with conversion specifier '%1' is not supported by ISO C
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-format-nonliteral
+ clang-diagnostic-format-nonliteral
+ Diagnostic text:
+
+- warning: format string is not a string literal
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-format-pedantic
+ clang-diagnostic-format-pedantic
+ Diagnostic text:
+
+- warning: %select{values of type|enum values with underlying type}2 '%0' should not be used as format arguments; add an explicit cast to %1 instead
+- warning: format specifies type %0 but the argument has %select{type|underlying type}2 %1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-format-security
+ clang-diagnostic-format-security
+ Diagnostic text:
+
+- warning: format string is not a string literal (potentially insecure)
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-format-zero-length
+ clang-diagnostic-format-zero-length
+ Diagnostic text:
+
+- warning: format string is empty
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-format=2
+ clang-diagnostic-format=2
+ Diagnostic text:
+
+- warning: format string is not a string literal
+- warning: format string is not a string literal (potentially insecure)
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-four-char-constants
+ clang-diagnostic-four-char-constants
+ Diagnostic text:
+
+- warning: multi-character character constant
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-frame-larger-than=
+ clang-diagnostic-frame-larger-than=
+ Diagnostic text:
+
+- warning: %0
+- warning: stack frame size of %0 bytes in %q1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-framework-include-private-from-public
+ clang-diagnostic-framework-include-private-from-public
+ Diagnostic text:
+
+- warning: public framework header includes private framework header '%0'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-function-def-in-objc-container
+ clang-diagnostic-function-def-in-objc-container
+ Diagnostic text:
+
+- warning: function definition inside an Objective-C container is deprecated
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-function-multiversion
+ clang-diagnostic-function-multiversion
+ Diagnostic text:
+
+- warning: CPU list contains duplicate entries; attribute ignored
+- warning: body of cpu_dispatch function will be ignored
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-gcc-compat
+ clang-diagnostic-gcc-compat
+ Diagnostic text:
+
+- warning: '%0' is bound to current loop, GCC binds it to the enclosing loop
+- warning: 'break' is bound to loop, GCC binds it to switch
+- warning: 'diagnose_if' is a clang extension
+- warning: 'enable_if' is a clang extension
+- warning: GCC does not allow %0 attribute in this position on a function definition
+- warning: GCC does not allow an attribute in this position on a function declaration
+- warning: GCC does not allow the %0 attribute to be written on a type
+- warning: GCC does not allow the 'cleanup' attribute argument to be anything other than a simple identifier
+- warning: GCC does not allow variable declarations in for loop initializers before C99
+- warning: __final is a GNU extension, consider using C++11 final
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-global-constructors
+ clang-diagnostic-global-constructors
+ Diagnostic text:
+
+- warning: declaration requires a global constructor
+- warning: declaration requires a global destructor
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-gnu
+ clang-diagnostic-gnu
+ Diagnostic text:
+
+- warning: #include_next is a language extension
+- warning: #line directive with zero argument is a GNU extension
+- warning: %0 applied to an expression is a GNU extension
+- warning: %select{struct|union}0 without named members is a GNU extension
+- warning: '__auto_type' is a GNU extension
+- warning: anonymous structs are a GNU extension
+- warning: binary integer literals are a GNU extension
+- warning: cast to union type is a GNU extension
+- warning: class member cannot be redeclared
+- warning: complex integer types are a GNU extension
+- warning: empty %select{struct|union}0 is a GNU extension
+- warning: expression is not an %select{integer|integral}0 constant expression; folding it to a constant is a GNU extension
+- warning: field %0 with variable sized type %1 not at the end of a struct or class is a GNU extension
+- warning: flexible array initialization is a GNU extension
+- warning: flexible array member %0 in a union is a GNU extension
+- warning: flexible array member %0 in otherwise empty %select{struct|interface|union|class|enum}1 is a GNU extension
+- warning: imaginary constants are a GNU extension
+- warning: in-class initializer for static data member is not a constant expression; folding it to a constant is a GNU extension
+- warning: in-class initializer for static data member of type %0 is a GNU extension
+- warning: initialization of an array %diff{of type $ from a compound literal of type $|from a compound literal}0,1 is a GNU extension
+- warning: must specify at least one argument for '...' parameter of variadic macro
+- warning: redeclaration of already-defined enum %0 is a GNU extension
+- warning: string literal operator templates are a GNU extension
+- warning: token pasting of ',' and __VA_ARGS__ is a GNU extension
+- warning: use of GNU 'missing =' extension in designator
+- warning: use of GNU ?: conditional expression extension, omitting middle operand
+- warning: use of GNU address-of-label extension
+- warning: use of GNU array range extension
+- warning: use of GNU case range extension
+- warning: use of GNU empty initializer extension
+- warning: use of GNU indirect-goto extension
+- warning: use of GNU old-style field designator extension
+- warning: use of GNU statement expression extension
+- warning: variable length array folded to constant array as an extension
+- warning: variable length arrays are a C99 feature
+- warning: zero size arrays are an extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-gnu-alignof-expression
+ clang-diagnostic-gnu-alignof-expression
+ Diagnostic text:
+
+- warning: %0 applied to an expression is a GNU extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-gnu-anonymous-struct
+ clang-diagnostic-gnu-anonymous-struct
+ Diagnostic text:
+
+- warning: anonymous structs are a GNU extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-gnu-array-member-paren-init
+ clang-diagnostic-gnu-array-member-paren-init
+ Diagnostic text:
+
+- warning: parenthesized initialization of a member array is a GNU extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ CRITICAL
+ CODE_SMELL
+
+
+ clang-diagnostic-gnu-auto-type
+ clang-diagnostic-gnu-auto-type
+ Diagnostic text:
+
+- warning: '__auto_type' is a GNU extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-gnu-binary-literal
+ clang-diagnostic-gnu-binary-literal
+ Diagnostic text:
+
+- warning: binary integer literals are a GNU extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-gnu-case-range
+ clang-diagnostic-gnu-case-range
+ Diagnostic text:
+
+- warning: use of GNU case range extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-gnu-complex-integer
+ clang-diagnostic-gnu-complex-integer
+ Diagnostic text:
+
+- warning: complex integer types are a GNU extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-gnu-compound-literal-initializer
+ clang-diagnostic-gnu-compound-literal-initializer
+ Diagnostic text:
+
+- warning: initialization of an array %diff{of type $ from a compound literal of type $|from a compound literal}0,1 is a GNU extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-gnu-conditional-omitted-operand
+ clang-diagnostic-gnu-conditional-omitted-operand
+ Diagnostic text:
+
+- warning: use of GNU ?: conditional expression extension, omitting middle operand
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-gnu-designator
+ clang-diagnostic-gnu-designator
+ Diagnostic text:
+
+- warning: use of GNU 'missing =' extension in designator
+- warning: use of GNU array range extension
+- warning: use of GNU old-style field designator extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-gnu-empty-initializer
+ clang-diagnostic-gnu-empty-initializer
+ Diagnostic text:
+
+- warning: use of GNU empty initializer extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-gnu-empty-struct
+ clang-diagnostic-gnu-empty-struct
+ Diagnostic text:
+
+- warning: %select{struct|union}0 without named members is a GNU extension
+- warning: empty %select{struct|union}0 is a GNU extension
+- warning: flexible array member %0 in otherwise empty %select{struct|interface|union|class|enum}1 is a GNU extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-gnu-flexible-array-initializer
+ clang-diagnostic-gnu-flexible-array-initializer
+ Diagnostic text:
+
+- warning: flexible array initialization is a GNU extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-gnu-flexible-array-union-member
+ clang-diagnostic-gnu-flexible-array-union-member
+ Diagnostic text:
+
+- warning: flexible array member %0 in a union is a GNU extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-gnu-folding-constant
+ clang-diagnostic-gnu-folding-constant
+ Diagnostic text:
+
+- warning: expression is not an %select{integer|integral}0 constant expression; folding it to a constant is a GNU extension
+- warning: in-class initializer for static data member is not a constant expression; folding it to a constant is a GNU extension
+- warning: variable length array folded to constant array as an extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-gnu-imaginary-constant
+ clang-diagnostic-gnu-imaginary-constant
+ Diagnostic text:
+
+- warning: imaginary constants are a GNU extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-gnu-include-next
+ clang-diagnostic-gnu-include-next
+ Diagnostic text:
+
+- warning: #include_next is a language extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-gnu-label-as-value
+ clang-diagnostic-gnu-label-as-value
+ Diagnostic text:
+
+- warning: use of GNU address-of-label extension
+- warning: use of GNU indirect-goto extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-gnu-redeclared-enum
+ clang-diagnostic-gnu-redeclared-enum
+ Diagnostic text:
+
+- warning: redeclaration of already-defined enum %0 is a GNU extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-gnu-statement-expression
+ clang-diagnostic-gnu-statement-expression
+ Diagnostic text:
+
+- warning: use of GNU statement expression extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-gnu-static-float-init
+ clang-diagnostic-gnu-static-float-init
+ Diagnostic text:
+
+- warning: in-class initializer for static data member of type %0 is a GNU extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-gnu-string-literal-operator-template
+ clang-diagnostic-gnu-string-literal-operator-template
+ Diagnostic text:
+
+- warning: string literal operator templates are a GNU extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-gnu-union-cast
+ clang-diagnostic-gnu-union-cast
+ Diagnostic text:
+
+- warning: cast to union type is a GNU extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-gnu-variable-sized-type-not-at-end
+ clang-diagnostic-gnu-variable-sized-type-not-at-end
+ Diagnostic text:
+
+- warning: field %0 with variable sized type %1 not at the end of a struct or class is a GNU extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-gnu-zero-line-directive
+ clang-diagnostic-gnu-zero-line-directive
+ Diagnostic text:
+
+- warning: #line directive with zero argument is a GNU extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-gnu-zero-variadic-macro-arguments
+ clang-diagnostic-gnu-zero-variadic-macro-arguments
+ Diagnostic text:
+
+- warning: must specify at least one argument for '...' parameter of variadic macro
+- warning: token pasting of ',' and __VA_ARGS__ is a GNU extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-header-guard
+ clang-diagnostic-header-guard
+ Diagnostic text:
+
+- warning: %0 is used as a header guard here, followed by #define of a different macro
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-header-hygiene
+ clang-diagnostic-header-hygiene
+ Diagnostic text:
+
+- warning: using namespace directive in global context in header
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-idiomatic-parentheses
+ clang-diagnostic-idiomatic-parentheses
+ Diagnostic text:
+
+- warning: using the result of an assignment as a condition without parentheses
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-ignored-attributes
+ clang-diagnostic-ignored-attributes
+ Diagnostic text:
+
+- warning: %0 attribute argument not supported: %1
+- warning: %0 attribute can only be applied to instance variables or properties
+- warning: %0 attribute ignored
+- warning: %0 attribute ignored for field of type %1
+- warning: %0 attribute ignored on inline function
+- warning: %0 attribute ignored when parsing type
+- warning: %0 attribute is deprecated and ignored in OpenCL version %1
+- warning: %0 attribute only applies to %1
+- warning: %0 attribute only applies to %select{Objective-C object|pointer|pointer-to-CF-pointer}1 parameters
+- warning: %0 attribute only applies to %select{functions|methods|properties}1 that return %select{an Objective-C object|a pointer|a non-retainable pointer}2
+- warning: %0 attribute only applies to %select{functions|unions|variables and functions|functions and methods|functions, methods and blocks|functions, methods, and parameters|variables|variables and fields|variables, data members and tag types|types and namespaces|variables, functions and classes|kernel functions|non-K&R-style functions}1
+- warning: %0 attribute only applies to a pointer or reference (%1 is invalid)
+- warning: %0 attribute only applies to return values that are pointers
+- warning: %0 attribute only applies to return values that are pointers or references
+- warning: %0 attribute only applies to%select{| constant}1 pointer arguments
+- warning: %0 calling convention ignored on constructor/destructor
+- warning: %0 calling convention ignored on variadic function
+- warning: %q0 redeclared inline; %1 attribute ignored
+- warning: %select{alias|ifunc}1 will not be in section '%0' but in the same section as the %select{aliasee|resolver}2
+- warning: %select{alias|ifunc}2 will always resolve to %0 even if weak definition of %1 is overridden
+- warning: %select{alignment|size}0 of field %1 (%2 bits) does not match the %select{alignment|size}0 of the first field in transparent union; transparent_union attribute ignored
+- warning: %select{unsupported|duplicate}0%select{| architecture}1 '%2' in the 'target' attribute string; 'target' attribute ignored
+- warning: '%0' attribute cannot be specified on a definition
+- warning: '%0' only applies to %select{function|pointer|Objective-C object or block pointer}1 types; type here is %2
+- warning: 'abi_tag' attribute on %select{non-inline|anonymous}0 namespace ignored
+- warning: 'deprecated' attribute on anonymous namespace ignored
+- warning: 'gnu_inline' attribute requires function to be marked 'inline', attribute ignored
+- warning: 'internal_linkage' attribute on a non-static local variable is ignored
+- warning: 'nocf_check' attribute ignored; use -fcf-protection to enable the attribute
+- warning: 'nonnull' attribute applied to function with no pointer arguments
+- warning: 'nonnull' attribute when used on parameters takes no arguments
+- warning: 'sentinel' attribute only supported for variadic %select{functions|blocks}0
+- warning: 'sentinel' attribute requires named arguments
+- warning: 'trivial_abi' cannot be applied to %0
+- warning: MIPS 'interrupt' attribute only applies to functions that have %select{no parameters|a 'void' return type}0
+- warning: Objective-C GC does not allow weak variables on the stack
+- warning: RISC-V 'interrupt' attribute only applies to functions that have %select{no parameters|a 'void' return type}0
+- warning: __declspec attribute %0 is not supported
+- warning: __weak attribute cannot be specified on a field declaration
+- warning: __weak attribute cannot be specified on an automatic variable when ARC is not enabled
+- warning: attribute %0 after definition is ignored
+- warning: attribute %0 cannot be applied to %select{functions|Objective-C method}1 without return value
+- warning: attribute %0 ignored, because it cannot be applied to a type
+- warning: attribute %0 ignored, because it cannot be applied to omitted return type
+- warning: attribute %0 ignored, because it is not attached to a declaration
+- warning: attribute %0 is already applied
+- warning: attribute %0 is already applied with different parameters
+- warning: attribute %0 is ignored, place it after "%select{class|struct|interface|union|enum}1" to apply attribute to type declaration
+- warning: attribute declaration must precede definition
+- warning: calling convention %0 ignored for this target
+- warning: first field of a transparent union cannot have %select{floating point|vector}0 type %1; transparent_union attribute ignored
+- warning: inheritance model ignored on %select{primary template|partial specialization}0
+- warning: qualifiers after comma in declarator list are ignored
+- warning: repeated RISC-V 'interrupt' attribute
+- warning: transparent union definition must contain at least one field; transparent_union attribute ignored
+- warning: transparent_union attribute can only be applied to a union definition; attribute ignored
+- warning: unknown attribute '%0'
+- warning: unknown visibility %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-ignored-optimization-argument
+ clang-diagnostic-ignored-optimization-argument
+ Diagnostic text:
+
+- warning: optimization flag '%0' is not supported
+- warning: optimization flag '%0' is not supported for target '%1'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-ignored-pragma-intrinsic
+ clang-diagnostic-ignored-pragma-intrinsic
+ Diagnostic text:
+
+- warning: %0 is not a recognized builtin%select{|; consider including <intrin.h> to access non-builtin intrinsics}1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-ignored-pragma-optimize
+ clang-diagnostic-ignored-pragma-optimize
+ Diagnostic text:
+
+- warning: '#pragma optimize' is not supported
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-ignored-pragmas
+ clang-diagnostic-ignored-pragmas
+ Diagnostic text:
+
+- warning: #pragma %0(pop, ...) failed: %1
+- warning: #pragma options align=reset failed: %0
+- warning: %0 is not a recognized builtin%select{|; consider including <intrin.h> to access non-builtin intrinsics}1
+- warning: '#pragma comment %0' ignored
+- warning: '#pragma init_seg' is only supported when targeting a Microsoft environment
+- warning: '#pragma optimize' is not supported
+- warning: OpenCL extension end directive mismatches begin directive - ignoring
+- warning: expected #pragma pack parameter to be '1', '2', '4', '8', or '16'
+- warning: expected %select{'enable', 'disable', 'begin' or 'end'|'disable'}0 - ignoring
+- warning: expected '#pragma unused' argument to be a variable name
+- warning: expected ')' or ',' in '#pragma %0'
+- warning: expected ',' in '#pragma %0'
+- warning: expected '=' following '#pragma %select{align|options align}0' - ignored
+- warning: expected 'align' following '#pragma options' - ignored
+- warning: expected 'compiler', 'lib', 'user', or a string literal for the section name in '#pragma %0' - ignored
+- warning: expected a stack label or a string literal for the section name in '#pragma %0' - ignored
+- warning: expected a string literal for the section name in '#pragma %0' - ignored
+- warning: expected action or ')' in '#pragma %0' - ignored
+- warning: expected identifier in '#pragma %0' - ignored
+- warning: expected integer between %0 and %1 inclusive in '#pragma %2' - ignored
+- warning: expected integer or identifier in '#pragma pack' - ignored
+- warning: expected non-wide string literal in '#pragma %0'
+- warning: expected push, pop or a string literal for the section name in '#pragma %0' - ignored
+- warning: expected string literal in '#pragma %0' - ignoring
+- warning: extra tokens at end of '#pragma %0' - ignored
+- warning: incorrect use of #pragma clang force_cuda_host_device begin|end
+- warning: incorrect use of '#pragma ms_struct on|off' - ignored
+- warning: invalid alignment option in '#pragma %select{align|options align}0' - ignored
+- warning: known but unsupported action '%1' for '#pragma %0' - ignored
+- warning: missing '(' after '#pragma %0' - ignoring
+- warning: missing ')' after '#pragma %0' - ignoring
+- warning: missing ':' after %0 - ignoring
+- warning: missing ':' or ')' after %0 - ignoring
+- warning: missing argument to '#pragma %0'%select{|; expected %2}1
+- warning: missing argument to debug command '%0'
+- warning: only variables can be arguments to '#pragma unused'
+- warning: pragma pop_macro could not pop '%0', no matching push_macro
+- warning: undeclared variable %0 used as an argument for '#pragma unused'
+- warning: unexpected argument '%0' to '#pragma %1'%select{|; expected %3}2
+- warning: unexpected debug command '%0'
+- warning: unknown OpenCL extension %0 - ignoring
+- warning: unknown action '%1' for '#pragma %0' - ignored
+- warning: unknown action for '#pragma %0' - ignored
+- warning: unsupported OpenCL extension %0 - ignoring
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-ignored-qualifiers
+ clang-diagnostic-ignored-qualifiers
+ Diagnostic text:
+
+- warning: '%0' qualifier on function type %1 has no effect
+- warning: '%0' qualifier on omitted return type %1 has no effect
+- warning: '%0' qualifier on reference type %1 has no effect
+- warning: '%0' type qualifier%s1 on return type %plural{1:has|:have}1 no effect
+- warning: ARC %select{unused|__unsafe_unretained|__strong|__weak|__autoreleasing}0 lifetime qualifier on return type is ignored
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-implicit
+ clang-diagnostic-implicit
+ Diagnostic text:
+
+- warning: implicit declaration of function %0
+- warning: implicit declaration of function %0 is invalid in C99
+- warning: implicitly declaring library function '%0' with type %1
+- warning: type specifier missing, defaults to 'int'
+- warning: use of unknown builtin %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ CRITICAL
+ CODE_SMELL
+
+
+ clang-diagnostic-implicit-atomic-properties
+ clang-diagnostic-implicit-atomic-properties
+ Diagnostic text:
+
+- warning: property is assumed atomic by default
+- warning: property is assumed atomic when auto-synthesizing the property
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-implicit-conversion-floating-point-to-bool
+ clang-diagnostic-implicit-conversion-floating-point-to-bool
+ Diagnostic text:
+
+- warning: implicit conversion turns floating-point number into bool: %0 to %1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-implicit-exception-spec-mismatch
+ clang-diagnostic-implicit-exception-spec-mismatch
+ Diagnostic text:
+
+- warning: function previously declared with an %select{explicit|implicit}0 exception specification redeclared with an %select{implicit|explicit}0 exception specification
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-implicit-fallthrough
+ clang-diagnostic-implicit-fallthrough
+ Diagnostic text:
+
+- warning: fallthrough annotation in unreachable code
+- warning: unannotated fall-through between switch labels
+- warning: unannotated fall-through between switch labels in partly-annotated function
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-implicit-fallthrough-per-function
+ clang-diagnostic-implicit-fallthrough-per-function
+ Diagnostic text:
+
+- warning: unannotated fall-through between switch labels in partly-annotated function
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-implicit-function-declaration
+ clang-diagnostic-implicit-function-declaration
+ Diagnostic text:
+
+- warning: implicit declaration of function %0
+- warning: implicit declaration of function %0 is invalid in C99
+- warning: implicitly declaring library function '%0' with type %1
+- warning: use of unknown builtin %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ CRITICAL
+ CODE_SMELL
+
+
+ clang-diagnostic-implicit-int
+ clang-diagnostic-implicit-int
+ Diagnostic text:
+
+- warning: type specifier missing, defaults to 'int'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-implicit-retain-self
+ clang-diagnostic-implicit-retain-self
+ Diagnostic text:
+
+- warning: block implicitly retains 'self'; explicitly mention 'self' to indicate this is intended behavior
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-implicitly-unsigned-literal
+ clang-diagnostic-implicitly-unsigned-literal
+ Diagnostic text:
+
+- warning: integer literal is too large to be represented in a signed integer type, interpreting as unsigned
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-import-preprocessor-directive-pedantic
+ clang-diagnostic-import-preprocessor-directive-pedantic
+ Diagnostic text:
+
+- warning: #import is a language extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-inaccessible-base
+ clang-diagnostic-inaccessible-base
+ Diagnostic text:
+
+- warning: direct base %0 is inaccessible due to ambiguity:%1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-include-next-absolute-path
+ clang-diagnostic-include-next-absolute-path
+ Diagnostic text:
+
+- warning: #include_next with absolute path
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-include-next-outside-header
+ clang-diagnostic-include-next-outside-header
+ Diagnostic text:
+
+- warning: #include_next in primary source file
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-incompatible-exception-spec
+ clang-diagnostic-incompatible-exception-spec
+ Diagnostic text:
+
+- warning: exception specifications of %select{return|argument}0 types differ
+- warning: target exception specification is not superset of source
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-incompatible-function-pointer-types
+ clang-diagnostic-incompatible-function-pointer-types
+ Diagnostic text:
+
+- warning: incompatible function pointer types %select{%diff{assigning to $ from $|assigning to different types}0,1|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2%select{|; dereference with *|; take the address with &|; remove *|; remove &}3
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-incompatible-library-redeclaration
+ clang-diagnostic-incompatible-library-redeclaration
+ Diagnostic text:
+
+- warning: incompatible redeclaration of library function %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-incompatible-ms-struct
+ clang-diagnostic-incompatible-ms-struct
+ Diagnostic text:
+
+- warning: ms_struct may not produce Microsoft-compatible layouts for classes with base classes or virtual functions
+- warning: ms_struct may not produce Microsoft-compatible layouts with fundamental data types with sizes that aren't a power of two
+
+References
+Diagnostic flags in Clang
+ ]]>
+ CRITICAL
+ CODE_SMELL
+
+
+ clang-diagnostic-incompatible-pointer-types
+ clang-diagnostic-incompatible-pointer-types
+ Diagnostic text:
+
+- warning: %select{%diff{assigning to $ from $|assigning to different types}0,1|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2 discards qualifiers
+- warning: %select{%diff{assigning to $ from $|assigning to different types}0,1|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2 discards qualifiers in nested pointer types
+- warning: incompatible function pointer types %select{%diff{assigning to $ from $|assigning to different types}0,1|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2%select{|; dereference with *|; take the address with &|; remove *|; remove &}3
+- warning: incompatible pointer types %select{%diff{assigning to $ from $|assigning to different types}0,1|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2%select{|; dereference with *|; take the address with &|; remove *|; remove &}3
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-incompatible-pointer-types-discards-qualifiers
+ clang-diagnostic-incompatible-pointer-types-discards-qualifiers
+ Diagnostic text:
+
+- warning: %select{%diff{assigning to $ from $|assigning to different types}0,1|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2 discards qualifiers
+- warning: %select{%diff{assigning to $ from $|assigning to different types}0,1|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2 discards qualifiers in nested pointer types
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-incompatible-property-type
+ clang-diagnostic-incompatible-property-type
+ Diagnostic text:
+
+- warning: property type %0 is incompatible with type %1 inherited from %2
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-incompatible-sysroot
+ clang-diagnostic-incompatible-sysroot
+ Diagnostic text:
+
+- warning: using sysroot for '%0' but targeting '%1'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-incomplete-framework-module-declaration
+ clang-diagnostic-incomplete-framework-module-declaration
+ Diagnostic text:
+
+- warning: skipping '%0' because module declaration of '%1' lacks the 'framework' qualifier
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-incomplete-implementation
+ clang-diagnostic-incomplete-implementation
+ Diagnostic text:
+
+- warning: method definition for %0 not found
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-incomplete-module
+ clang-diagnostic-incomplete-module
+ Diagnostic text:
+
+- warning: include of non-modular header inside framework module '%0': '%1'
+- warning: include of non-modular header inside module '%0': '%1'
+- warning: missing submodule '%0'
+- warning: umbrella directory '%0' not found
+- warning: umbrella header for module '%0' does not include header '%1'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-incomplete-umbrella
+ clang-diagnostic-incomplete-umbrella
+ Diagnostic text:
+
+- warning: missing submodule '%0'
+- warning: umbrella directory '%0' not found
+- warning: umbrella header for module '%0' does not include header '%1'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-inconsistent-dllimport
+ clang-diagnostic-inconsistent-dllimport
+ Diagnostic text:
+
+- warning: %q0 redeclared without %1 attribute: previous %1 ignored
+- warning: %q0 redeclared without 'dllimport' attribute: 'dllexport' attribute added
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-inconsistent-missing-destructor-override
+ clang-diagnostic-inconsistent-missing-destructor-override
+ Diagnostic text:
+
+- warning: %0 overrides a destructor but is not marked 'override'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-inconsistent-missing-override
+ clang-diagnostic-inconsistent-missing-override
+ Diagnostic text:
+
+- warning: %0 overrides a member function but is not marked 'override'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-increment-bool
+ clang-diagnostic-increment-bool
+ Diagnostic text:
+
+- warning: ISO C++17 does not allow incrementing expression of type bool
+- warning: incrementing expression of type bool is deprecated and incompatible with C++17
+
+References
+Diagnostic flags in Clang
+ ]]>
+ CRITICAL
+ CODE_SMELL
+
+
+ clang-diagnostic-infinite-recursion
+ clang-diagnostic-infinite-recursion
+ Diagnostic text:
+
+- warning: all paths through this function will call itself
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-initializer-overrides
+ clang-diagnostic-initializer-overrides
+ Diagnostic text:
+
+- warning: initializer overrides prior initialization of this subobject
+- warning: subobject initialization overrides initialization of other fields within its enclosing subobject
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-injected-class-name
+ clang-diagnostic-injected-class-name
+ Diagnostic text:
+
+- warning: ISO C++ specifies that qualified reference to %0 is a constructor name rather than a %select{template name|type}1 in this context, despite preceding %select{'typename'|'template'}2 keyword
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-inline-asm
+ clang-diagnostic-inline-asm
+ Diagnostic text:
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-inline-new-delete
+ clang-diagnostic-inline-new-delete
+ Diagnostic text:
+
+- warning: replacement function %0 cannot be declared 'inline'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-instantiation-after-specialization
+ clang-diagnostic-instantiation-after-specialization
+ Diagnostic text:
+
+- warning: explicit instantiation of %0 that occurs after an explicit specialization has no effect
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-int-conversion
+ clang-diagnostic-int-conversion
+ Diagnostic text:
+
+- warning: incompatible integer to pointer conversion %select{%diff{assigning to $ from $|assigning to different types}0,1|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2%select{|; dereference with *|; take the address with &|; remove *|; remove &}3
+- warning: incompatible pointer to integer conversion %select{%diff{assigning to $ from $|assigning to different types}0,1|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2%select{|; dereference with *|; take the address with &|; remove *|; remove &}3
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-int-conversions
+ clang-diagnostic-int-conversions
+ Diagnostic text:
+
+- warning: incompatible integer to pointer conversion %select{%diff{assigning to $ from $|assigning to different types}0,1|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2%select{|; dereference with *|; take the address with &|; remove *|; remove &}3
+- warning: incompatible pointer to integer conversion %select{%diff{assigning to $ from $|assigning to different types}0,1|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2%select{|; dereference with *|; take the address with &|; remove *|; remove &}3
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-int-to-pointer-cast
+ clang-diagnostic-int-to-pointer-cast
+ Diagnostic text:
+
+- warning: cast to %1 from smaller integer type %0
+- warning: cast to %1 from smaller integer type %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-int-to-void-pointer-cast
+ clang-diagnostic-int-to-void-pointer-cast
+ Diagnostic text:
+
+- warning: cast to %1 from smaller integer type %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-integer-overflow
+ clang-diagnostic-integer-overflow
+ Diagnostic text:
+
+- warning: overflow in expression; result is %0 with type %1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-invalid-command-line-argument
+ clang-diagnostic-invalid-command-line-argument
+ Diagnostic text:
+
+- warning: optimization flag '%0' is not supported
+- warning: optimization flag '%0' is not supported for target '%1'
+- warning: optimization level '%0' is not supported; using '%1%2' instead
+- warning: the object size sanitizer has no effect at -O0, but is explicitly enabled: %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-invalid-constexpr
+ clang-diagnostic-invalid-constexpr
+ Diagnostic text:
+
+- warning: constexpr %select{function|constructor}0 never produces a constant expression
+
+References
+Diagnostic flags in Clang
+ ]]>
+ CRITICAL
+ CODE_SMELL
+
+
+ clang-diagnostic-invalid-iboutlet
+ clang-diagnostic-invalid-iboutlet
+ Diagnostic text:
+
+- warning: %select{instance variable|property}2 with %0 attribute must be an object type (invalid %1)
+- warning: IBOutletCollection properties should be copy/strong and not assign
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-invalid-initializer-from-system-header
+ clang-diagnostic-invalid-initializer-from-system-header
+ Diagnostic text:
+
+- warning: invalid constructor form class in system header, should not be explicit
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-invalid-ios-deployment-target
+ clang-diagnostic-invalid-ios-deployment-target
+ Diagnostic text:
+
+- warning: invalid iOS deployment version '%0', iOS 10 is the maximum deployment target for 32-bit targets
+
+References
+Diagnostic flags in Clang
+ ]]>
+ CRITICAL
+ CODE_SMELL
+
+
+ clang-diagnostic-invalid-noreturn
+ clang-diagnostic-invalid-noreturn
+ Diagnostic text:
+
+- warning: function %0 declared 'noreturn' should not return
+- warning: function declared 'noreturn' should not return
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-invalid-offsetof
+ clang-diagnostic-invalid-offsetof
+ Diagnostic text:
+
+- warning: offset of on non-POD type %0
+- warning: offset of on non-standard-layout type %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-invalid-or-nonexistent-directory
+ clang-diagnostic-invalid-or-nonexistent-directory
+ Diagnostic text:
+
+- warning: environment variable SCE_ORBIS_SDK_DIR is set, but points to invalid or nonexistent directory '%0'
+- warning: unable to find %0 directory, expected to be in '%1'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-invalid-partial-specialization
+ clang-diagnostic-invalid-partial-specialization
+ Diagnostic text:
+
+- warning: %select{class|variable}0 template partial specialization is not more specialized than the primary template
+
+References
+Diagnostic flags in Clang
+ ]]>
+ CRITICAL
+ CODE_SMELL
+
+
+ clang-diagnostic-invalid-pp-token
+ clang-diagnostic-invalid-pp-token
+ Diagnostic text:
+
+- warning: empty character constant
+- warning: missing terminating %select{'|'"'}0 character
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-invalid-source-encoding
+ clang-diagnostic-invalid-source-encoding
+ Diagnostic text:
+
+- warning: illegal character encoding in character literal
+- warning: illegal character encoding in string literal
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-invalid-token-paste
+ clang-diagnostic-invalid-token-paste
+ Diagnostic text:
+
+- warning: pasting formed '%0', an invalid preprocessing token
+
+References
+Diagnostic flags in Clang
+ ]]>
+ CRITICAL
+ CODE_SMELL
+
+
+ clang-diagnostic-jump-seh-finally
+ clang-diagnostic-jump-seh-finally
+ Diagnostic text:
+
+- warning: jump out of __finally block has undefined behavior
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-keyword-compat
+ clang-diagnostic-keyword-compat
+ Diagnostic text:
+
+- warning: keyword '%0' will be made available as an identifier %select{here|for the remainder of the translation unit}1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-keyword-macro
+ clang-diagnostic-keyword-macro
+ Diagnostic text:
+
+- warning: keyword is hidden by macro definition
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-knr-promoted-parameter
+ clang-diagnostic-knr-promoted-parameter
+ Diagnostic text:
+
+- warning: %diff{promoted type $ of K&R function parameter is not compatible with the parameter type $|promoted type of K&R function parameter is not compatible with parameter type}0,1 declared in a previous prototype
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-language-extension-token
+ clang-diagnostic-language-extension-token
+ Diagnostic text:
+
+- warning: extension used
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-large-by-value-copy
+ clang-diagnostic-large-by-value-copy
+ Diagnostic text:
+
+- warning: %0 is a large (%1 bytes) pass-by-value argument; pass it by reference instead ?
+- warning: return value of %0 is a large (%1 bytes) pass-by-value object; pass it by reference instead ?
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-literal-conversion
+ clang-diagnostic-literal-conversion
+ Diagnostic text:
+
+- warning: implicit conversion from %0 to %1 changes value from %2 to %3
+- warning: implicit conversion of out of range value from %0 to %1 is undefined
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-literal-range
+ clang-diagnostic-literal-range
+ Diagnostic text:
+
+- warning: magnitude of floating-point constant too large for type %0; maximum is %1
+- warning: magnitude of floating-point constant too small for type %0; minimum is %1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-local-type-template-args
+ clang-diagnostic-local-type-template-args
+ Diagnostic text:
+
+- warning: local type %0 as template argument is incompatible with C++98
+- warning: template argument uses local type %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-logical-not-parentheses
+ clang-diagnostic-logical-not-parentheses
+ Diagnostic text:
+
+- warning: logical not is only applied to the left hand side of this %select{comparison|bitwise operator}0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-logical-op-parentheses
+ clang-diagnostic-logical-op-parentheses
+ Diagnostic text:
+
+- warning: '&&' within '||'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-long-long
+ clang-diagnostic-long-long
+ Diagnostic text:
+
+- warning: 'long long' is a C++11 extension
+- warning: 'long long' is an extension when C99 mode is not enabled
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-loop-analysis
+ clang-diagnostic-loop-analysis
+ Diagnostic text:
+
+- warning: loop variable %0 %diff{has type $ but is initialized with type $| is initialized with a value of a different type}1,2 resulting in a copy
+- warning: loop variable %0 is always a copy because the range of type %1 does not return a reference
+- warning: loop variable %0 of type %1 creates a copy from type %2
+- warning: variable %0 is %select{decremented|incremented}1 both in the loop header and in the loop body
+- warning: variable%select{s| %1|s %1 and %2|s %1, %2, and %3|s %1, %2, %3, and %4}0 used in loop condition not modified in loop body
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-macro-redefined
+ clang-diagnostic-macro-redefined
+ Diagnostic text:
+
+- warning: %0 macro redefined
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-main
+ clang-diagnostic-main
+ Diagnostic text:
+
+- warning: 'main' is not allowed to be declared _Noreturn
+- warning: 'main' is not allowed to be declared variadic
+- warning: 'main' should not be declared static
+- warning: ISO C++ does not allow 'main' to be used by a program
+- warning: bool literal returned from 'main'
+- warning: only one parameter on 'main' declaration
+- warning: variable named 'main' with external linkage has undefined behavior
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-main-return-type
+ clang-diagnostic-main-return-type
+ Diagnostic text:
+
+- warning: return type of 'main' is not 'int'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-malformed-warning-check
+ clang-diagnostic-malformed-warning-check
+ Diagnostic text:
+
+- warning: __has_warning expected option name (e.g. "-Wundef")
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-many-braces-around-scalar-init
+ clang-diagnostic-many-braces-around-scalar-init
+ Diagnostic text:
+
+- warning: too many braces around scalar initializer
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-max-unsigned-zero
+ clang-diagnostic-max-unsigned-zero
+ Diagnostic text:
+
+- warning: taking the max of %select{a value and unsigned zero|unsigned zero and a value}0 is always equal to the other value
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-memset-transposed-args
+ clang-diagnostic-memset-transposed-args
+ Diagnostic text:
+
+- warning: %select{'size' argument to memset is '0'|setting buffer to a 'sizeof' expression}0; did you mean to transpose the last two arguments?
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-memsize-comparison
+ clang-diagnostic-memsize-comparison
+ Diagnostic text:
+
+- warning: size argument in %0 call is a comparison
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-method-signatures
+ clang-diagnostic-method-signatures
+ Diagnostic text:
+
+- warning: conflicting parameter types in implementation of %0: %1 vs %2
+- warning: conflicting return type in implementation of %0: %1 vs %2
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-microsoft
+ clang-diagnostic-microsoft
+ Diagnostic text:
+
+- warning: #include resolved using non-portable Microsoft search rules as: %0
+- warning: %0 is missing exception specification '%1'
+- warning: %q0 redeclared without %1 attribute: previous %1 ignored
+- warning: %q0 redeclared without 'dllimport' attribute: 'dllexport' attribute added
+- warning: %select{class template|class template partial|variable template|variable template partial|function template|member function|static data member|member class|member enumeration}0 specialization of %1 not in %select{a namespace enclosing %2|class %2 or an enclosing namespace}3 is a Microsoft extension
+- warning: %select{|pointer to |reference to }0incomplete type %1 is not allowed in exception specification
+- warning: 'mutable' on a reference type is a Microsoft extension
+- warning: 'sealed' keyword is a Microsoft extension
+- warning: C++ operator %0 (aka %1) used as a macro name
+- warning: anonymous %select{structs|unions}0 are a Microsoft extension
+- warning: charizing operator #@ is a Microsoft extension
+- warning: default initialization of an object of const type %0%select{| without a user-provided default constructor}1 is a Microsoft extension
+- warning: duplicate explicit instantiation of %0 ignored as a Microsoft extension
+- warning: enumeration types with a fixed underlying type are a Microsoft extension
+- warning: enumerator value is not representable in the underlying type %0
+- warning: exception specification in declaration does not match previous declaration
+- warning: exception specification in explicit instantiation does not match instantiated one
+- warning: exception specification of '...' is a Microsoft extension
+- warning: exception specification of overriding function is more lax than base version
+- warning: explicit constructor calls are a Microsoft extension
+- warning: extra qualification on member %0
+- warning: flexible array member %0 in a union is a Microsoft extension
+- warning: flexible array member %0 in otherwise empty %select{struct|interface|union|class|enum}1 is a Microsoft extension
+- warning: forward references to 'enum' types are a Microsoft extension
+- warning: function definition with pure-specifier is a Microsoft extension
+- warning: implicit conversion between pointer-to-function and pointer-to-object is a Microsoft extension
+- warning: jump from this goto statement to its label is a Microsoft extension
+- warning: non-type template argument containing a dereference operation is a Microsoft extension
+- warning: pasting two '/' tokens into a '//' comment is a Microsoft extension
+- warning: pseudo-destructors on type void are a Microsoft extension
+- warning: redeclaring non-static %0 as static is a Microsoft extension
+- warning: redefinition of default argument
+- warning: static_cast between pointer-to-function and pointer-to-object is a Microsoft extension
+- warning: template argument for template type parameter must be a type; omitted 'typename' is a Microsoft extension
+- warning: treating Ctrl-Z as end-of-file is a Microsoft extension
+- warning: types declared in an anonymous %select{struct|union}0 are a Microsoft extension
+- warning: union member %0 has reference type %1, which is a Microsoft extension
+- warning: unqualified friend declaration referring to type outside of the nearest enclosing namespace is a Microsoft extension; add a nested name specifier
+- warning: use of identifier %0 found via unqualified lookup into dependent bases of class templates is a Microsoft extension
+- warning: use of undeclared identifier %0; unqualified lookup into dependent bases of class template %1 is a Microsoft extension
+- warning: using declaration referring to inaccessible member '%0' (which refers to accessible member '%1') is a Microsoft compatibility extension
+- warning: using the undeclared type %0 as a default template argument is a Microsoft extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-microsoft-anon-tag
+ clang-diagnostic-microsoft-anon-tag
+ Diagnostic text:
+
+- warning: anonymous %select{structs|unions}0 are a Microsoft extension
+- warning: types declared in an anonymous %select{struct|union}0 are a Microsoft extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-microsoft-cast
+ clang-diagnostic-microsoft-cast
+ Diagnostic text:
+
+- warning: implicit conversion between pointer-to-function and pointer-to-object is a Microsoft extension
+- warning: static_cast between pointer-to-function and pointer-to-object is a Microsoft extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-microsoft-charize
+ clang-diagnostic-microsoft-charize
+ Diagnostic text:
+
+- warning: charizing operator #@ is a Microsoft extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-microsoft-comment-paste
+ clang-diagnostic-microsoft-comment-paste
+ Diagnostic text:
+
+- warning: pasting two '/' tokens into a '//' comment is a Microsoft extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-microsoft-const-init
+ clang-diagnostic-microsoft-const-init
+ Diagnostic text:
+
+- warning: default initialization of an object of const type %0%select{| without a user-provided default constructor}1 is a Microsoft extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-microsoft-cpp-macro
+ clang-diagnostic-microsoft-cpp-macro
+ Diagnostic text:
+
+- warning: C++ operator %0 (aka %1) used as a macro name
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-microsoft-default-arg-redefinition
+ clang-diagnostic-microsoft-default-arg-redefinition
+ Diagnostic text:
+
+- warning: redefinition of default argument
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-microsoft-end-of-file
+ clang-diagnostic-microsoft-end-of-file
+ Diagnostic text:
+
+- warning: treating Ctrl-Z as end-of-file is a Microsoft extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-microsoft-enum-forward-reference
+ clang-diagnostic-microsoft-enum-forward-reference
+ Diagnostic text:
+
+- warning: forward references to 'enum' types are a Microsoft extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-microsoft-enum-value
+ clang-diagnostic-microsoft-enum-value
+ Diagnostic text:
+
+- warning: enumerator value is not representable in the underlying type %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-microsoft-exception-spec
+ clang-diagnostic-microsoft-exception-spec
+ Diagnostic text:
+
+- warning: %0 is missing exception specification '%1'
+- warning: %select{|pointer to |reference to }0incomplete type %1 is not allowed in exception specification
+- warning: exception specification in declaration does not match previous declaration
+- warning: exception specification in explicit instantiation does not match instantiated one
+- warning: exception specification of '...' is a Microsoft extension
+- warning: exception specification of overriding function is more lax than base version
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-microsoft-exists
+ clang-diagnostic-microsoft-exists
+ Diagnostic text:
+
+- warning: dependent %select{__if_not_exists|__if_exists}0 declarations are ignored
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-microsoft-explicit-constructor-call
+ clang-diagnostic-microsoft-explicit-constructor-call
+ Diagnostic text:
+
+- warning: explicit constructor calls are a Microsoft extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-microsoft-extra-qualification
+ clang-diagnostic-microsoft-extra-qualification
+ Diagnostic text:
+
+- warning: extra qualification on member %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-microsoft-fixed-enum
+ clang-diagnostic-microsoft-fixed-enum
+ Diagnostic text:
+
+- warning: enumeration types with a fixed underlying type are a Microsoft extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-microsoft-flexible-array
+ clang-diagnostic-microsoft-flexible-array
+ Diagnostic text:
+
+- warning: flexible array member %0 in a union is a Microsoft extension
+- warning: flexible array member %0 in otherwise empty %select{struct|interface|union|class|enum}1 is a Microsoft extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-microsoft-goto
+ clang-diagnostic-microsoft-goto
+ Diagnostic text:
+
+- warning: jump from this goto statement to its label is a Microsoft extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-microsoft-inaccessible-base
+ clang-diagnostic-microsoft-inaccessible-base
+ Diagnostic text:
+
+- warning: accessing inaccessible direct base %0 of %1 is a Microsoft extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-microsoft-include
+ clang-diagnostic-microsoft-include
+ Diagnostic text:
+
+- warning: #include resolved using non-portable Microsoft search rules as: %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-microsoft-mutable-reference
+ clang-diagnostic-microsoft-mutable-reference
+ Diagnostic text:
+
+- warning: 'mutable' on a reference type is a Microsoft extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-microsoft-pure-definition
+ clang-diagnostic-microsoft-pure-definition
+ Diagnostic text:
+
+- warning: function definition with pure-specifier is a Microsoft extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-microsoft-redeclare-static
+ clang-diagnostic-microsoft-redeclare-static
+ Diagnostic text:
+
+- warning: redeclaring non-static %0 as static is a Microsoft extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-microsoft-sealed
+ clang-diagnostic-microsoft-sealed
+ Diagnostic text:
+
+- warning: 'sealed' keyword is a Microsoft extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-microsoft-template
+ clang-diagnostic-microsoft-template
+ Diagnostic text:
+
+- warning: %select{class template|class template partial|variable template|variable template partial|function template|member function|static data member|member class|member enumeration}0 specialization of %1 not in %select{a namespace enclosing %2|class %2 or an enclosing namespace}3 is a Microsoft extension
+- warning: duplicate explicit instantiation of %0 ignored as a Microsoft extension
+- warning: non-type template argument containing a dereference operation is a Microsoft extension
+- warning: template argument for template type parameter must be a type; omitted 'typename' is a Microsoft extension
+- warning: use of identifier %0 found via unqualified lookup into dependent bases of class templates is a Microsoft extension
+- warning: use of undeclared identifier %0; unqualified lookup into dependent bases of class template %1 is a Microsoft extension
+- warning: using the undeclared type %0 as a default template argument is a Microsoft extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-microsoft-union-member-reference
+ clang-diagnostic-microsoft-union-member-reference
+ Diagnostic text:
+
+- warning: union member %0 has reference type %1, which is a Microsoft extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-microsoft-unqualified-friend
+ clang-diagnostic-microsoft-unqualified-friend
+ Diagnostic text:
+
+- warning: unqualified friend declaration referring to type outside of the nearest enclosing namespace is a Microsoft extension; add a nested name specifier
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-microsoft-using-decl
+ clang-diagnostic-microsoft-using-decl
+ Diagnostic text:
+
+- warning: using declaration referring to inaccessible member '%0' (which refers to accessible member '%1') is a Microsoft compatibility extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-microsoft-void-pseudo-dtor
+ clang-diagnostic-microsoft-void-pseudo-dtor
+ Diagnostic text:
+
+- warning: pseudo-destructors on type void are a Microsoft extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-mismatched-new-delete
+ clang-diagnostic-mismatched-new-delete
+ Diagnostic text:
+
+- warning: 'delete%select{|[]}0' applied to a pointer that was allocated with 'new%select{[]|}0'; did you mean 'delete%select{[]|}0'?
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-mismatched-parameter-types
+ clang-diagnostic-mismatched-parameter-types
+ Diagnostic text:
+
+- warning: conflicting parameter types in implementation of %0%diff{: $ vs $|}1,2
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-mismatched-return-types
+ clang-diagnostic-mismatched-return-types
+ Diagnostic text:
+
+- warning: conflicting return type in implementation of %0%diff{: $ vs $|}1,2
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-mismatched-tags
+ clang-diagnostic-mismatched-tags
+ Diagnostic text:
+
+- warning: %2 defined as %select{a struct|an interface|a class}0%select{| template}1 here but previously declared as %select{a struct|an interface|a class}3%select{| template}1
+- warning: %select{struct|interface|class}0%select{| template}1 %2 was previously declared as a %select{struct|interface|class}3%select{| template}1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-missing-braces
+ clang-diagnostic-missing-braces
+ Diagnostic text:
+
+- warning: suggest braces around initialization of subobject
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-missing-declarations
+ clang-diagnostic-missing-declarations
+ Diagnostic text:
+
+- warning: '%0' ignored on this declaration
+- warning: '%0' is not permitted on a declaration of a type
+- warning: declaration does not declare anything
+- warning: typedef requires a name
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-missing-exception-spec
+ clang-diagnostic-missing-exception-spec
+ Diagnostic text:
+
+- warning: %0 is missing exception specification '%1'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-missing-field-initializers
+ clang-diagnostic-missing-field-initializers
+ Diagnostic text:
+
+- warning: missing field %0 initializer
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-missing-method-return-type
+ clang-diagnostic-missing-method-return-type
+ Diagnostic text:
+
+- warning: method has no return type specified; defaults to 'id'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-missing-noescape
+ clang-diagnostic-missing-noescape
+ Diagnostic text:
+
+- warning: parameter of overriding method should be annotated with __attribute__((noescape))
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-missing-noreturn
+ clang-diagnostic-missing-noreturn
+ Diagnostic text:
+
+- warning: %select{function|method}0 %1 could be declared with attribute 'noreturn'
+- warning: block could be declared with attribute 'noreturn'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-missing-prototype-for-cc
+ clang-diagnostic-missing-prototype-for-cc
+ Diagnostic text:
+
+- warning: function with no prototype cannot use the %0 calling convention
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-missing-prototypes
+ clang-diagnostic-missing-prototypes
+ Diagnostic text:
+
+- warning: no previous prototype for function %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-missing-selector-name
+ clang-diagnostic-missing-selector-name
+ Diagnostic text:
+
+- warning: %0 used as the name of the previous parameter rather than as part of the selector
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-missing-sysroot
+ clang-diagnostic-missing-sysroot
+ Diagnostic text:
+
+- warning: no such sysroot directory: '%0'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-missing-variable-declarations
+ clang-diagnostic-missing-variable-declarations
+ Diagnostic text:
+
+- warning: no previous extern declaration for non-static variable %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-module-build
+ clang-diagnostic-module-build
+ Diagnostic text:
+
+- remark: building module '%0' as '%1'
+- remark: could not acquire lock file for module '%0': %1
+- remark: finished building module '%0'
+- remark: timed out waiting to acquire lock file for module '%0'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-module-conflict
+ clang-diagnostic-module-conflict
+ Diagnostic text:
+
+- warning: module '%0' conflicts with already-imported module '%1': %2
+- warning: module file '%0' was validated as a system module and is now being imported as a non-system module; any difference in diagnostic options will be ignored
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-module-file-config-mismatch
+ clang-diagnostic-module-file-config-mismatch
+ Diagnostic text:
+
+- warning: module file %0 cannot be loaded due to a configuration mismatch with the current compilation
+
+References
+Diagnostic flags in Clang
+ ]]>
+ CRITICAL
+ CODE_SMELL
+
+
+ clang-diagnostic-module-file-extension
+ clang-diagnostic-module-file-extension
+ Diagnostic text:
+
+- warning: duplicate module file extension block name '%0'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-module-import-in-extern-c
+ clang-diagnostic-module-import-in-extern-c
+ Diagnostic text:
+
+- warning: import of C++ module '%0' appears within extern "C" language linkage specification
+
+References
+Diagnostic flags in Clang
+ ]]>
+ CRITICAL
+ CODE_SMELL
+
+
+ clang-diagnostic-modules-ambiguous-internal-linkage
+ clang-diagnostic-modules-ambiguous-internal-linkage
+ Diagnostic text:
+
+- warning: ambiguous use of internal linkage declaration %0 defined in multiple modules
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-modules-import-nested-redundant
+ clang-diagnostic-modules-import-nested-redundant
+ Diagnostic text:
+
+- warning: redundant #include of module '%0' appears within %1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ CRITICAL
+ CODE_SMELL
+
+
+ clang-diagnostic-most
+ clang-diagnostic-most
+ Diagnostic text:
+
+- warning: #pragma warning expected '%0'
+- warning: #pragma warning expected 'push', 'pop', 'default', 'disable', 'error', 'once', 'suppress', 1, 2, 3, or 4
+- warning: #pragma warning expected a warning number
+- warning: #pragma warning(push, level) requires a level between 0 and 4
+- warning: %0
+- warning: %0 has C-linkage specified, but returns incomplete type %1 which could be incompatible with C
+- warning: %0 has C-linkage specified, but returns user-defined type %1 which is incompatible with C
+- warning: %2 defined as %select{a struct|an interface|a class}0%select{| template}1 here but previously declared as %select{a struct|an interface|a class}3%select{| template}1
+- warning: %q0 hides overloaded virtual %select{function|functions}1
+- warning: %select{delete|destructor}0 called on %1 that is abstract but has non-virtual destructor
+- warning: %select{delete|destructor}0 called on non-final %1 that has virtual functions but non-virtual destructor
+- warning: %select{equality|inequality|relational|three-way}0 comparison result unused
+- warning: %select{field width|precision}0 used with '%1' conversion specifier, resulting in undefined behavior
+- warning: %select{field|base class}0 %1 will be initialized after %select{field|base}2 %3
+- warning: %select{function|variable}0 %1 is not needed and will not be emitted
+- warning: %select{struct|interface|class}0%select{| template}1 %2 was previously declared as a %select{struct|interface|class}3%select{| template}1
+- warning: %select{values of type|enum values with underlying type}2 '%0' should not be used as format arguments; add an explicit cast to %1 instead
+- warning: %select{void function|void method|constructor|destructor}1 %0 should not return a value
+- warning: %select{|empty }0%select{struct|union}1 has size 0 in C, %select{size 1|non-zero size}2 in C++
+- warning: '%0' is not a valid object format flag
+- warning: '%select{*|.*}0' specified field %select{width|precision}0 is missing a matching 'int' argument
+- warning: '/*' within block comment
+- warning: 'static' function %0 declared in header file should be declared 'static inline'
+- warning: // comments are not allowed in this language
+- warning: adding %0 to a string does not append to the string
+- warning: all paths through this function will call itself
+- warning: angle-bracketed include <%0> cannot be aliased to double-quoted include "%1"
+- warning: array section %select{lower bound|length}0 is of type 'char'
+- warning: array subscript is of type 'char'
+- warning: assigning %select{field|instance variable}0 to itself
+- warning: base class %0 is uninitialized when used here to access %q1
+- warning: block pointer variable %0 is uninitialized when captured by block
+- warning: cannot mix positional and non-positional arguments in format string
+- warning: cast of type %0 to %1 is deprecated; use sel_getName instead
+- warning: container access result unused - container access should not be used for side effects
+- warning: control may reach end of coroutine; which is undefined behavior because the promise type %0 does not declare 'return_void()'
+- warning: control may reach end of non-void function
+- warning: control may reach end of non-void lambda
+- warning: control reaches end of coroutine; which is undefined behavior because the promise type %0 does not declare 'return_void()'
+- warning: control reaches end of non-void function
+- warning: control reaches end of non-void lambda
+- warning: convenience initializer missing a 'self' call to another initializer
+- warning: convenience initializer should not invoke an initializer on 'super'
+- warning: data argument not used by format string
+- warning: data argument position '%0' exceeds the number of data arguments (%1)
+- warning: designated initializer invoked a non-designated initializer
+- warning: designated initializer missing a 'super' call to a designated initializer of the super class
+- warning: designated initializer should only invoke a designated initializer on 'super'
+- warning: double-quoted include "%0" cannot be aliased to angle-bracketed include <%1>
+- warning: escaped newline between */ characters at block comment end
+- warning: expected 'ON' or 'OFF' or 'DEFAULT' in pragma
+- warning: expected end of directive in pragma
+- warning: explicitly assigning value of variable of type %0 to itself
+- warning: explicitly assigning value of variable of type %0 to itself
+- warning: explicitly moving variable of type %0 to itself
+- warning: explicitly moving variable of type %0 to itself
+- warning: expression result unused
+- warning: expression result unused; should this cast be to 'void'?
+- warning: expression with side effects has no effect in an unevaluated context
+- warning: expression with side effects will be evaluated despite being used as an operand to 'typeid'
+- warning: field %0 can overwrite instance variable %1 with variable sized type %2 in superclass %3
+- warning: field %0 is uninitialized when used here
+- warning: field %0 with variable sized type %1 is not visible to subclasses and can conflict with their instance variables
+- warning: field %select{width|precision}0 should have type %1, but argument has type %2
+- warning: flag '%0' is ignored when flag '%1' is present
+- warning: flag '%0' results in undefined behavior with '%1' conversion specifier
+- warning: format specifies type %0 but the argument has %select{type|underlying type}2 %1
+- warning: format string contains '\0' within the string body
+- warning: format string is empty
+- warning: format string is not a string literal (potentially insecure)
+- warning: format string is not null-terminated
+- warning: format string missing
+- warning: format string should not be a wide string
+- warning: ignored trigraph would end block comment
+- warning: ignoring return value of function declared with %0 attribute
+- warning: ignoring return value of function declared with %0 attribute
+- warning: implicit declaration of function %0
+- warning: implicit declaration of function %0 is invalid in C99
+- warning: implicitly declaring library function '%0' with type %1
+- warning: incomplete format specifier
+- warning: invalid conversion specifier '%0'
+- warning: invalid position specified for %select{field width|field precision}0
+- warning: ivar %0 which backs the property is not referenced in this property's accessor
+- warning: lambda capture %0 is not %select{used|required to be captured for this use}1
+- warning: length modifier '%0' results in undefined behavior or no effect with '%1' conversion specifier
+- warning: local variable %0 will be copied despite being %select{returned|thrown}1 by name
+- warning: method override for the designated initializer of the superclass %objcinstance0 not found
+- warning: method possibly missing a [super %0] call
+- warning: missing object format flag
+- warning: more '%%' conversions than data arguments
+- warning: moving a local object in a return statement prevents copy elision
+- warning: moving a temporary object prevents copy elision
+- warning: multi-character character constant
+- warning: multi-line // comment
+- warning: no closing ']' for '%%[' in scanf format string
+- warning: non-void %select{function|method}1 %0 should return a value
+- warning: non-void %select{function|method}1 %0 should return a value
+- warning: null passed to a callee that requires a non-null argument
+- warning: null returned from %select{function|method}0 that requires a non-null return value
+- warning: object format flags cannot be used with '%0' conversion specifier
+- warning: position arguments in format strings start counting at 1 (not 0)
+- warning: pragma STDC FENV_ACCESS ON is not supported, ignoring pragma
+- warning: pragma diagnostic expected 'error', 'warning', 'ignored', 'fatal', 'push', or 'pop'
+- warning: pragma diagnostic expected option name (e.g. "-Wundef")
+- warning: pragma diagnostic pop could not pop, no matching push
+- warning: pragma include_alias expected '%0'
+- warning: pragma include_alias expected include filename
+- warning: private field %0 is not used
+- warning: redundant move in return statement
+- warning: reference %0 is not yet bound to a value when used here
+- warning: reference %0 is not yet bound to a value when used within its own initialization
+- warning: sizeof on array function parameter will return size of %0 instead of %1
+- warning: sizeof on pointer operation will return size of %0 instead of %1
+- warning: static variable %0 is suspiciously used within its own initialization
+- warning: suggest braces around initialization of subobject
+- warning: trigraph converted to '%0' character
+- warning: trigraph ends block comment
+- warning: trigraph ignored
+- warning: type specifier missing, defaults to 'int'
+- warning: unexpected token in pragma diagnostic
+- warning: unknown pragma ignored
+- warning: unknown pragma in STDC namespace
+- warning: unused %select{typedef|type alias}0 %1
+- warning: unused function %0
+- warning: unused label %0
+- warning: unused variable %0
+- warning: unused variable %0
+- warning: use of __private_extern__ on a declaration may not produce external symbol private to the linkage unit and is deprecated
+- warning: use of unknown builtin %0
+- warning: using '%%P' format specifier without precision
+- warning: using '%0' format specifier annotation outside of os_log()/os_trace()
+- warning: variable %0 is %select{decremented|incremented}1 both in the loop header and in the loop body
+- warning: variable %0 is %select{used|captured}1 uninitialized whenever %select{'%3' condition is %select{true|false}4|'%3' loop %select{is entered|exits because its condition is false}4|'%3' loop %select{condition is true|exits because its condition is false}4|switch %3 is taken|its declaration is reached|%3 is called}2
+- warning: variable %0 is uninitialized when %select{used here|captured by block}1
+- warning: variable %0 is uninitialized when used within its own initialization
+- warning: variable%select{s| %1|s %1 and %2|s %1, %2, and %3|s %1, %2, %3, and %4}0 used in loop condition not modified in loop body
+- warning: zero field width in scanf format string is unused
+
+References
+Diagnostic flags in Clang
+ ]]>
+ CRITICAL
+ CODE_SMELL
+
+
+ clang-diagnostic-move
+ clang-diagnostic-move
+ Diagnostic text:
+
+- warning: explicitly moving variable of type %0 to itself
+- warning: local variable %0 will be copied despite being %select{returned|thrown}1 by name
+- warning: moving a local object in a return statement prevents copy elision
+- warning: moving a temporary object prevents copy elision
+- warning: redundant move in return statement
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-msvc-include
+ clang-diagnostic-msvc-include
+ Diagnostic text:
+
+- warning: #include resolved using non-portable Microsoft search rules as: %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-msvc-not-found
+ clang-diagnostic-msvc-not-found
+ Diagnostic text:
+
+- warning: unable to find a Visual Studio installation; try running Clang from a developer command prompt
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-multichar
+ clang-diagnostic-multichar
+ Diagnostic text:
+
+- warning: multi-character character constant
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-multiple-move-vbase
+ clang-diagnostic-multiple-move-vbase
+ Diagnostic text:
+
+- warning: defaulted move assignment operator of %0 will move assign virtual base class %1 multiple times
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-narrowing
+ clang-diagnostic-narrowing
+ Diagnostic text:
+
+- warning: %select{case value|enumerator value|non-type template argument|array size|constexpr if condition}0 %select{cannot be narrowed from type %2 to %3|evaluates to %2, which cannot be narrowed to type %3}1
+- warning: constant expression evaluates to %0 which cannot be narrowed to type %1
+- warning: constant expression evaluates to %0 which cannot be narrowed to type %1 in C++11
+- warning: non-constant-expression cannot be narrowed from type %0 to %1 in initializer list
+- warning: non-constant-expression cannot be narrowed from type %0 to %1 in initializer list in C++11
+- warning: type %0 cannot be narrowed to %1 in initializer list
+- warning: type %0 cannot be narrowed to %1 in initializer list in C++11
+
+References
+Diagnostic flags in Clang
+ ]]>
+ CRITICAL
+ CODE_SMELL
+
+
+ clang-diagnostic-nested-anon-types
+ clang-diagnostic-nested-anon-types
+ Diagnostic text:
+
+- warning: anonymous types declared in an anonymous %select{struct|union}0 are an extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-new-returns-null
+ clang-diagnostic-new-returns-null
+ Diagnostic text:
+
+- warning: %0 should not return a null pointer unless it is declared 'throw()'%select{| or 'noexcept'}1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-newline-eof
+ clang-diagnostic-newline-eof
+ Diagnostic text:
+
+- warning: no newline at end of file
+- warning: no newline at end of file
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-noexcept-type
+ clang-diagnostic-noexcept-type
+ Diagnostic text:
+
+- warning: mangled name of %0 will change in C++17 due to non-throwing exception specification in function signature
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-non-gcc
+ clang-diagnostic-non-gcc
+ Diagnostic text:
+
+- warning: 'this' pointer cannot be null in well-defined C++ code; pointer may be assumed to always convert to true
+- warning: address of%select{| function| array}0 '%1' will always evaluate to 'true'
+- warning: assigning value of signed enum type %1 to unsigned bit-field %0; negative enumerators of enum %1 will be converted to positive values
+- warning: bit-field %0 is not wide enough to store all enumerators of %1
+- warning: comparison of integers of different signs: %0 and %1
+- warning: expression which evaluates to zero treated as a null pointer constant of type %0
+- warning: implicit boolean conversion of Objective-C object literal always evaluates to true
+- warning: implicit conversion changes signedness: %0 to %1
+- warning: implicit conversion discards imaginary component: %0 to %1
+- warning: implicit conversion from %0 to %1 changes non-zero value from %2 to %3
+- warning: implicit conversion from %0 to %1 changes value from %2 to %3
+- warning: implicit conversion from %0 to %1 changes value from %2 to %3
+- warning: implicit conversion from %2 to %3 changes value from %0 to %1
+- warning: implicit conversion from enumeration type %0 to different enumeration type %1
+- warning: implicit conversion loses floating-point precision: %0 to %1
+- warning: implicit conversion loses integer precision: %0 to %1
+- warning: implicit conversion loses integer precision: %0 to %1
+- warning: implicit conversion of %select{NULL|nullptr}0 constant to %1
+- warning: implicit conversion of out of range value from %0 to %1 is undefined
+- warning: implicit conversion of out of range value from %0 to %1 is undefined
+- warning: implicit conversion turns floating-point number into integer: %0 to %1
+- warning: implicit conversion turns string literal into bool: %0 to %1
+- warning: implicit conversion turns vector to scalar: %0 to %1
+- warning: implicit conversion when assigning computation result loses floating-point precision: %0 to %1
+- warning: implicit truncation from %2 to bit-field changes value from %0 to %1
+- warning: incompatible integer to pointer conversion %select{%diff{assigning to $ from $|assigning to different types}0,1|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2%select{|; dereference with *|; take the address with &|; remove *|; remove &}3
+- warning: incompatible pointer to integer conversion %select{%diff{assigning to $ from $|assigning to different types}0,1|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2%select{|; dereference with *|; take the address with &|; remove *|; remove &}3
+- warning: initialization of pointer of type %0 to null from a constant boolean expression
+- warning: magnitude of floating-point constant too large for type %0; maximum is %1
+- warning: magnitude of floating-point constant too small for type %0; minimum is %1
+- warning: non-type template argument value '%0' truncated to '%1' for template parameter of type %2
+- warning: non-type template argument with value '%0' converted to '%1' for unsigned template parameter of type %2
+- warning: nonnull %select{function call|parameter}0 '%1' will evaluate to 'true' on first encounter
+- warning: object of type %0 is not compatible with %select{array element type|dictionary key type|dictionary value type}1 %2
+- warning: operand of ? changes signedness: %0 to %1
+- warning: passing non-generic address space pointer to %0 may cause dynamic conversion affecting performance
+- warning: reference cannot be bound to dereferenced null pointer in well-defined C++ code; pointer may be assumed to always convert to true
+- warning: signed bit-field %0 needs an extra bit to represent the largest positive enumerators of %1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-non-literal-null-conversion
+ clang-diagnostic-non-literal-null-conversion
+ Diagnostic text:
+
+- warning: expression which evaluates to zero treated as a null pointer constant of type %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-non-modular-include-in-framework-module
+ clang-diagnostic-non-modular-include-in-framework-module
+ Diagnostic text:
+
+- warning: include of non-modular header inside framework module '%0': '%1'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-non-modular-include-in-module
+ clang-diagnostic-non-modular-include-in-module
+ Diagnostic text:
+
+- warning: include of non-modular header inside framework module '%0': '%1'
+- warning: include of non-modular header inside module '%0': '%1'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-non-pod-varargs
+ clang-diagnostic-non-pod-varargs
+ Diagnostic text:
+
+- warning: cannot pass %select{non-POD|non-trivial}0 object of type %1 to variadic %select{function|block|method|constructor}2; expected type from format string was %3
+- warning: cannot pass object of %select{non-POD|non-trivial}0 type %1 through variadic %select{function|block|method|constructor}2; call will abort at runtime
+- warning: second argument to 'va_arg' is of ARC ownership-qualified type %0
+- warning: second argument to 'va_arg' is of non-POD type %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ CRITICAL
+ CODE_SMELL
+
+
+ clang-diagnostic-non-virtual-dtor
+ clang-diagnostic-non-virtual-dtor
+ Diagnostic text:
+
+- warning: %0 has virtual functions but non-virtual destructor
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-nonnull
+ clang-diagnostic-nonnull
+ Diagnostic text:
+
+- warning: null passed to a callee that requires a non-null argument
+- warning: null returned from %select{function|method}0 that requires a non-null return value
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-nonportable-include-path
+ clang-diagnostic-nonportable-include-path
+ Diagnostic text:
+
+- warning: non-portable path to file '%0'; specified path differs in case from file name on disk
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-nonportable-system-include-path
+ clang-diagnostic-nonportable-system-include-path
+ Diagnostic text:
+
+- warning: non-portable path to file '%0'; specified path differs in case from file name on disk
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-nonportable-vector-initialization
+ clang-diagnostic-nonportable-vector-initialization
+ Diagnostic text:
+
+- warning: vector initializers are not compatible with NEON intrinsics in big endian mode
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-nontrivial-memaccess
+ clang-diagnostic-nontrivial-memaccess
+ Diagnostic text:
+
+- warning: %select{destination for|source of|first operand of|second operand of}0 this %1 call is a pointer to record %2 that is not trivial to %select{primitive-default-initialize|primitive-copy}3
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-nsconsumed-mismatch
+ clang-diagnostic-nsconsumed-mismatch
+ Diagnostic text:
+
+- warning: overriding method has mismatched ns_consumed attribute on its parameter
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-nsreturns-mismatch
+ clang-diagnostic-nsreturns-mismatch
+ Diagnostic text:
+
+- warning: overriding method has mismatched ns_returns_%select{not_retained|retained}0 attributes
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-null-arithmetic
+ clang-diagnostic-null-arithmetic
+ Diagnostic text:
+
+- warning: comparison between NULL and non-pointer %select{(%1 and NULL)|(NULL and %1)}0
+- warning: use of NULL in arithmetic operation
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-null-character
+ clang-diagnostic-null-character
+ Diagnostic text:
+
+- warning: null character ignored
+- warning: null character(s) preserved in %select{char|string}0 literal
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-null-conversion
+ clang-diagnostic-null-conversion
+ Diagnostic text:
+
+- warning: implicit conversion of %select{NULL|nullptr}0 constant to %1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-null-dereference
+ clang-diagnostic-null-dereference
+ Diagnostic text:
+
+- warning: binding dereferenced null pointer to reference has undefined behavior
+- warning: indirection of non-volatile null pointer will be deleted, not trap
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-null-pointer-arithmetic
+ clang-diagnostic-null-pointer-arithmetic
+ Diagnostic text:
+
+- warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension
+- warning: performing pointer arithmetic on a null pointer has undefined behavior%select{| if the offset is nonzero}0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-nullability
+ clang-diagnostic-nullability
+ Diagnostic text:
+
+- warning: conflicting nullability specifier on parameter types, %0 conflicts with existing specifier %1
+- warning: conflicting nullability specifier on return types, %0 conflicts with existing specifier %1
+- warning: duplicate nullability specifier %0
+- warning: nullability specifier %0 conflicts with existing specifier %1
+- warning: synthesized setter %0 for null_resettable property %1 does not handle nil
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-nullability-completeness
+ clang-diagnostic-nullability-completeness
+ Diagnostic text:
+
+- warning: %select{pointer|block pointer|member pointer}0 is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified)
+- warning: array parameter is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified)
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-nullability-completeness-on-arrays
+ clang-diagnostic-nullability-completeness-on-arrays
+ Diagnostic text:
+
+- warning: array parameter is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified)
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-nullability-declspec
+ clang-diagnostic-nullability-declspec
+ Diagnostic text:
+
+- warning: nullability specifier %0 cannot be applied to non-pointer type %1; did you mean to apply the specifier to the %select{pointer|block pointer|member pointer|function pointer|member function pointer}2?
+
+References
+Diagnostic flags in Clang
+ ]]>
+ CRITICAL
+ CODE_SMELL
+
+
+ clang-diagnostic-nullability-extension
+ clang-diagnostic-nullability-extension
+ Diagnostic text:
+
+- warning: type nullability specifier %0 is a Clang extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-nullability-inferred-on-nested-type
+ clang-diagnostic-nullability-inferred-on-nested-type
+ Diagnostic text:
+
+- warning: inferring '_Nonnull' for pointer type within %select{array|reference}0 is deprecated
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-nullable-to-nonnull-conversion
+ clang-diagnostic-nullable-to-nonnull-conversion
+ Diagnostic text:
+
+- warning: implicit conversion from nullable pointer %0 to non-nullable pointer type %1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-objc-autosynthesis-property-ivar-name-match
+ clang-diagnostic-objc-autosynthesis-property-ivar-name-match
+ Diagnostic text:
+
+- warning: autosynthesized property %0 will use %select{|synthesized}1 instance variable %2, not existing instance variable %3
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-objc-circular-container
+ clang-diagnostic-objc-circular-container
+ Diagnostic text:
+
+- warning: adding %0 to %1 might cause circular dependency in container
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-objc-cocoa-api
+ clang-diagnostic-objc-cocoa-api
+ Diagnostic text:
+
+- warning: using %0 with a literal is redundant
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-objc-designated-initializers
+ clang-diagnostic-objc-designated-initializers
+ Diagnostic text:
+
+- warning: convenience initializer missing a 'self' call to another initializer
+- warning: convenience initializer should not invoke an initializer on 'super'
+- warning: designated initializer invoked a non-designated initializer
+- warning: designated initializer missing a 'super' call to a designated initializer of the super class
+- warning: designated initializer should only invoke a designated initializer on 'super'
+- warning: method override for the designated initializer of the superclass %objcinstance0 not found
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-objc-flexible-array
+ clang-diagnostic-objc-flexible-array
+ Diagnostic text:
+
+- warning: field %0 can overwrite instance variable %1 with variable sized type %2 in superclass %3
+- warning: field %0 with variable sized type %1 is not visible to subclasses and can conflict with their instance variables
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-objc-forward-class-redefinition
+ clang-diagnostic-objc-forward-class-redefinition
+ Diagnostic text:
+
+- warning: redefinition of forward class %0 of a typedef name of an object type is ignored
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-objc-interface-ivars
+ clang-diagnostic-objc-interface-ivars
+ Diagnostic text:
+
+- warning: declaration of instance variables in the interface is deprecated
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-objc-literal-compare
+ clang-diagnostic-objc-literal-compare
+ Diagnostic text:
+
+- warning: direct comparison of %select{an array literal|a dictionary literal|a numeric literal|a boxed expression|}0 has undefined behavior
+- warning: direct comparison of a string literal has undefined behavior
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-objc-literal-conversion
+ clang-diagnostic-objc-literal-conversion
+ Diagnostic text:
+
+- warning: implicit boolean conversion of Objective-C object literal always evaluates to true
+- warning: object of type %0 is not compatible with %select{array element type|dictionary key type|dictionary value type}1 %2
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-objc-macro-redefinition
+ clang-diagnostic-objc-macro-redefinition
+ Diagnostic text:
+
+- warning: ignoring redefinition of Objective-C qualifier macro
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-objc-messaging-id
+ clang-diagnostic-objc-messaging-id
+ Diagnostic text:
+
+- warning: messaging unqualified id
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-objc-method-access
+ clang-diagnostic-objc-method-access
+ Diagnostic text:
+
+- warning: class method %objcclass0 not found (return type defaults to 'id')
+- warning: class method %objcclass0 not found (return type defaults to 'id'); did you mean %objcclass2?
+- warning: instance method %0 found instead of class method %1
+- warning: instance method %0 is being used on 'Class' which is not in the root class
+- warning: instance method %objcinstance0 not found (return type defaults to 'id')
+- warning: instance method %objcinstance0 not found (return type defaults to 'id'); did you mean %objcinstance2?
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-objc-missing-property-synthesis
+ clang-diagnostic-objc-missing-property-synthesis
+ Diagnostic text:
+
+- warning: auto property synthesis is synthesizing property not explicitly synthesized
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-objc-missing-super-calls
+ clang-diagnostic-objc-missing-super-calls
+ Diagnostic text:
+
+- warning: method possibly missing a [super %0] call
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-objc-multiple-method-names
+ clang-diagnostic-objc-multiple-method-names
+ Diagnostic text:
+
+- warning: multiple methods named %0 found
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-objc-noncopy-retain-block-property
+ clang-diagnostic-objc-noncopy-retain-block-property
+ Diagnostic text:
+
+- warning: retain'ed block property does not copy the block - use copy attribute instead
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-objc-nonunified-exceptions
+ clang-diagnostic-objc-nonunified-exceptions
+ Diagnostic text:
+
+- warning: cannot catch an exception thrown with @throw in C++ in the non-unified exception model
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-objc-property-assign-on-object-type
+ clang-diagnostic-objc-property-assign-on-object-type
+ Diagnostic text:
+
+- warning: 'assign' property of object type may become a dangling reference; consider using 'unsafe_unretained'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-objc-property-implementation
+ clang-diagnostic-objc-property-implementation
+ Diagnostic text:
+
+- warning: class property %0 requires method %1 to be defined - use @dynamic or provide a method implementation in this category
+- warning: class property %0 requires method %1 to be defined - use @dynamic or provide a method implementation in this class implementation
+- warning: property %0 requires method %1 to be defined - use @dynamic or provide a method implementation in this category
+- warning: property %0 requires method %1 to be defined - use @synthesize, @dynamic or provide a method implementation in this class implementation
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-objc-property-implicit-mismatch
+ clang-diagnostic-objc-property-implicit-mismatch
+ Diagnostic text:
+
+- warning: primary property declaration is implicitly strong while redeclaration in class extension is weak
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-objc-property-matches-cocoa-ownership-rule
+ clang-diagnostic-objc-property-matches-cocoa-ownership-rule
+ Diagnostic text:
+
+- warning: property follows Cocoa naming convention for returning 'owned' objects
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-objc-property-no-attribute
+ clang-diagnostic-objc-property-no-attribute
+ Diagnostic text:
+
+- warning: default property attribute 'assign' not appropriate for object
+- warning: no 'assign', 'retain', or 'copy' attribute is specified - 'assign' is assumed
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-objc-property-synthesis
+ clang-diagnostic-objc-property-synthesis
+ Diagnostic text:
+
+- warning: auto property synthesis will not synthesize property %0 because it cannot share an ivar with another synthesized property
+- warning: auto property synthesis will not synthesize property %0 because it is 'readwrite' but it will be synthesized 'readonly' via another property
+- warning: auto property synthesis will not synthesize property %0; it will be implemented by its superclass, use @dynamic to acknowledge intention
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-objc-protocol-method-implementation
+ clang-diagnostic-objc-protocol-method-implementation
+ Diagnostic text:
+
+- warning: category is implementing a method which will also be implemented by its primary class
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-objc-protocol-property-synthesis
+ clang-diagnostic-objc-protocol-property-synthesis
+ Diagnostic text:
+
+- warning: auto property synthesis will not synthesize property %0 declared in protocol %1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-objc-protocol-qualifiers
+ clang-diagnostic-objc-protocol-qualifiers
+ Diagnostic text:
+
+- warning: parameterized class %0 already conforms to the protocols listed; did you forget a '*'?
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-objc-readonly-with-setter-property
+ clang-diagnostic-objc-readonly-with-setter-property
+ Diagnostic text:
+
+- warning: setter cannot be specified for a readonly property
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-objc-redundant-api-use
+ clang-diagnostic-objc-redundant-api-use
+ Diagnostic text:
+
+- warning: using %0 with a literal is redundant
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-objc-redundant-literal-use
+ clang-diagnostic-objc-redundant-literal-use
+ Diagnostic text:
+
+- warning: using %0 with a literal is redundant
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-objc-root-class
+ clang-diagnostic-objc-root-class
+ Diagnostic text:
+
+- warning: class %0 defined without specifying a base class
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-objc-string-compare
+ clang-diagnostic-objc-string-compare
+ Diagnostic text:
+
+- warning: direct comparison of a string literal has undefined behavior
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-objc-string-concatenation
+ clang-diagnostic-objc-string-concatenation
+ Diagnostic text:
+
+- warning: concatenated NSString literal for an NSArray expression - possibly missing a comma
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-objc-unsafe-perform-selector
+ clang-diagnostic-objc-unsafe-perform-selector
+ Diagnostic text:
+
+- warning: %0 is incompatible with selectors that return a %select{struct|union|vector}1 type
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-odr
+ clang-diagnostic-odr
+ Diagnostic text:
+
+- warning: type %0 has incompatible definitions in different translation units
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-old-style-cast
+ clang-diagnostic-old-style-cast
+ Diagnostic text:
+
+- warning: use of old-style cast
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-opencl-unsupported-rgba
+ clang-diagnostic-opencl-unsupported-rgba
+ Diagnostic text:
+
+- warning: vector component name '%0' is an OpenCL version 2.2 feature
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-openmp-clauses
+ clang-diagnostic-openmp-clauses
+ Diagnostic text:
+
+- warning: aligned clause will be ignored because the requested alignment is not a power of 2
+- warning: zero linear step (%0 %select{|and other variables in clause }1should probably be const)
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-openmp-loop-form
+ clang-diagnostic-openmp-loop-form
+ Diagnostic text:
+
+- warning: OpenMP loop iteration variable cannot have more than 64 bits size and will be narrowed
+- warning: initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-openmp-target
+ clang-diagnostic-openmp-target
+ Diagnostic text:
+
+- warning: No library '%0' found in the default clang lib directory or in LIBRARY_PATH. Expect degraded performance due to no inlining of runtime functions on target devices.
+- warning: Non-trivial type %0 is mapped, only trivial types are guaranteed to be mapped correctly
+- warning: The OpenMP offloading target '%0' is similar to target '%1' already specified - will be ignored.
+- warning: declaration is not declared in any declare target region
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-option-ignored
+ clang-diagnostic-option-ignored
+ Diagnostic text:
+
+- warning: The '%0' architecture does not support -moutline; flag ignored
+- warning: auto-vectorization requires HVX, use -mhvx to enable it
+- warning: ignoring '%0' option as it cannot be used with %select{implicit usage of|}1 -mabicalls and the N64 ABI
+- warning: ignoring '-mlong-calls' option as it is not currently supported with %select{|the implicit usage of }0-mabicalls
+- warning: option '%0' was ignored by the PS4 toolchain, using '-fPIC'
+- warning: option '-ffine-grained-bitfield-accesses' cannot be enabled together with a sanitizer; flag ignored
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-ordered-compare-function-pointers
+ clang-diagnostic-ordered-compare-function-pointers
+ Diagnostic text:
+
+- warning: ordered comparison of function pointers (%0 and %1)
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-out-of-line-declaration
+ clang-diagnostic-out-of-line-declaration
+ Diagnostic text:
+
+- warning: out-of-line declaration of a member must be a definition
+
+References
+Diagnostic flags in Clang
+ ]]>
+ CRITICAL
+ CODE_SMELL
+
+
+ clang-diagnostic-out-of-scope-function
+ clang-diagnostic-out-of-scope-function
+ Diagnostic text:
+
+- warning: use of out-of-scope declaration of %0%select{| whose type is not compatible with that of an implicit declaration}1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-over-aligned
+ clang-diagnostic-over-aligned
+ Diagnostic text:
+
+- warning: type %0 requires %1 bytes of alignment and the default allocator only guarantees %2 bytes
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-overlength-strings
+ clang-diagnostic-overlength-strings
+ Diagnostic text:
+
+- warning: string literal of length %0 exceeds maximum length %1 that %select{C90|ISO C99|C++}2 compilers are required to support
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-overloaded-shift-op-parentheses
+ clang-diagnostic-overloaded-shift-op-parentheses
+ Diagnostic text:
+
+- warning: overloaded operator %select{>>|<<}0 has higher precedence than comparison operator
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-overloaded-virtual
+ clang-diagnostic-overloaded-virtual
+ Diagnostic text:
+
+- warning: %q0 hides overloaded virtual %select{function|functions}1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-override-module
+ clang-diagnostic-override-module
+ Diagnostic text:
+
+- warning: overriding the module target triple with %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-overriding-method-mismatch
+ clang-diagnostic-overriding-method-mismatch
+ Diagnostic text:
+
+- warning: conflicting distributed object modifiers on parameter type in declaration of %0
+- warning: conflicting distributed object modifiers on return type in declaration of %0
+- warning: conflicting parameter types in declaration of %0%diff{: $ vs $|}1,2
+- warning: conflicting parameter types in declaration of %0: %1 vs %2
+- warning: conflicting return type in declaration of %0%diff{: $ vs $|}1,2
+- warning: conflicting return type in declaration of %0: %1 vs %2
+- warning: conflicting variadic declaration of method and its implementation
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-overriding-t-option
+ clang-diagnostic-overriding-t-option
+ Diagnostic text:
+
+- warning: overriding '%0' option with '%1'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-packed
+ clang-diagnostic-packed
+ Diagnostic text:
+
+- warning: packed attribute is unnecessary for %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-padded
+ clang-diagnostic-padded
+ Diagnostic text:
+
+- warning: padding %select{struct|interface|class}0 %1 with %2 %select{byte|bit}3%s2 to align %4
+- warning: padding %select{struct|interface|class}0 %1 with %2 %select{byte|bit}3%s2 to align anonymous bit-field
+- warning: padding size of %0 with %1 %select{byte|bit}2%s1 to alignment boundary
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-parentheses
+ clang-diagnostic-parentheses
+ Diagnostic text:
+
+- warning: %0 has lower precedence than %1; %1 will be evaluated first
+- warning: '%0' within '%1'
+- warning: '&&' within '||'
+- warning: add explicit braces to avoid dangling else
+- warning: equality comparison with extraneous parentheses
+- warning: logical not is only applied to the left hand side of this %select{comparison|bitwise operator}0
+- warning: operator '%0' has lower precedence than '%1'; '%1' will be evaluated first
+- warning: operator '?:' has lower precedence than '%0'; '%0' will be evaluated first
+- warning: overloaded operator %select{>>|<<}0 has higher precedence than comparison operator
+- warning: using the result of an assignment as a condition without parentheses
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-parentheses-equality
+ clang-diagnostic-parentheses-equality
+ Diagnostic text:
+
+- warning: equality comparison with extraneous parentheses
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-partial-availability
+ clang-diagnostic-partial-availability
+ Diagnostic text:
+
+- warning: %0 is only available on %1 %2 or newer
+- warning: %0 is only available on %1 %2 or newer
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-pass
+ clang-diagnostic-pass
+ Diagnostic text:
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-pass-analysis
+ clang-diagnostic-pass-analysis
+ Diagnostic text:
+
+- remark: %0
+- remark: %0; allow reordering by specifying '#pragma clang loop vectorize(enable)' before the loop or by providing the compiler option '-ffast-math'.
+- remark: %0; allow reordering by specifying '#pragma clang loop vectorize(enable)' before the loop. If the arrays will always be independent specify '#pragma clang loop vectorize(assume_safety)' before the loop or provide the '__restrict__' qualifier with the independent array arguments. Erroneous results will occur if these options are incorrectly applied!
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-pass-failed
+ clang-diagnostic-pass-failed
+ Diagnostic text:
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-pass-missed
+ clang-diagnostic-pass-missed
+ Diagnostic text:
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-pch-date-time
+ clang-diagnostic-pch-date-time
+ Diagnostic text:
+
+- warning: %select{precompiled header|module}0 uses __DATE__ or __TIME__
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-pedantic-core-features
+ clang-diagnostic-pedantic-core-features
+ Diagnostic text:
+
+- warning: OpenCL extension %0 is core feature or supported optional core feature - ignoring
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-pessimizing-move
+ clang-diagnostic-pessimizing-move
+ Diagnostic text:
+
+- warning: moving a local object in a return statement prevents copy elision
+- warning: moving a temporary object prevents copy elision
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-pointer-arith
+ clang-diagnostic-pointer-arith
+ Diagnostic text:
+
+- warning: arithmetic on%select{ a|}0 pointer%select{|s}0 to void is a GNU extension
+- warning: arithmetic on%select{ a|}0 pointer%select{|s}0 to%select{ the|}2 function type%select{|s}2 %1%select{| and %3}2 is a GNU extension
+- warning: invalid application of '%select{sizeof|alignof|vec_step}0' to a function type
+- warning: invalid application of '%select{sizeof|alignof|vec_step}0' to a void type
+- warning: subscript of a pointer to void is a GNU extension
+- warning: subtraction of pointers to type %0 of zero size has undefined behavior
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-pointer-bool-conversion
+ clang-diagnostic-pointer-bool-conversion
+ Diagnostic text:
+
+- warning: address of%select{| function| array}0 '%1' will always evaluate to 'true'
+- warning: nonnull %select{function call|parameter}0 '%1' will evaluate to 'true' on first encounter
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-pointer-sign
+ clang-diagnostic-pointer-sign
+ Diagnostic text:
+
+- warning: %select{%diff{assigning to $ from $|assigning to different types}0,1|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2 converts between pointers to integer types with different sign
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-pointer-type-mismatch
+ clang-diagnostic-pointer-type-mismatch
+ Diagnostic text:
+
+- warning: pointer type mismatch%diff{ ($ and $)|}0,1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-potentially-evaluated-expression
+ clang-diagnostic-potentially-evaluated-expression
+ Diagnostic text:
+
+- warning: expression with side effects will be evaluated despite being used as an operand to 'typeid'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-pragma-clang-attribute
+ clang-diagnostic-pragma-clang-attribute
+ Diagnostic text:
+
+- warning: unused attribute %0 in '#pragma clang attribute push' region
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-pragma-once-outside-header
+ clang-diagnostic-pragma-once-outside-header
+ Diagnostic text:
+
+- warning: #pragma once in main file
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-pragma-pack
+ clang-diagnostic-pragma-pack
+ Diagnostic text:
+
+- warning: non-default #pragma pack value changes the alignment of struct or union members in the included file
+- warning: the current #pragma pack alignment value is modified in the included file
+- warning: unterminated '#pragma pack (push, ...)' at end of file
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-pragma-pack-suspicious-include
+ clang-diagnostic-pragma-pack-suspicious-include
+ Diagnostic text:
+
+- warning: non-default #pragma pack value changes the alignment of struct or union members in the included file
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-pragma-system-header-outside-header
+ clang-diagnostic-pragma-system-header-outside-header
+ Diagnostic text:
+
+- warning: #pragma system_header ignored in main file
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-pragmas
+ clang-diagnostic-pragmas
+ Diagnostic text:
+
+- warning: #pragma %0(pop, ...) failed: %1
+- warning: #pragma options align=reset failed: %0
+- warning: #pragma redefine_extname is applicable to external C declarations only; not applied to %select{function|variable}0 %1
+- warning: #pragma warning expected '%0'
+- warning: #pragma warning expected 'push', 'pop', 'default', 'disable', 'error', 'once', 'suppress', 1, 2, 3, or 4
+- warning: #pragma warning expected a warning number
+- warning: #pragma warning(push, level) requires a level between 0 and 4
+- warning: %0 is not a recognized builtin%select{|; consider including <intrin.h> to access non-builtin intrinsics}1
+- warning: '#pragma comment %0' ignored
+- warning: '#pragma init_seg' is only supported when targeting a Microsoft environment
+- warning: '#pragma optimize' is not supported
+- warning: OpenCL extension end directive mismatches begin directive - ignoring
+- warning: angle-bracketed include <%0> cannot be aliased to double-quoted include "%1"
+- warning: double-quoted include "%0" cannot be aliased to angle-bracketed include <%1>
+- warning: expected #pragma pack parameter to be '1', '2', '4', '8', or '16'
+- warning: expected %select{'enable', 'disable', 'begin' or 'end'|'disable'}0 - ignoring
+- warning: expected '#pragma unused' argument to be a variable name
+- warning: expected ')' or ',' in '#pragma %0'
+- warning: expected ',' in '#pragma %0'
+- warning: expected '=' following '#pragma %select{align|options align}0' - ignored
+- warning: expected 'ON' or 'OFF' or 'DEFAULT' in pragma
+- warning: expected 'align' following '#pragma options' - ignored
+- warning: expected 'compiler', 'lib', 'user', or a string literal for the section name in '#pragma %0' - ignored
+- warning: expected a stack label or a string literal for the section name in '#pragma %0' - ignored
+- warning: expected a string literal for the section name in '#pragma %0' - ignored
+- warning: expected action or ')' in '#pragma %0' - ignored
+- warning: expected end of directive in pragma
+- warning: expected identifier in '#pragma %0' - ignored
+- warning: expected integer between %0 and %1 inclusive in '#pragma %2' - ignored
+- warning: expected integer or identifier in '#pragma pack' - ignored
+- warning: expected non-wide string literal in '#pragma %0'
+- warning: expected push, pop or a string literal for the section name in '#pragma %0' - ignored
+- warning: expected string literal in '#pragma %0' - ignoring
+- warning: extra tokens at end of '#pragma %0' - ignored
+- warning: incorrect use of #pragma clang force_cuda_host_device begin|end
+- warning: incorrect use of '#pragma ms_struct on|off' - ignored
+- warning: invalid alignment option in '#pragma %select{align|options align}0' - ignored
+- warning: known but unsupported action '%1' for '#pragma %0' - ignored
+- warning: missing '(' after '#pragma %0' - ignoring
+- warning: missing ')' after '#pragma %0' - ignoring
+- warning: missing ':' after %0 - ignoring
+- warning: missing ':' or ')' after %0 - ignoring
+- warning: missing argument to '#pragma %0'%select{|; expected %2}1
+- warning: missing argument to debug command '%0'
+- warning: non-default #pragma pack value changes the alignment of struct or union members in the included file
+- warning: only variables can be arguments to '#pragma unused'
+- warning: pragma STDC FENV_ACCESS ON is not supported, ignoring pragma
+- warning: pragma diagnostic expected 'error', 'warning', 'ignored', 'fatal', 'push', or 'pop'
+- warning: pragma diagnostic expected option name (e.g. "-Wundef")
+- warning: pragma diagnostic pop could not pop, no matching push
+- warning: pragma include_alias expected '%0'
+- warning: pragma include_alias expected include filename
+- warning: pragma pop_macro could not pop '%0', no matching push_macro
+- warning: the current #pragma pack alignment value is modified in the included file
+- warning: undeclared variable %0 used as an argument for '#pragma unused'
+- warning: unexpected argument '%0' to '#pragma %1'%select{|; expected %3}2
+- warning: unexpected debug command '%0'
+- warning: unexpected token in pragma diagnostic
+- warning: unknown OpenCL extension %0 - ignoring
+- warning: unknown action '%1' for '#pragma %0' - ignored
+- warning: unknown action for '#pragma %0' - ignored
+- warning: unknown pragma ignored
+- warning: unknown pragma in STDC namespace
+- warning: unsupported OpenCL extension %0 - ignoring
+- warning: unterminated '#pragma pack (push, ...)' at end of file
+- warning: unused attribute %0 in '#pragma clang attribute push' region
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-predefined-identifier-outside-function
+ clang-diagnostic-predefined-identifier-outside-function
+ Diagnostic text:
+
+- warning: predefined identifier is only valid inside function
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-private-extern
+ clang-diagnostic-private-extern
+ Diagnostic text:
+
+- warning: use of __private_extern__ on a declaration may not produce external symbol private to the linkage unit and is deprecated
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-private-header
+ clang-diagnostic-private-header
+ Diagnostic text:
+
+- warning: use of private header from outside its module: '%0'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ CRITICAL
+ CODE_SMELL
+
+
+ clang-diagnostic-private-module
+ clang-diagnostic-private-module
+ Diagnostic text:
+
+- warning: expected canonical name for private module '%0'
+- warning: module '%0' already re-exported as '%1'
+- warning: no submodule named %0 in module '%1'; using top level '%2'
+- warning: private submodule '%0' in private module map, expected top-level module
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-profile-instr-missing
+ clang-diagnostic-profile-instr-missing
+ Diagnostic text:
+
+- warning: profile data may be incomplete: of %0 function%s0, %1 %plural{1:has|:have}1 no data
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-profile-instr-out-of-date
+ clang-diagnostic-profile-instr-out-of-date
+ Diagnostic text:
+
+- warning: profile data may be out of date: of %0 function%s0, %1 %plural{1:has|:have}1 mismatched data that will be ignored
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-profile-instr-unprofiled
+ clang-diagnostic-profile-instr-unprofiled
+ Diagnostic text:
+
+- warning: no profile data available for file "%0"
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-property-access-dot-syntax
+ clang-diagnostic-property-access-dot-syntax
+ Diagnostic text:
+
+- warning: property %0 not found on object of type %1; did you mean to access property %2?
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-property-attribute-mismatch
+ clang-diagnostic-property-attribute-mismatch
+ Diagnostic text:
+
+- warning: '%1' attribute on property %0 does not match the property inherited from %2
+- warning: attribute 'readonly' of property %0 restricts attribute 'readwrite' of property inherited from %1
+- warning: getter name mismatch between property redeclaration (%1) and its original declaration (%0)
+- warning: property attribute in class extension does not match the primary class
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-protocol
+ clang-diagnostic-protocol
+ Diagnostic text:
+
+- warning: method %0 in protocol %1 not implemented
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-protocol-property-synthesis-ambiguity
+ clang-diagnostic-protocol-property-synthesis-ambiguity
+ Diagnostic text:
+
+- warning: property %select{of type %1|with attribute '%1'|without attribute '%1'|with getter %1|with setter %1}0 was selected for synthesis
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-qualified-void-return-type
+ clang-diagnostic-qualified-void-return-type
+ Diagnostic text:
+
+- warning: function cannot return qualified void type %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-quoted-include-in-framework-header
+ clang-diagnostic-quoted-include-in-framework-header
+ Diagnostic text:
+
+- warning: double-quoted include "%0" in framework header, expected angle-bracketed instead
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-range-loop-analysis
+ clang-diagnostic-range-loop-analysis
+ Diagnostic text:
+
+- warning: loop variable %0 %diff{has type $ but is initialized with type $| is initialized with a value of a different type}1,2 resulting in a copy
+- warning: loop variable %0 is always a copy because the range of type %1 does not return a reference
+- warning: loop variable %0 of type %1 creates a copy from type %2
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-readonly-iboutlet-property
+ clang-diagnostic-readonly-iboutlet-property
+ Diagnostic text:
+
+- warning: readonly IBOutlet property %0 when auto-synthesized may not work correctly with 'nib' loader
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-receiver-expr
+ clang-diagnostic-receiver-expr
+ Diagnostic text:
+
+- warning: receiver type %0 is not 'id' or interface pointer, consider casting it to 'id'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-receiver-forward-class
+ clang-diagnostic-receiver-forward-class
+ Diagnostic text:
+
+- warning: receiver %0 is a forward class and corresponding @interface may not exist
+- warning: receiver type %0 for instance message is a forward declaration
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-redeclared-class-member
+ clang-diagnostic-redeclared-class-member
+ Diagnostic text:
+
+- warning: class member cannot be redeclared
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-redundant-move
+ clang-diagnostic-redundant-move
+ Diagnostic text:
+
+- warning: redundant move in return statement
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-redundant-parens
+ clang-diagnostic-redundant-parens
+ Diagnostic text:
+
+- warning: redundant parentheses surrounding declarator
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-register
+ clang-diagnostic-register
+ Diagnostic text:
+
+- warning: 'register' storage class specifier is deprecated and incompatible with C++17
+- warning: ISO C++17 does not allow 'register' storage class specifier
+
+References
+Diagnostic flags in Clang
+ ]]>
+ CRITICAL
+ CODE_SMELL
+
+
+ clang-diagnostic-reinterpret-base-class
+ clang-diagnostic-reinterpret-base-class
+ Diagnostic text:
+
+- warning: 'reinterpret_cast' %select{from|to}3 class %0 %select{to|from}3 its %select{virtual base|base at non-zero offset}2 %1 behaves differently from 'static_cast'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-remark-backend-plugin
+ clang-diagnostic-remark-backend-plugin
+ Diagnostic text:
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-reorder
+ clang-diagnostic-reorder
+ Diagnostic text:
+
+- warning: %select{field|base class}0 %1 will be initialized after %select{field|base}2 %3
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-requires-super-attribute
+ clang-diagnostic-requires-super-attribute
+ Diagnostic text:
+
+- warning: %0 attribute cannot be applied to %select{methods in protocols|dealloc}1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-reserved-id-macro
+ clang-diagnostic-reserved-id-macro
+ Diagnostic text:
+
+- warning: macro name is a reserved identifier
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-reserved-user-defined-literal
+ clang-diagnostic-reserved-user-defined-literal
+ Diagnostic text:
+
+- warning: identifier after literal will be treated as a reserved user-defined literal suffix in C++11
+- warning: invalid suffix on literal; C++11 requires a space between literal and identifier
+- warning: invalid suffix on literal; C++11 requires a space between literal and identifier
+
+References
+Diagnostic flags in Clang
+ ]]>
+ CRITICAL
+ CODE_SMELL
+
+
+ clang-diagnostic-retained-language-linkage
+ clang-diagnostic-retained-language-linkage
+ Diagnostic text:
+
+- warning: friend function %0 retaining previous language linkage is an extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-return-stack-address
+ clang-diagnostic-return-stack-address
+ Diagnostic text:
+
+- warning: %select{address of|reference to}0 stack memory associated with %select{local variable|parameter}2 %1 returned
+- warning: returning %select{address of|reference to}0 local temporary object
+- warning: returning address of label, which is local
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-return-std-move
+ clang-diagnostic-return-std-move
+ Diagnostic text:
+
+- warning: local variable %0 will be copied despite being %select{returned|thrown}1 by name
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-return-std-move-in-c++11
+ clang-diagnostic-return-std-move-in-c++11
+ Diagnostic text:
+
+- warning: prior to the resolution of a defect report against ISO C++11, local variable %0 would have been copied despite being returned by name, due to its not matching the function return type%diff{ ($ vs $)|}1,2
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-return-type
+ clang-diagnostic-return-type
+ Diagnostic text:
+
+- warning: %0 has C-linkage specified, but returns incomplete type %1 which could be incompatible with C
+- warning: %0 has C-linkage specified, but returns user-defined type %1 which is incompatible with C
+- warning: %select{void function|void method|constructor|destructor}1 %0 should not return a value
+- warning: control may reach end of coroutine; which is undefined behavior because the promise type %0 does not declare 'return_void()'
+- warning: control may reach end of non-void function
+- warning: control may reach end of non-void lambda
+- warning: control reaches end of coroutine; which is undefined behavior because the promise type %0 does not declare 'return_void()'
+- warning: control reaches end of non-void function
+- warning: control reaches end of non-void lambda
+- warning: non-void %select{function|method}1 %0 should return a value
+- warning: non-void %select{function|method}1 %0 should return a value
+
+References
+Diagnostic flags in Clang
+ ]]>
+ CRITICAL
+ CODE_SMELL
+
+
+ clang-diagnostic-return-type-c-linkage
+ clang-diagnostic-return-type-c-linkage
+ Diagnostic text:
+
+- warning: %0 has C-linkage specified, but returns incomplete type %1 which could be incompatible with C
+- warning: %0 has C-linkage specified, but returns user-defined type %1 which is incompatible with C
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-sanitize-address
+ clang-diagnostic-sanitize-address
+ Diagnostic text:
+
+- remark: -fsanitize-address-field-padding applied to %0
+- remark: -fsanitize-address-field-padding ignored for %0 because it %select{is not C++|is packed|is a union|is trivially copyable|has trivial destructor|is standard layout|is in a blacklisted file|is blacklisted}1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-section
+ clang-diagnostic-section
+ Diagnostic text:
+
+- warning: %select{codeseg|section}0 does not match previous declaration
+- warning: duplicate code segment specifiers
+- warning: section attribute is specified on redeclared variable
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-selector
+ clang-diagnostic-selector
+ Diagnostic text:
+
+- warning: no method with selector %0 is implemented in this translation unit
+- warning: several methods with selector %0 of mismatched types are found for the @selector expression
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-selector-type-mismatch
+ clang-diagnostic-selector-type-mismatch
+ Diagnostic text:
+
+- warning: several methods with selector %0 of mismatched types are found for the @selector expression
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-self-assign
+ clang-diagnostic-self-assign
+ Diagnostic text:
+
+- warning: assigning %select{field|instance variable}0 to itself
+- warning: explicitly assigning value of variable of type %0 to itself
+- warning: explicitly assigning value of variable of type %0 to itself
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-self-assign-field
+ clang-diagnostic-self-assign-field
+ Diagnostic text:
+
+- warning: assigning %select{field|instance variable}0 to itself
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-self-assign-overloaded
+ clang-diagnostic-self-assign-overloaded
+ Diagnostic text:
+
+- warning: explicitly assigning value of variable of type %0 to itself
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-self-move
+ clang-diagnostic-self-move
+ Diagnostic text:
+
+- warning: explicitly moving variable of type %0 to itself
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-semicolon-before-method-body
+ clang-diagnostic-semicolon-before-method-body
+ Diagnostic text:
+
+- warning: semicolon before method body is ignored
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-sentinel
+ clang-diagnostic-sentinel
+ Diagnostic text:
+
+- warning: missing sentinel in %select{function call|method dispatch|block call}0
+- warning: not enough variable arguments in %0 declaration to fit a sentinel
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-sequence-point
+ clang-diagnostic-sequence-point
+ Diagnostic text:
+
+- warning: multiple unsequenced modifications to %0
+- warning: unsequenced modification and access to %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-serialized-diagnostics
+ clang-diagnostic-serialized-diagnostics
+ Diagnostic text:
+
+- warning: unable to merge a subprocess's serialized diagnostics
+- warning: unable to open file %0 for serializing diagnostics (%1)
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-shadow
+ clang-diagnostic-shadow
+ Diagnostic text:
+
+- warning: declaration shadows a %select{local variable|variable in %2|static data member of %2|field of %2|typedef in %2|type alias in %2}1
+- warning: local declaration of %0 hides instance variable
+- warning: modifying constructor parameter %0 that shadows a field of %1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-shadow-all
+ clang-diagnostic-shadow-all
+ Diagnostic text:
+
+- warning: constructor parameter %0 shadows the field %1 of %2
+- warning: declaration shadows a %select{local variable|variable in %2|static data member of %2|field of %2|typedef in %2|type alias in %2}1
+- warning: declaration shadows a %select{local variable|variable in %2|static data member of %2|field of %2|typedef in %2|type alias in %2}1
+- warning: local declaration of %0 hides instance variable
+- warning: modifying constructor parameter %0 that shadows a field of %1
+- warning: modifying constructor parameter %0 that shadows a field of %1
+- warning: non-static data member %0 of %1 shadows member inherited from type %2
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-shadow-field
+ clang-diagnostic-shadow-field
+ Diagnostic text:
+
+- warning: non-static data member %0 of %1 shadows member inherited from type %2
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-shadow-field-in-constructor
+ clang-diagnostic-shadow-field-in-constructor
+ Diagnostic text:
+
+- warning: constructor parameter %0 shadows the field %1 of %2
+- warning: modifying constructor parameter %0 that shadows a field of %1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-shadow-field-in-constructor-modified
+ clang-diagnostic-shadow-field-in-constructor-modified
+ Diagnostic text:
+
+- warning: modifying constructor parameter %0 that shadows a field of %1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-shadow-ivar
+ clang-diagnostic-shadow-ivar
+ Diagnostic text:
+
+- warning: local declaration of %0 hides instance variable
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-shadow-uncaptured-local
+ clang-diagnostic-shadow-uncaptured-local
+ Diagnostic text:
+
+- warning: declaration shadows a %select{local variable|variable in %2|static data member of %2|field of %2|typedef in %2|type alias in %2}1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-shift-count-negative
+ clang-diagnostic-shift-count-negative
+ Diagnostic text:
+
+- warning: shift count is negative
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-shift-count-overflow
+ clang-diagnostic-shift-count-overflow
+ Diagnostic text:
+
+- warning: shift count >= width of type
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-shift-negative-value
+ clang-diagnostic-shift-negative-value
+ Diagnostic text:
+
+- warning: shifting a negative signed value is undefined
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-shift-op-parentheses
+ clang-diagnostic-shift-op-parentheses
+ Diagnostic text:
+
+- warning: operator '%0' has lower precedence than '%1'; '%1' will be evaluated first
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-shift-overflow
+ clang-diagnostic-shift-overflow
+ Diagnostic text:
+
+- warning: signed shift result (%0) requires %1 bits to represent, but %2 only has %3 bits
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-shift-sign-overflow
+ clang-diagnostic-shift-sign-overflow
+ Diagnostic text:
+
+- warning: signed shift result (%0) sets the sign bit of the shift expression's type (%1) and becomes negative
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-shorten-64-to-32
+ clang-diagnostic-shorten-64-to-32
+ Diagnostic text:
+
+- warning: implicit conversion loses integer precision: %0 to %1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-sign-compare
+ clang-diagnostic-sign-compare
+ Diagnostic text:
+
+- warning: comparison of integers of different signs: %0 and %1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-sign-conversion
+ clang-diagnostic-sign-conversion
+ Diagnostic text:
+
+- warning: implicit conversion changes signedness: %0 to %1
+- warning: operand of ? changes signedness: %0 to %1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-signed-enum-bitfield
+ clang-diagnostic-signed-enum-bitfield
+ Diagnostic text:
+
+- warning: enums in the Microsoft ABI are signed integers by default; consider giving the enum %0 an unsigned underlying type to make this code portable
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-sizeof-array-argument
+ clang-diagnostic-sizeof-array-argument
+ Diagnostic text:
+
+- warning: sizeof on array function parameter will return size of %0 instead of %1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-sizeof-array-decay
+ clang-diagnostic-sizeof-array-decay
+ Diagnostic text:
+
+- warning: sizeof on pointer operation will return size of %0 instead of %1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-sizeof-pointer-memaccess
+ clang-diagnostic-sizeof-pointer-memaccess
+ Diagnostic text:
+
+- warning: '%0' call operates on objects of type %1 while the size is based on a different type %2
+- warning: argument to 'sizeof' in %0 call is the same pointer type %1 as the %select{destination|source}2; expected %3 or an explicit length
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-slash-u-filename
+ clang-diagnostic-slash-u-filename
+ Diagnostic text:
+
+- warning: '/U%0' treated as the '/U' option
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-sometimes-uninitialized
+ clang-diagnostic-sometimes-uninitialized
+ Diagnostic text:
+
+- warning: variable %0 is %select{used|captured}1 uninitialized whenever %select{'%3' condition is %select{true|false}4|'%3' loop %select{is entered|exits because its condition is false}4|'%3' loop %select{condition is true|exits because its condition is false}4|switch %3 is taken|its declaration is reached|%3 is called}2
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-source-uses-openmp
+ clang-diagnostic-source-uses-openmp
+ Diagnostic text:
+
+- warning: OpenMP only allows an ordered construct with the simd clause nested in a simd construct
+- warning: unexpected '#pragma omp ...' in program
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-spir-compat
+ clang-diagnostic-spir-compat
+ Diagnostic text:
+
+- warning: sampler initializer has invalid %0 bits
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-static-float-init
+ clang-diagnostic-static-float-init
+ Diagnostic text:
+
+- warning: in-class initializer for static data member of type %0 is a GNU extension
+- warning: in-class initializer for static data member of type %0 requires 'constexpr' specifier
+
+References
+Diagnostic flags in Clang
+ ]]>
+ CRITICAL
+ CODE_SMELL
+
+
+ clang-diagnostic-static-in-inline
+ clang-diagnostic-static-in-inline
+ Diagnostic text:
+
+- warning: static %select{function|variable}0 %1 is used in an inline function with external linkage
+- warning: static %select{function|variable}0 %1 is used in an inline function with external linkage
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-static-inline-explicit-instantiation
+ clang-diagnostic-static-inline-explicit-instantiation
+ Diagnostic text:
+
+- warning: ignoring '%select{static|inline}0' keyword on explicit template instantiation
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-static-local-in-inline
+ clang-diagnostic-static-local-in-inline
+ Diagnostic text:
+
+- warning: non-constant static local variable in inline function may be different in different files
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-static-self-init
+ clang-diagnostic-static-self-init
+ Diagnostic text:
+
+- warning: static variable %0 is suspiciously used within its own initialization
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-stdlibcxx-not-found
+ clang-diagnostic-stdlibcxx-not-found
+ Diagnostic text:
+
+- warning: include path for stdlibc++ headers not found; pass '-stdlib=libc++' on the command line to use the libc++ standard library instead
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-strict-prototypes
+ clang-diagnostic-strict-prototypes
+ Diagnostic text:
+
+- warning: this %select{function declaration is not|block declaration is not|old-style function definition is not preceded by}0 a prototype
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-strict-selector-match
+ clang-diagnostic-strict-selector-match
+ Diagnostic text:
+
+- warning: multiple methods named %0 found
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-string-compare
+ clang-diagnostic-string-compare
+ Diagnostic text:
+
+- warning: result of comparison against %select{a string literal|@encode}0 is unspecified (use strncmp instead)
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-string-conversion
+ clang-diagnostic-string-conversion
+ Diagnostic text:
+
+- warning: implicit conversion turns string literal into bool: %0 to %1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-string-plus-char
+ clang-diagnostic-string-plus-char
+ Diagnostic text:
+
+- warning: adding %0 to a string pointer does not append to the string
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-string-plus-int
+ clang-diagnostic-string-plus-int
+ Diagnostic text:
+
+- warning: adding %0 to a string does not append to the string
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-strlcpy-strlcat-size
+ clang-diagnostic-strlcpy-strlcat-size
+ Diagnostic text:
+
+- warning: size argument in %0 call appears to be size of the source; expected the size of the destination
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-strncat-size
+ clang-diagnostic-strncat-size
+ Diagnostic text:
+
+- warning: size argument in 'strncat' call appears to be size of the source
+- warning: the value of the size argument in 'strncat' is too large, might lead to a buffer overflow
+- warning: the value of the size argument to 'strncat' is wrong
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-super-class-method-mismatch
+ clang-diagnostic-super-class-method-mismatch
+ Diagnostic text:
+
+- warning: method parameter type %diff{$ does not match super class method parameter type $|does not match super class method parameter type}0,1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-suspicious-bzero
+ clang-diagnostic-suspicious-bzero
+ Diagnostic text:
+
+- warning: 'size' argument to bzero is '0'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-suspicious-memaccess
+ clang-diagnostic-suspicious-memaccess
+ Diagnostic text:
+
+- warning: %select{'size' argument to memset is '0'|setting buffer to a 'sizeof' expression}0; did you mean to transpose the last two arguments?
+- warning: %select{destination for|source of|first operand of|second operand of}0 this %1 call is a pointer to %select{|class containing a }2dynamic class %3; vtable pointer will be %select{overwritten|copied|moved|compared}4
+- warning: %select{destination for|source of|first operand of|second operand of}0 this %1 call is a pointer to record %2 that is not trivial to %select{primitive-default-initialize|primitive-copy}3
+- warning: '%0' call operates on objects of type %1 while the size is based on a different type %2
+- warning: 'size' argument to bzero is '0'
+- warning: argument to 'sizeof' in %0 call is the same pointer type %1 as the %select{destination|source}2; expected %3 or an explicit length
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-switch
+ clang-diagnostic-switch
+ Diagnostic text:
+
+- warning: %plural{1:enumeration value %1 not handled in switch|2:enumeration values %1 and %2 not handled in switch|3:enumeration values %1, %2, and %3 not handled in switch|:%0 enumeration values not handled in switch: %1, %2, %3...}0
+- warning: case value not in enumerated type %0
+- warning: overflow converting case value to switch condition type (%0 to %1)
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-switch-bool
+ clang-diagnostic-switch-bool
+ Diagnostic text:
+
+- warning: switch condition has boolean value
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-switch-enum
+ clang-diagnostic-switch-enum
+ Diagnostic text:
+
+- warning: %plural{1:enumeration value %1 not explicitly handled in switch|2:enumeration values %1 and %2 not explicitly handled in switch|3:enumeration values %1, %2, and %3 not explicitly handled in switch|:%0 enumeration values not explicitly handled in switch: %1, %2, %3...}0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-sync-fetch-and-nand-semantics-changed
+ clang-diagnostic-sync-fetch-and-nand-semantics-changed
+ Diagnostic text:
+
+- warning: the semantics of this intrinsic changed with GCC version 4.4 - the newer semantics are provided here
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-tautological-compare
+ clang-diagnostic-tautological-compare
+ Diagnostic text:
+
+- warning: %select{self-|array }0comparison always evaluates to %select{a constant|%2}1
+- warning: 'this' pointer cannot be null in well-defined C++ code; comparison may be assumed to always evaluate to %select{true|false}0
+- warning: bitwise comparison always evaluates to %select{false|true}0
+- warning: comparison of %select{address of|function|array}0 '%1' %select{not |}2equal to a null pointer is always %select{true|false}2
+- warning: comparison of nonnull %select{function call|parameter}0 '%1' %select{not |}2equal to a null pointer is '%select{true|false}2' on first encounter
+- warning: overlapping comparisons always evaluate to %select{false|true}0
+- warning: reference cannot be bound to dereferenced null pointer in well-defined C++ code; comparison may be assumed to always evaluate to %select{true|false}0
+- warning: result of comparison of %select{constant %0|true|false}1 with %select{expression of type %2|boolean expression}3 is always %4
+- warning: result of comparison of %select{constant %0|true|false}1 with %select{expression of type %2|boolean expression}3 is always %4
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-tautological-constant-compare
+ clang-diagnostic-tautological-constant-compare
+ Diagnostic text:
+
+- warning: result of comparison of %select{constant %0|true|false}1 with %select{expression of type %2|boolean expression}3 is always %4
+- warning: result of comparison of %select{constant %0|true|false}1 with %select{expression of type %2|boolean expression}3 is always %4
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-tautological-constant-in-range-compare
+ clang-diagnostic-tautological-constant-in-range-compare
+ Diagnostic text:
+
+- warning: result of comparison %select{%3|%1}0 %2 %select{%1|%3}0 is always %4
+- warning: result of comparison of %select{%3|unsigned enum expression}0 %2 %select{unsigned enum expression|%3}0 is always %4
+- warning: result of comparison of %select{%3|unsigned expression}0 %2 %select{unsigned expression|%3}0 is always %4
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-tautological-constant-out-of-range-compare
+ clang-diagnostic-tautological-constant-out-of-range-compare
+ Diagnostic text:
+
+- warning: result of comparison of %select{constant %0|true|false}1 with %select{expression of type %2|boolean expression}3 is always %4
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-tautological-overlap-compare
+ clang-diagnostic-tautological-overlap-compare
+ Diagnostic text:
+
+- warning: overlapping comparisons always evaluate to %select{false|true}0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-tautological-pointer-compare
+ clang-diagnostic-tautological-pointer-compare
+ Diagnostic text:
+
+- warning: comparison of %select{address of|function|array}0 '%1' %select{not |}2equal to a null pointer is always %select{true|false}2
+- warning: comparison of nonnull %select{function call|parameter}0 '%1' %select{not |}2equal to a null pointer is '%select{true|false}2' on first encounter
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-tautological-type-limit-compare
+ clang-diagnostic-tautological-type-limit-compare
+ Diagnostic text:
+
+- warning: result of comparison %select{%3|%1}0 %2 %select{%1|%3}0 is always %4
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-tautological-undefined-compare
+ clang-diagnostic-tautological-undefined-compare
+ Diagnostic text:
+
+- warning: 'this' pointer cannot be null in well-defined C++ code; comparison may be assumed to always evaluate to %select{true|false}0
+- warning: reference cannot be bound to dereferenced null pointer in well-defined C++ code; comparison may be assumed to always evaluate to %select{true|false}0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-tautological-unsigned-enum-zero-compare
+ clang-diagnostic-tautological-unsigned-enum-zero-compare
+ Diagnostic text:
+
+- warning: result of comparison of %select{%3|unsigned enum expression}0 %2 %select{unsigned enum expression|%3}0 is always %4
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-tautological-unsigned-zero-compare
+ clang-diagnostic-tautological-unsigned-zero-compare
+ Diagnostic text:
+
+- warning: result of comparison of %select{%3|unsigned expression}0 %2 %select{unsigned expression|%3}0 is always %4
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-tentative-definition-incomplete-type
+ clang-diagnostic-tentative-definition-incomplete-type
+ Diagnostic text:
+
+- warning: tentative definition of variable with internal linkage has incomplete non-array type %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-thread-safety
+ clang-diagnostic-thread-safety
+ Diagnostic text:
+
+- warning: %0 '%1' is acquired exclusively and shared in the same scope
+- warning: %0 '%1' is not held on every path through here
+- warning: %0 '%1' is still held at the end of function
+- warning: %0 '%1' must be acquired before '%2'
+- warning: %0 attribute can only be applied in a context annotated with 'capability("mutex")' attribute
+- warning: %0 attribute requires arguments whose type is annotated with 'capability' attribute; type here is %1
+- warning: %0 attribute without capability arguments can only be applied to non-static methods of a class
+- warning: %0 attribute without capability arguments refers to 'this', but %1 isn't annotated with 'capability' or 'scoped_lockable' attribute
+- warning: %0 only applies to pointer types; type here is %1
+- warning: %select{reading|writing}1 the value pointed to by %0 requires holding %select{any mutex|any mutex exclusively}1
+- warning: %select{reading|writing}1 variable %0 requires holding %select{any mutex|any mutex exclusively}1
+- warning: %select{reading|writing}3 the value pointed to by %1 requires holding %0 %select{'%2'|'%2' exclusively}3
+- warning: %select{reading|writing}3 the value pointed to by %1 requires holding %0 %select{'%2'|'%2' exclusively}3
+- warning: %select{reading|writing}3 variable %1 requires holding %0 %select{'%2'|'%2' exclusively}3
+- warning: %select{reading|writing}3 variable %1 requires holding %0 %select{'%2'|'%2' exclusively}3
+- warning: Cycle in acquired_before/after dependencies, starting with '%0'
+- warning: acquiring %0 '%1' that is already held
+- warning: calling function %1 requires holding %0 %select{'%2'|'%2' exclusively}3
+- warning: calling function %1 requires holding %0 %select{'%2'|'%2' exclusively}3
+- warning: cannot call function '%1' while %0 '%2' is held
+- warning: cannot resolve lock expression
+- warning: expecting %0 '%1' to be held at start of each loop
+- warning: expecting %0 '%1' to be held at the end of function
+- warning: ignoring %0 attribute because its argument is invalid
+- warning: invalid capability name '%0'; capability name must be 'mutex' or 'role'
+- warning: passing the value that %1 points to by reference requires holding %0 %select{'%2'|'%2' exclusively}3
+- warning: passing variable %1 by reference requires holding %0 %select{'%2'|'%2' exclusively}3
+- warning: releasing %0 '%1' that was not held
+- warning: releasing %0 '%1' using %select{shared|exclusive}2 access, expected %select{shared|exclusive}3 access
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-thread-safety-analysis
+ clang-diagnostic-thread-safety-analysis
+ Diagnostic text:
+
+- warning: %0 '%1' is acquired exclusively and shared in the same scope
+- warning: %0 '%1' is not held on every path through here
+- warning: %0 '%1' is still held at the end of function
+- warning: %0 '%1' must be acquired before '%2'
+- warning: %select{reading|writing}1 the value pointed to by %0 requires holding %select{any mutex|any mutex exclusively}1
+- warning: %select{reading|writing}1 variable %0 requires holding %select{any mutex|any mutex exclusively}1
+- warning: %select{reading|writing}3 the value pointed to by %1 requires holding %0 %select{'%2'|'%2' exclusively}3
+- warning: %select{reading|writing}3 variable %1 requires holding %0 %select{'%2'|'%2' exclusively}3
+- warning: Cycle in acquired_before/after dependencies, starting with '%0'
+- warning: acquiring %0 '%1' that is already held
+- warning: calling function %1 requires holding %0 %select{'%2'|'%2' exclusively}3
+- warning: cannot call function '%1' while %0 '%2' is held
+- warning: cannot resolve lock expression
+- warning: expecting %0 '%1' to be held at start of each loop
+- warning: expecting %0 '%1' to be held at the end of function
+- warning: releasing %0 '%1' that was not held
+- warning: releasing %0 '%1' using %select{shared|exclusive}2 access, expected %select{shared|exclusive}3 access
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-thread-safety-attributes
+ clang-diagnostic-thread-safety-attributes
+ Diagnostic text:
+
+- warning: %0 attribute can only be applied in a context annotated with 'capability("mutex")' attribute
+- warning: %0 attribute requires arguments whose type is annotated with 'capability' attribute; type here is %1
+- warning: %0 attribute without capability arguments can only be applied to non-static methods of a class
+- warning: %0 attribute without capability arguments refers to 'this', but %1 isn't annotated with 'capability' or 'scoped_lockable' attribute
+- warning: %0 only applies to pointer types; type here is %1
+- warning: ignoring %0 attribute because its argument is invalid
+- warning: invalid capability name '%0'; capability name must be 'mutex' or 'role'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-thread-safety-beta
+ clang-diagnostic-thread-safety-beta
+ Diagnostic text:
+
+- warning: Thread safety beta warning.
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-thread-safety-negative
+ clang-diagnostic-thread-safety-negative
+ Diagnostic text:
+
+- warning: acquiring %0 '%1' requires negative capability '%2'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-thread-safety-precise
+ clang-diagnostic-thread-safety-precise
+ Diagnostic text:
+
+- warning: %select{reading|writing}3 the value pointed to by %1 requires holding %0 %select{'%2'|'%2' exclusively}3
+- warning: %select{reading|writing}3 variable %1 requires holding %0 %select{'%2'|'%2' exclusively}3
+- warning: calling function %1 requires holding %0 %select{'%2'|'%2' exclusively}3
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-thread-safety-reference
+ clang-diagnostic-thread-safety-reference
+ Diagnostic text:
+
+- warning: passing the value that %1 points to by reference requires holding %0 %select{'%2'|'%2' exclusively}3
+- warning: passing variable %1 by reference requires holding %0 %select{'%2'|'%2' exclusively}3
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-thread-safety-verbose
+ clang-diagnostic-thread-safety-verbose
+ Diagnostic text:
+
+- warning: Thread safety verbose warning.
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-trigraphs
+ clang-diagnostic-trigraphs
+ Diagnostic text:
+
+- warning: ignored trigraph would end block comment
+- warning: trigraph converted to '%0' character
+- warning: trigraph ends block comment
+- warning: trigraph ignored
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-type-safety
+ clang-diagnostic-type-safety
+ Diagnostic text:
+
+- warning: argument type %0 doesn't match specified %1 type tag %select{that requires %3|}2
+- warning: specified %0 type tag requires a null pointer
+- warning: this type tag was not designed to be used with this function
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-typedef-redefinition
+ clang-diagnostic-typedef-redefinition
+ Diagnostic text:
+
+- warning: redefinition of typedef %0 is a C11 feature
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-typename-missing
+ clang-diagnostic-typename-missing
+ Diagnostic text:
+
+- warning: missing 'typename' prior to dependent type name '%0%1'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unable-to-open-stats-file
+ clang-diagnostic-unable-to-open-stats-file
+ Diagnostic text:
+
+- warning: unable to open statistics output file '%0': '%1'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unavailable-declarations
+ clang-diagnostic-unavailable-declarations
+ Diagnostic text:
+
+- warning: %0 may be unavailable because the receiver type is unknown
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-undeclared-selector
+ clang-diagnostic-undeclared-selector
+ Diagnostic text:
+
+- warning: undeclared selector %0
+- warning: undeclared selector %0; did you mean %1?
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-undef
+ clang-diagnostic-undef
+ Diagnostic text:
+
+- warning: %0 is not defined, evaluates to 0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-undefined-bool-conversion
+ clang-diagnostic-undefined-bool-conversion
+ Diagnostic text:
+
+- warning: 'this' pointer cannot be null in well-defined C++ code; pointer may be assumed to always convert to true
+- warning: reference cannot be bound to dereferenced null pointer in well-defined C++ code; pointer may be assumed to always convert to true
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-undefined-func-template
+ clang-diagnostic-undefined-func-template
+ Diagnostic text:
+
+- warning: instantiation of function %q0 required here, but no definition is available
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-undefined-inline
+ clang-diagnostic-undefined-inline
+ Diagnostic text:
+
+- warning: inline function %q0 is not defined
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-undefined-internal
+ clang-diagnostic-undefined-internal
+ Diagnostic text:
+
+- warning: %select{function|variable}0 %q1 has internal linkage but is not defined
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-undefined-internal-type
+ clang-diagnostic-undefined-internal-type
+ Diagnostic text:
+
+- warning: ISO C++ requires a definition in this translation unit for %select{function|variable}0 %q1 because its type does not have linkage
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-undefined-reinterpret-cast
+ clang-diagnostic-undefined-reinterpret-cast
+ Diagnostic text:
+
+- warning: dereference of type %1 that was reinterpret_cast from type %0 has undefined behavior
+- warning: reinterpret_cast from %0 to %1 has undefined behavior
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-undefined-var-template
+ clang-diagnostic-undefined-var-template
+ Diagnostic text:
+
+- warning: instantiation of variable %q0 required here, but no definition is available
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unevaluated-expression
+ clang-diagnostic-unevaluated-expression
+ Diagnostic text:
+
+- warning: expression with side effects has no effect in an unevaluated context
+- warning: expression with side effects will be evaluated despite being used as an operand to 'typeid'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unguarded-availability
+ clang-diagnostic-unguarded-availability
+ Diagnostic text:
+
+- warning: %0 is only available on %1 %2 or newer
+- warning: %0 is only available on %1 %2 or newer
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unguarded-availability-new
+ clang-diagnostic-unguarded-availability-new
+ Diagnostic text:
+
+- warning: %0 is only available on %1 %2 or newer
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unicode
+ clang-diagnostic-unicode
+ Diagnostic text:
+
+- warning: \%0 used with no following hex digits; treating as '\' followed by identifier
+- warning: incomplete universal character name; treating as '\' followed by identifier
+- warning: universal character name refers to a surrogate character
+- warning: universal character names are only valid in C99 or C++
+- warning: universal character names are only valid in C99 or C++; treating as '\' followed by identifier
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unicode-homoglyph
+ clang-diagnostic-unicode-homoglyph
+ Diagnostic text:
+
+- warning: treating Unicode character <U+%0> as identifier character rather than as '%1' symbol
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unicode-whitespace
+ clang-diagnostic-unicode-whitespace
+ Diagnostic text:
+
+- warning: treating Unicode character as whitespace
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unicode-zero-width
+ clang-diagnostic-unicode-zero-width
+ Diagnostic text:
+
+- warning: identifier contains Unicode character <U+%0> that is invisible in some environments
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-uninitialized
+ clang-diagnostic-uninitialized
+ Diagnostic text:
+
+- warning: base class %0 is uninitialized when used here to access %q1
+- warning: block pointer variable %0 is uninitialized when captured by block
+- warning: field %0 is uninitialized when used here
+- warning: reference %0 is not yet bound to a value when used here
+- warning: reference %0 is not yet bound to a value when used within its own initialization
+- warning: static variable %0 is suspiciously used within its own initialization
+- warning: variable %0 is %select{used|captured}1 uninitialized whenever %select{'%3' condition is %select{true|false}4|'%3' loop %select{is entered|exits because its condition is false}4|'%3' loop %select{condition is true|exits because its condition is false}4|switch %3 is taken|its declaration is reached|%3 is called}2
+- warning: variable %0 is uninitialized when %select{used here|captured by block}1
+- warning: variable %0 is uninitialized when used within its own initialization
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unknown-argument
+ clang-diagnostic-unknown-argument
+ Diagnostic text:
+
+- warning: unknown argument ignored in clang-cl '%0' (did you mean '%1'?)
+- warning: unknown argument ignored in clang-cl: '%0'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unknown-attributes
+ clang-diagnostic-unknown-attributes
+ Diagnostic text:
+
+- warning: unknown attribute %0 ignored
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unknown-escape-sequence
+ clang-diagnostic-unknown-escape-sequence
+ Diagnostic text:
+
+- warning: unknown escape sequence '\%0'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unknown-pragmas
+ clang-diagnostic-unknown-pragmas
+ Diagnostic text:
+
+- warning: #pragma warning expected '%0'
+- warning: #pragma warning expected 'push', 'pop', 'default', 'disable', 'error', 'once', 'suppress', 1, 2, 3, or 4
+- warning: #pragma warning expected a warning number
+- warning: #pragma warning(push, level) requires a level between 0 and 4
+- warning: angle-bracketed include <%0> cannot be aliased to double-quoted include "%1"
+- warning: double-quoted include "%0" cannot be aliased to angle-bracketed include <%1>
+- warning: expected 'ON' or 'OFF' or 'DEFAULT' in pragma
+- warning: expected end of directive in pragma
+- warning: pragma STDC FENV_ACCESS ON is not supported, ignoring pragma
+- warning: pragma diagnostic expected 'error', 'warning', 'ignored', 'fatal', 'push', or 'pop'
+- warning: pragma diagnostic expected option name (e.g. "-Wundef")
+- warning: pragma diagnostic pop could not pop, no matching push
+- warning: pragma include_alias expected '%0'
+- warning: pragma include_alias expected include filename
+- warning: unexpected token in pragma diagnostic
+- warning: unknown pragma ignored
+- warning: unknown pragma in STDC namespace
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unknown-sanitizers
+ clang-diagnostic-unknown-sanitizers
+ Diagnostic text:
+
+- warning: unknown sanitizer '%0' ignored
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unknown-warning-option
+ clang-diagnostic-unknown-warning-option
+ Diagnostic text:
+
+- warning: unknown %0 warning specifier: '%1'
+- warning: unknown %select{warning|remark}0 option '%1'%select{|; did you mean '%3'?}2
+- warning: unknown warning group '%0', ignored
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unnamed-type-template-args
+ clang-diagnostic-unnamed-type-template-args
+ Diagnostic text:
+
+- warning: template argument uses unnamed type
+- warning: unnamed type as template argument is incompatible with C++98
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unneeded-internal-declaration
+ clang-diagnostic-unneeded-internal-declaration
+ Diagnostic text:
+
+- warning: %select{function|variable}0 %1 is not needed and will not be emitted
+- warning: 'static' function %0 declared in header file should be declared 'static inline'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unneeded-member-function
+ clang-diagnostic-unneeded-member-function
+ Diagnostic text:
+
+- warning: member function %0 is not needed and will not be emitted
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unreachable-code
+ clang-diagnostic-unreachable-code
+ Diagnostic text:
+
+- warning: code will never be executed
+- warning: loop will run at most once (loop increment never executed)
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unreachable-code-aggressive
+ clang-diagnostic-unreachable-code-aggressive
+ Diagnostic text:
+
+- warning: 'break' will never be executed
+- warning: 'return' will never be executed
+- warning: code will never be executed
+- warning: loop will run at most once (loop increment never executed)
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unreachable-code-break
+ clang-diagnostic-unreachable-code-break
+ Diagnostic text:
+
+- warning: 'break' will never be executed
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unreachable-code-loop-increment
+ clang-diagnostic-unreachable-code-loop-increment
+ Diagnostic text:
+
+- warning: loop will run at most once (loop increment never executed)
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unreachable-code-return
+ clang-diagnostic-unreachable-code-return
+ Diagnostic text:
+
+- warning: 'return' will never be executed
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unsequenced
+ clang-diagnostic-unsequenced
+ Diagnostic text:
+
+- warning: multiple unsequenced modifications to %0
+- warning: unsequenced modification and access to %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unsupported-abs
+ clang-diagnostic-unsupported-abs
+ Diagnostic text:
+
+- warning: ignoring '-mabs=2008' option because the '%0' architecture does not support it
+- warning: ignoring '-mabs=legacy' option because the '%0' architecture does not support it
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unsupported-availability-guard
+ clang-diagnostic-unsupported-availability-guard
+ Diagnostic text:
+
+- warning: %select{@available|__builtin_available}0 does not guard availability here; use if (%select{@available|__builtin_available}0) instead
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unsupported-cb
+ clang-diagnostic-unsupported-cb
+ Diagnostic text:
+
+- warning: ignoring '-mcompact-branches=' option because the '%0' architecture does not support it
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unsupported-dll-base-class-template
+ clang-diagnostic-unsupported-dll-base-class-template
+ Diagnostic text:
+
+- warning: propagating dll attribute to %select{already instantiated|explicitly specialized}0 base class template without dll attribute is not supported
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unsupported-friend
+ clang-diagnostic-unsupported-friend
+ Diagnostic text:
+
+- warning: dependent nested name specifier '%0' for friend class declaration is not supported; turning off access control for %1
+- warning: dependent nested name specifier '%0' for friend template declaration is not supported; ignoring this friend declaration
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unsupported-gpopt
+ clang-diagnostic-unsupported-gpopt
+ Diagnostic text:
+
+- warning: ignoring '-mgpopt' option as it cannot be used with %select{|the implicit usage of }0-mabicalls
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unsupported-nan
+ clang-diagnostic-unsupported-nan
+ Diagnostic text:
+
+- warning: ignoring '-mnan=2008' option because the '%0' architecture does not support it
+- warning: ignoring '-mnan=legacy' option because the '%0' architecture does not support it
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unsupported-target-opt
+ clang-diagnostic-unsupported-target-opt
+ Diagnostic text:
+
+- warning: debug information option '%0' is not supported for target '%1'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unsupported-visibility
+ clang-diagnostic-unsupported-visibility
+ Diagnostic text:
+
+- warning: target does not support 'protected' visibility; using 'default'
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unusable-partial-specialization
+ clang-diagnostic-unusable-partial-specialization
+ Diagnostic text:
+
+- warning: %select{class|variable}0 template partial specialization contains %select{a template parameter|template parameters}1 that cannot be deduced; this partial specialization will never be used
+
+References
+Diagnostic flags in Clang
+ ]]>
+ CRITICAL
+ CODE_SMELL
+
+
+ clang-diagnostic-unused
+ clang-diagnostic-unused
+ Diagnostic text:
+
+- warning: %select{equality|inequality|relational|three-way}0 comparison result unused
+- warning: %select{function|variable}0 %1 is not needed and will not be emitted
+- warning: 'static' function %0 declared in header file should be declared 'static inline'
+- warning: container access result unused - container access should not be used for side effects
+- warning: expression result unused
+- warning: expression result unused; should this cast be to 'void'?
+- warning: expression with side effects has no effect in an unevaluated context
+- warning: expression with side effects will be evaluated despite being used as an operand to 'typeid'
+- warning: ignoring return value of function declared with %0 attribute
+- warning: ignoring return value of function declared with %0 attribute
+- warning: ivar %0 which backs the property is not referenced in this property's accessor
+- warning: lambda capture %0 is not %select{used|required to be captured for this use}1
+- warning: private field %0 is not used
+- warning: unused %select{typedef|type alias}0 %1
+- warning: unused function %0
+- warning: unused label %0
+- warning: unused variable %0
+- warning: unused variable %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unused-command-line-argument
+ clang-diagnostic-unused-command-line-argument
+ Diagnostic text:
+
+- warning: %0: '%1' input unused in cpp mode
+- warning: %0: '%1' input unused%select{ when '%3' is present|}2
+- warning: %0: previously preprocessed input%select{ unused when '%2' is present|}1
+- warning: argument '%0' requires profile-guided optimization information
+- warning: argument unused during compilation: '%0'
+- warning: joined argument expects additional value: '%0'
+- warning: the flag '%0' has been deprecated and will be ignored
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unused-comparison
+ clang-diagnostic-unused-comparison
+ Diagnostic text:
+
+- warning: %select{equality|inequality|relational|three-way}0 comparison result unused
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unused-const-variable
+ clang-diagnostic-unused-const-variable
+ Diagnostic text:
+
+- warning: unused variable %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unused-exception-parameter
+ clang-diagnostic-unused-exception-parameter
+ Diagnostic text:
+
+- warning: unused exception parameter %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unused-function
+ clang-diagnostic-unused-function
+ Diagnostic text:
+
+- warning: %select{function|variable}0 %1 is not needed and will not be emitted
+- warning: 'static' function %0 declared in header file should be declared 'static inline'
+- warning: unused function %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unused-getter-return-value
+ clang-diagnostic-unused-getter-return-value
+ Diagnostic text:
+
+- warning: property access result unused - getters should not be used for side effects
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unused-label
+ clang-diagnostic-unused-label
+ Diagnostic text:
+
+- warning: unused label %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unused-lambda-capture
+ clang-diagnostic-unused-lambda-capture
+ Diagnostic text:
+
+- warning: lambda capture %0 is not %select{used|required to be captured for this use}1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unused-local-typedef
+ clang-diagnostic-unused-local-typedef
+ Diagnostic text:
+
+- warning: unused %select{typedef|type alias}0 %1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unused-local-typedefs
+ clang-diagnostic-unused-local-typedefs
+ Diagnostic text:
+
+- warning: unused %select{typedef|type alias}0 %1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unused-macros
+ clang-diagnostic-unused-macros
+ Diagnostic text:
+
+- warning: macro is not used
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unused-member-function
+ clang-diagnostic-unused-member-function
+ Diagnostic text:
+
+- warning: member function %0 is not needed and will not be emitted
+- warning: unused member function %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unused-parameter
+ clang-diagnostic-unused-parameter
+ Diagnostic text:
+
+- warning: unused parameter %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unused-private-field
+ clang-diagnostic-unused-private-field
+ Diagnostic text:
+
+- warning: private field %0 is not used
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unused-property-ivar
+ clang-diagnostic-unused-property-ivar
+ Diagnostic text:
+
+- warning: ivar %0 which backs the property is not referenced in this property's accessor
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unused-result
+ clang-diagnostic-unused-result
+ Diagnostic text:
+
+- warning: ignoring return value of function declared with %0 attribute
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unused-template
+ clang-diagnostic-unused-template
+ Diagnostic text:
+
+- warning: %select{function|variable}0 %1 is not needed and will not be emitted
+- warning: 'static' function %0 declared in header file should be declared 'static inline'
+- warning: unused %select{function|variable}0 template %1
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unused-value
+ clang-diagnostic-unused-value
+ Diagnostic text:
+
+- warning: %select{equality|inequality|relational|three-way}0 comparison result unused
+- warning: container access result unused - container access should not be used for side effects
+- warning: expression result unused
+- warning: expression result unused; should this cast be to 'void'?
+- warning: expression with side effects has no effect in an unevaluated context
+- warning: expression with side effects will be evaluated despite being used as an operand to 'typeid'
+- warning: ignoring return value of function declared with %0 attribute
+- warning: ignoring return value of function declared with %0 attribute
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unused-variable
+ clang-diagnostic-unused-variable
+ Diagnostic text:
+
+- warning: unused variable %0
+- warning: unused variable %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-unused-volatile-lvalue
+ clang-diagnostic-unused-volatile-lvalue
+ Diagnostic text:
+
+- warning: expression result unused; assign into a variable to force a volatile load
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-used-but-marked-unused
+ clang-diagnostic-used-but-marked-unused
+ Diagnostic text:
+
+- warning: %0 was marked unused but was used
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-user-defined-literals
+ clang-diagnostic-user-defined-literals
+ Diagnostic text:
+
+- warning: user-defined literal suffixes not starting with '_' are reserved%select{; no literal will invoke this operator|}0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-user-defined-warnings
+ clang-diagnostic-user-defined-warnings
+ Diagnostic text:
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-varargs
+ clang-diagnostic-varargs
+ Diagnostic text:
+
+- warning: passing %select{an object that undergoes default argument promotion|an object of reference type|a parameter declared with the 'register' keyword}0 to 'va_start' has undefined behavior
+- warning: second argument to 'va_arg' is of promotable type %0; this va_arg has undefined behavior because arguments will be promoted to %1
+- warning: second argument to 'va_start' is not the last named parameter
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-variadic-macros
+ clang-diagnostic-variadic-macros
+ Diagnostic text:
+
+- warning: __VA_OPT__ can only appear in the expansion of a variadic macro
+- warning: named variadic macros are a GNU extension
+- warning: variadic macros are a C99 feature
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-vec-elem-size
+ clang-diagnostic-vec-elem-size
+ Diagnostic text:
+
+- warning: vector operands do not have the same elements sizes (%0 and %1)
+
+References
+Diagnostic flags in Clang
+ ]]>
+ CRITICAL
+ CODE_SMELL
+
+
+ clang-diagnostic-vector-conversion
+ clang-diagnostic-vector-conversion
+ Diagnostic text:
+
+- warning: incompatible vector types %select{%diff{assigning to $ from $|assigning to different types}0,1|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-vector-conversions
+ clang-diagnostic-vector-conversions
+ Diagnostic text:
+
+- warning: incompatible vector types %select{%diff{assigning to $ from $|assigning to different types}0,1|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-vexing-parse
+ clang-diagnostic-vexing-parse
+ Diagnostic text:
+
+- warning: empty parentheses interpreted as a function declaration
+- warning: parentheses were disambiguated as a function declaration
+- warning: parentheses were disambiguated as redundant parentheses around declaration of variable named %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-visibility
+ clang-diagnostic-visibility
+ Diagnostic text:
+
+- warning: declaration of %0 will not be visible outside of this function
+- warning: redefinition of %0 will not be visible outside of this function
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-vla
+ clang-diagnostic-vla
+ Diagnostic text:
+
+- warning: variable length array used
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-vla-extension
+ clang-diagnostic-vla-extension
+ Diagnostic text:
+
+- warning: variable length arrays are a C99 feature
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-void-ptr-dereference
+ clang-diagnostic-void-ptr-dereference
+ Diagnostic text:
+
+- warning: ISO C++ does not allow indirection on operand of type %0
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-weak-template-vtables
+ clang-diagnostic-weak-template-vtables
+ Diagnostic text:
+
+- warning: explicit template instantiation %0 will emit a vtable in every translation unit
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-weak-vtables
+ clang-diagnostic-weak-vtables
+ Diagnostic text:
+
+- warning: %0 has no out-of-line virtual method definitions; its vtable will be emitted in every translation unit
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-writable-strings
+ clang-diagnostic-writable-strings
+ Diagnostic text:
+
+- warning: ISO C++11 does not allow conversion from string literal to %0
+- warning: conversion from string literal to %0 is deprecated
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-write-strings
+ clang-diagnostic-write-strings
+ Diagnostic text:
+
+- warning: ISO C++11 does not allow conversion from string literal to %0
+- warning: conversion from string literal to %0 is deprecated
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-zero-as-null-pointer-constant
+ clang-diagnostic-zero-as-null-pointer-constant
+ Diagnostic text:
+
+- warning: zero as null pointer constant
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
+
+ clang-diagnostic-zero-length-array
+ clang-diagnostic-zero-length-array
+ Diagnostic text:
+
+- warning: zero size arrays are an extension
+
+References
+Diagnostic flags in Clang
+ ]]>
+ MAJOR
+ CODE_SMELL
+
diff --git a/cxx-sensors/src/test/java/org/sonar/cxx/sensors/clangtidy/CxxClangTidyRuleRepositoryTest.java b/cxx-sensors/src/test/java/org/sonar/cxx/sensors/clangtidy/CxxClangTidyRuleRepositoryTest.java
index 060fa6e280..6358ae35d6 100644
--- a/cxx-sensors/src/test/java/org/sonar/cxx/sensors/clangtidy/CxxClangTidyRuleRepositoryTest.java
+++ b/cxx-sensors/src/test/java/org/sonar/cxx/sensors/clangtidy/CxxClangTidyRuleRepositoryTest.java
@@ -41,6 +41,6 @@ public void createRulesTest() {
def.define(context);
RulesDefinition.Repository repo = context.repository(CxxClangTidyRuleRepository.getRepositoryKey(language));
- assertEquals(311, repo.rules().size());
+ assertEquals(1014, repo.rules().size());
}
}
diff --git a/cxx-sensors/src/tools/clangtidy_createrules.py b/cxx-sensors/src/tools/clangtidy_createrules.py
index c31373f1c5..efb65a354b 100644
--- a/cxx-sensors/src/tools/clangtidy_createrules.py
+++ b/cxx-sensors/src/tools/clangtidy_createrules.py
@@ -16,6 +16,8 @@
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+import cgi
+import json
import os
import re
import subprocess
@@ -266,6 +268,141 @@ def rstfiles_to_rules_xml(directory, fix_urls):
rules.append(rstfile_to_rule(rst_file_path, fix_urls))
write_rules_xml(rules, sys.stdout)
+
+def contains_required_fields(entry_value):
+ FIELDS = ["!name", "!anonymous", "!superclasses",
+ "Class", "DefaultSeverity", "Text"]
+ for field in FIELDS:
+ if field not in entry_value:
+ return False
+ return True
+
+
+def collect_warnings(data, diag_group_id, warnings_in_group):
+ diag_group = data[diag_group_id]
+
+ for entry_key in data:
+ entry_value = data[entry_key]
+ if entry_key == "!tablegen_json_version":
+ continue
+
+ if not contains_required_fields(entry_value):
+ continue
+
+ if "Diagnostic" not in entry_value["!superclasses"]:
+ continue
+
+ if "InGroup" not in entry_value["!superclasses"]:
+ continue
+
+ group_key = entry_value["Group"]["def"]
+ if group_key == diag_group_id:
+ warnings_in_group.append(entry_value)
+
+ sub_groups = diag_group["SubGroups"]
+ for sub_group in sub_groups:
+ sub_group_id = sub_group["def"]
+ collect_warnings(data, sub_group_id, warnings_in_group)
+
+
+# see DiagClass in JSON
+# see http://clang.llvm.org/docs/DiagnosticsReference.html for the
+# printable mappings
+DIAG_CLASS = {"CLASS_EXTENSION": {"weight": 0, "sonarqube_type": "CODE_SMELL", "printable": "warning"},
+ "CLASS_NOTE": {"weight": 0, "sonarqube_type": "CODE_SMELL", "printable": "note"},
+ "CLASS_REMARK": {"weight": 0, "sonarqube_type": "CODE_SMELL", "printable": "remark"},
+ "CLASS_WARNING": {"weight": 0, "sonarqube_type": "CODE_SMELL", "printable": "warning"},
+ "CLASS_ERROR": {"weight": 1, "sonarqube_type": "BUG", "printable": "error"}
+ }
+
+# see Severity in JSON
+# SEV_Ignored means, that the corresponding diagnostics is disabled in clang by default
+# this fact doesn't make any statement about the real severity, so we use MAJOR
+SEVERITY = {"SEV_Remark": {"weight": 0, "sonarqube_severity": "INFO"},
+ "SEV_Ignored": {"weight": 1, "sonarqube_severity": "MAJOR"},
+ "SEV_Warning": {"weight": 1, "sonarqube_severity": "MAJOR"},
+ "SEV_Error": {"weight": 2, "sonarqube_severity": "CRITICAL"},
+ "SEV_Fatal": {"weight": 3, "sonarqube_severity": "BLOCKER"}
+ }
+
+
+def calculate_rule_type_and_severity(diagnostics):
+ max_class = "CLASS_EXTENSION"
+ max_severity = "SEV_Ignored"
+
+ for diagnostic in diagnostics:
+ diag_class = diagnostic["Class"]["def"]
+ diag_severity = diagnostic["DefaultSeverity"]["def"]
+
+ if DIAG_CLASS[diag_class]["weight"] >= DIAG_CLASS[max_class]["weight"]:
+ max_class = diag_class
+ if SEVERITY[diag_severity]["weight"] >= SEVERITY[max_severity]["weight"]:
+ max_severity = diag_severity
+
+ return DIAG_CLASS[max_class]["sonarqube_type"], SEVERITY[max_severity]["sonarqube_severity"]
+
+
+def generate_description(diag_group_name, diagnostics):
+ html_lines = ["Diagnostic text:
", ""]
+ all_diagnostics_are_remarks = True
+ for diagnostic in sorted(diagnostics, key=lambda k: k['Text']):
+ diag_class = diagnostic["Class"]["def"]
+ all_diagnostics_are_remarks = all_diagnostics_are_remarks and (
+ diag_class == "CLASS_REMARK")
+ diag_text = diagnostic["Text"]
+ diag_class_printable = DIAG_CLASS[diag_class]["printable"]
+ diag_text_escaped = cgi.escape(diag_text)
+ html_lines.append("- %s: %s
" %
+ (diag_class_printable, diag_text_escaped))
+ html_lines.append("
")
+ html_lines.append("References
")
+ anchor_prefix = "r" if all_diagnostics_are_remarks else "w"
+ html_lines.append('Diagnostic flags in Clang
' %
+ (anchor_prefix, diag_group_name))
+ return "\n".join(html_lines)
+
+
+def diagnostics_to_rules_xml(json_file):
+ rules = et.Element('rules')
+
+ with open(json_file) as f:
+ data = json.load(f)
+ diag_groups = data["!instanceof"]["DiagGroup"]
+ for diag_group_id in sorted(diag_groups):
+ if not data[diag_group_id]["GroupName"]:
+ continue
+
+ # colleact all Diagnostics included into this DiagGroup
+ warnings_in_group = []
+ collect_warnings(data, diag_group_id, warnings_in_group)
+
+ if not warnings_in_group:
+ continue
+
+ # for each DiagGroup calculate the rule type and severity
+ rule_type, rule_severity = calculate_rule_type_and_severity(
+ warnings_in_group)
+
+ group_name_escaped = data[diag_group_id]["GroupName"].replace(
+ "++", "-").replace("#", "-").replace("--", "-")
+ rule_name = "clang-diagnostic-" + data[diag_group_id]["GroupName"]
+ rule_key = "clang-diagnostic-" + data[diag_group_id]["GroupName"]
+ rule_description = generate_description(
+ group_name_escaped, warnings_in_group)
+
+ rule = et.Element('rule')
+ et.SubElement(rule, 'key').text = rule_key
+ et.SubElement(rule, 'name').text = rule_name
+ et.SubElement(rule, 'description').append(CDATA(rule_description))
+ et.SubElement(rule, 'severity').text = rule_severity
+ et.SubElement(rule, 'type').text = rule_type
+ rules.append(rule)
+
+ write_rules_xml(rules, sys.stdout)
+
+#
+# GENERATION OF RULES FROM CLANG-TIDY DOCUMENTATION (RST FILES)
+#
# 0. install pandoc
# see https://pandoc.org/
#
@@ -286,12 +423,37 @@ def rstfiles_to_rules_xml(directory, fix_urls):
# python utils_createrules.py comparerules clangtidy.xml clangtidy_new.xml
# meld clangtidy.xml clangtidy_new.xml.comparable
+#
+# GENERATION OF RULES FROM CLANG DIAGNOSTICS
+#
+# 0. check out clang source code
+# https://clang.llvm.org/get_started.html
+# perform 1. Get the required tools
+# 2. Check out LLVM
+# 3. Check out Clang
+# 7. Build LLVM and Clang
+#
+# 1. use the TableGen (https://llvm.org/docs/TableGen/index.html) for generation of the list of diagnostics
+#
+# cd /tools/clang/include/clang/Basic/
+# /build/bin/llvm-tblgen -dump-json /tools/clang/include/clang/Basic/Diagnostic.td > output.json
+#
+# 2. generate the new version of the rules file
+#
+# python clangtidy_createrules.py diagnostics output.json > clangtidy_new.xml
+#
+# 3. compare the new version with the old one, extend the old XML
+#
+# python utils_createrules.py comparerules clangtidy.xml clangtidy_new.xml
+# meld clangtidy.xml clangtidy_new.xml.comparable
+
def print_usage_and_exit():
script_name = os.path.basename(sys.argv[0])
print """Usage: %s rules
%s rules_fixurls
- see the source code for inline documentation""" % (script_name, script_name)
+ %s diagnostics
+ see the source code for inline documentation""" % (script_name, script_name, script_name)
sys.exit(1)
@@ -305,5 +467,7 @@ def print_usage_and_exit():
rstfiles_to_rules_xml(sys.argv[2], False)
elif sys.argv[1] == "rules_fixurls":
rstfiles_to_rules_xml(sys.argv[2], True)
+ elif sys.argv[1] == "diagnostics":
+ diagnostics_to_rules_xml(sys.argv[2])
else:
print_usage_and_exit()