This diagnostic is enabled by default.
Diagnostic text:
The text of this diagnostic is not controlled by Clang.
This diagnostic is enabled by default.
Diagnostic text:
The text of this diagnostic is not controlled by Clang.
This diagnostic is enabled by default.
Diagnostic text:
warning: input conversion stopped due to an input byte that does not belong to the input codeset UTF-8 |
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wall, -Wextra.
This diagnostic is enabled by default.
Diagnostic text:
warning: ‘objc_independent_class’ attribute may be put on a typedef only; attribute is ignored |
warning: ‘objc_independent_class’ attribute may be put on Objective-C object pointer type only; attribute is ignored |
This diagnostic is enabled by default.
Diagnostic text:
warning: ‘NSObject’ attribute may be put on a typedef only; attribute is ignored |
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
This diagnostic is enabled by default.
Diagnostic text:
warning: absolute value function A given an argument of type B but has parameter of type C which may cause truncation of value |
warning: taking the absolute value of |
|
type B is suspicious |
warning: taking the absolute value of unsigned type A has no effect |
warning: using |
integer |
floating point |
complex |
|
absolute value function A when argument is of |
integer |
floating point |
complex |
|
type |
This diagnostic is enabled by default.
Diagnostic text:
warning: abstract class is marked ‘ |
|
‘ |
Diagnostic text:
warning: initializer for virtual base class A of abstract class B will never be used |
This diagnostic is enabled by default.
Diagnostic text:
warning: pointer is initialized by a temporary array, which will be destroyed at the end of the full-expression |
This diagnostic is enabled by default.
Diagnostic text:
warning: taking address of packed member A of class or structure B may result in an unaligned pointer value |
This diagnostic is an error by default, but the flag -Wno-address-of-temporary
can be used to disable the error.
Diagnostic text:
error: taking the address of a temporary object of type A |
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
This diagnostic is an error by default, but the flag -Wno-aligned-allocation-unavailable
can be used to disable the error.
Diagnostic text:
error: aligned |
|
function of type ‘B’ is only available on C D or newer |
This diagnostic is enabled by default.
Diagnostic text:
warning: second argument to __builtin_alloca_with_align is supposed to be in bits |
This diagnostic is enabled by default.
Diagnostic text:
warning: multiple suitable A functions for B; no ‘operator delete’ function will be invoked if initialization throws an exception |
This diagnostic is enabled by default.
Diagnostic text:
warning: ’…’ in this location creates a C-style varargs function |
, not a function parameter pack |
|
|
This diagnostic is enabled by default.
Diagnostic text:
warning: ambiguous expansion of macro A |
This diagnostic is enabled by default.
Diagnostic text:
warning: lookup of A in member access expression is ambiguous; using member of B |
This diagnostic is enabled by default.
Diagnostic text:
warning: checker plugin ‘A’ is not compatible with this version of the analyzer |
This diagnostic is enabled by default.
Diagnostic text:
warning: ISO C++11 requires a parenthesized pack declaration to have a name |
This diagnostic is enabled by default.
Diagnostic text:
warning: ’A’ casts have no effect when not using ARC |
Diagnostic text:
warning: weak |
variable |
property |
implicit property |
instance variable |
|
B may be accessed multiple times in this |
function |
method |
block |
lambda |
|
and may be unpredictably set to nil; assign to a strong variable to keep the object alive |
This diagnostic is enabled by default.
Diagnostic text:
warning: |
destination for |
source of |
|
this B call is a pointer to ownership-qualified type C |
Also controls -Warc-maybe-repeated-use-of-weak.
Diagnostic text:
warning: weak |
variable |
property |
implicit property |
instance variable |
|
B is accessed multiple times in this |
function |
method |
block |
lambda |
|
but may be unpredictably set to nil; assign to a strong variable to keep the object alive |
This diagnostic is enabled by default.
Diagnostic text:
warning: capturing A strongly in this block is likely to lead to a retain cycle |
This diagnostic is enabled by default.
Diagnostic text:
warning: assigning |
array literal |
dictionary literal |
numeric literal |
boxed expression |
<should not happen> |
block literal |
|
to a weak |
|
; object will be released after assignment |
warning: assigning retained object to |
|
|
|
; object will be released after assignment |
warning: assigning retained object to unsafe property; object will be released after assignment |
This diagnostic is enabled by default.
Diagnostic text:
warning: array index A is past the end of the array (which contains B element |
|
) |
warning: array index A is before the beginning of the array |
warning: array argument is too small; contains A elements, callee requires at least B |
warning: ‘static’ has no effect on zero-length arrays |
Diagnostic text:
warning: the pointer incremented by A refers past the end of the array (that contains B element |
|
) |
warning: the pointer decremented by A refers before the beginning of the array |
This diagnostic is enabled by default.
Diagnostic text:
warning: ignored A qualifier on asm |
warning: meaningless ‘volatile’ on asm outside function |
This diagnostic is enabled by default.
Diagnostic text:
warning: value size does not match register size specified by the constraint and modifier |
Diagnostic text:
warning: integer constant not in range of enumerated type A |
This diagnostic is enabled by default.
Diagnostic text:
warning: the argument to A has side effects that will be discarded |
This diagnostic is enabled by default.
Diagnostic text:
warning: @protocol is using a forward protocol declaration of A |
This diagnostic is enabled by default.
Diagnostic text:
warning: memory order argument to atomic operation is invalid |
This diagnostic is enabled by default.
Diagnostic text:
warning: writable atomic property A cannot pair a synthesized |
|
with a user defined |
|
This diagnostic is enabled by default.
Diagnostic text:
warning: ‘packed’ attribute was ignored on bit-fields with single-byte alignment in older versions of GCC and Clang |
This diagnostic is enabled by default.
Diagnostic text:
warning: implicitly disabling vptr sanitizer because rtti wasn’t enabled |
Diagnostic text:
warning: treating # |
include |
import |
include_next |
__include_macros |
|
as an import of module ‘B’ |
This diagnostic is enabled by default.
Diagnostic text:
warning: ‘auto’ storage class specifier is not permitted in C++11, and will not be supported in future releases |
This diagnostic is enabled by default.
Diagnostic text:
warning: ‘auto’ deduced as ‘id’ in declaration of A |
This diagnostic is enabled by default.
Diagnostic text:
warning: ‘unavailable’ availability overrides all other availability information |
warning: unknown platform A in availability macro |
warning: feature cannot be |
introduced |
deprecated |
obsoleted |
|
in B version C before it was |
introduced |
deprecated |
obsoleted |
|
in version E; attribute ignored |
warning: use same version number separators ‘_’ or ‘.’; as in ‘major[.minor[.subminor]]’ |
warning: availability does not match previous declaration |
warning: |
|
method |
introduced after |
deprecated before |
obsoleted before |
|
|
the protocol method it implements |
overridden method |
|
on B (C vs. D) |
warning: |
|
method cannot be unavailable on A when |
the protocol method it implements |
its overridden method |
|
is available |
This diagnostic is enabled by default.
Diagnostic text:
The text of this diagnostic is not controlled by Clang.
This diagnostic is enabled by default.
Diagnostic text:
warning: backslash and newline separated by space |
Diagnostic text:
warning: cast from function call of type A to non-matching type B |
Also controls -Wc++98-compat-bind-to-temporary-copy.
Diagnostic text:
warning: C++98 requires an accessible copy constructor for class C when binding a reference to a temporary; was |
|
warning: no viable constructor |
copying variable |
copying parameter |
returning object |
throwing object |
copying member subobject |
copying array element |
allocating object |
copying temporary |
initializing base subobject |
initializing vector element |
capturing value |
|
of type B; C++98 requires a copy constructor when binding a reference to a temporary |
This diagnostic is enabled by default.
Diagnostic text:
warning: ISO C++17 does not permit structured binding declaration in a condition |
This diagnostic is enabled by default.
Diagnostic text:
warning: implicit truncation from C to bit-field changes value from A to B |
Diagnostic text:
warning: bit-field A is not wide enough to store all enumerators of B |
warning: signed bit-field A needs an extra bit to represent the largest positive enumerators of B |
warning: assigning value of signed enum type B to unsigned bit-field A; negative enumerators of enum B will be converted to positive values |
This diagnostic is enabled by default.
Diagnostic text:
warning: width of anonymous bit-field (A bits) exceeds width of its type; value will be truncated to B bit |
|
warning: width of bit-field A (B bits) exceeds the width of its type; value will be truncated to C bit |
|
This diagnostic is enabled by default.
Diagnostic text:
This diagnostic is enabled by default.
Diagnostic text:
warning: block captures an autoreleasing out-parameter, which may result in use-after-free bugs |
This diagnostic is enabled by default.
Diagnostic text:
warning: braces around scalar initializer |
This diagnostic is enabled by default.
Diagnostic text:
warning: A bridges to B, not C |
warning: A cannot bridge to B |
This diagnostic is enabled by default.
Diagnostic text:
warning: redefining builtin macro |
warning: undefining builtin macro |
This diagnostic is enabled by default.
Diagnostic text:
warning: A will always overflow destination buffer |
Diagnostic text:
warning: |
|
|
has size 0 in C, |
|
in C++ |
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wc++11-compat-deprecated-writable-strings, -Wc++11-compat-reserved-user-defined-literal, -Wc++11-narrowing, -Wc++98-c++11-c++14-c++17-compat, -Wc++98-c++11-c++14-compat, -Wc++98-c++11-compat.
Diagnostic text:
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 |
have type ‘long long’ |
be ill-formed |
|
in C++11 onwards |
warning: ‘auto’ storage class specifier is redundant and incompatible with C++11 |
warning: identifier after literal will be treated as a user-defined literal suffix in C++11 |
warning: ’A’ is a keyword in C++11 |
warning: use of right-shift operator (‘>>’) in template argument will require parentheses in C++11 |
warning: explicit instantiation cannot be ‘inline’ |
warning: explicit instantiation of A must occur at global scope |
warning: explicit instantiation of A not in a namespace enclosing B |
warning: explicit instantiation of A must occur in namespace B |
warning: integer literal is too large to be represented in type ‘long’, interpreting as ‘unsigned long’ per C++98; this literal will |
have type ‘long long’ |
be ill-formed |
|
in C++11 onwards |
This diagnostic is enabled by default.
Diagnostic text:
warning: conversion from string literal to A is deprecated |
Diagnostic text:
warning: identifier after literal will be treated as a reserved user-defined literal suffix in C++11 |
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wc++11-extra-semi, -Wc++11-inline-namespace, -Wc++11-long-long.
Diagnostic text:
warning: alias declarations are a C++11 extension |
warning: implicit conversion from array size expression of type A to |
|
type C is a C++11 extension |
warning: ‘auto’ type specifier is a C++11 extension |
warning: enumeration types with a fixed underlying type are a C++11 extension |
warning: |
|
function definitions are a C++11 extension |
warning: befriending enumeration type A is a C++11 extension |
warning: commas at the end of enumerator lists are a C++11 extension |
warning: explicit conversion functions are a C++11 extension |
warning: extern templates are a C++11 extension |
warning: range-based for loop is a C++11 extension |
warning: generalized initializer lists are a C++11 extension |
warning: use of enumeration in a nested name specifier is a C++11 extension |
warning: non-class friend type A is a C++11 extension |
warning: in-class initialization of non-static data member is a C++11 extension |
warning: ’A’ keyword 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 A in union is a C++11 extension |
warning: non-type template argument referring to |
|
B with internal linkage is a C++11 extension |
warning: ‘template’ keyword outside of a template |
warning: default template arguments for a function template are a C++11 extension |
warning: first declaration of |
class template |
class template partial |
variable template |
variable template partial |
function template |
member function |
static data member |
member class |
member enumeration |
|
specialization of B outside namespace C is a C++11 extension |
warning: ‘typename’ occurs outside of a template |
warning: unelaborated friend declaration is a C++11 extension; specify ‘ |
struct |
interface |
union |
class |
enum |
|
‘ to befriend B |
warning: variadic templates are a C++11 extension |
This diagnostic is enabled by default.
Diagnostic text:
warning: inline namespaces are a C++11 feature |
Diagnostic text:
warning: ‘long long’ is a C++11 extension |
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
error: |
case value |
enumerator value |
non-type template argument |
array size |
constexpr if condition |
|
|
cannot be narrowed from type C to D |
|
evaluates to C, which cannot be narrowed to type D |
|
|
error: constant expression evaluates to A which cannot be narrowed to type B |
error: type A cannot be narrowed to B in initializer list |
error: non-constant-expression cannot be narrowed from type A to B in initializer list |
warning: constant expression evaluates to A which cannot be narrowed to type B in C++11 |
warning: type A cannot be narrowed to B in initializer list in C++11 |
warning: non-constant-expression cannot be narrowed from type A to B in initializer list in C++11 |
Diagnostic text:
warning: binary integer literals are a C++14 extension |
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wc++14-binary-literal.
Diagnostic text:
warning: use of this statement in a constexpr |
|
is a C++14 extension |
warning: multiple return statements in constexpr function is a C++14 extension |
warning: variable declaration in a constexpr |
|
is a C++14 extension |
warning: type definition in a constexpr |
|
is a C++14 extension |
warning: use of the A attribute is a C++14 extension |
warning: ‘decltype(auto)’ type specifier is a C++14 extension |
warning: initialized lambda captures are a C++14 extension |
warning: variable templates are a C++14 extension |
This diagnostic is enabled by default.
Diagnostic text:
warning: mangled name of A will change in C++17 due to non-throwing exception specification in function signature |
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: ISO C++ standards before C++17 do not allow new expression for type A to use list-initialization |
warning: constexpr if is a C++17 extension |
warning: ‘constexpr’ on lambda expressions is a C++17 extension |
warning: use of the A attribute is a C++17 extension |
warning: decomposition declarations are a C++17 extension |
warning: pack fold expression is a C++17 extension |
warning: ‘begin’ and ‘end’ returning different types (A and B) is a C++17 extension |
warning: hexadecimal floating literals are a C++17 feature |
warning: ’ |
|
‘ initialization statements are a C++17 extension |
warning: inline variables are a C++17 extension |
warning: use of multiple declarators in a single using declaration is a C++17 extension |
warning: nested namespace definition is a C++17 extension; define each namespace separately |
warning: attributes on |
a namespace |
an enumerator |
|
declaration are a C++17 extension |
warning: capture of ‘*this’ by copy 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: default scope specifier for attributes is a C++17 extension |
warning: pack expansion of using declaration is a C++17 extension |
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: ’<=>’ is a single token in C++2a; add a space to avoid a change in behavior |
warning: ’A’ is a keyword in C++2a |
Some of the diagnostics controlled by this flag are enabled by default.
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 |
Diagnostic text:
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: ’<=>’ operator is incompatible with C++ standards before C++2a |
Also controls -Wc++98-c++11-c++14-c++17-compat.
Diagnostic text:
warning: invoking a pointer to a ‘const &’ member function on an rvalue is incompatible with C++ standards before C++2a |
Diagnostic text:
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: pack fold expression is incompatible with C++ standards before C++17 |
warning: |
|
initialization statements 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: by value capture of ‘*this’ is incompatible with C++ standards before C++17 |
warning: static_assert with no message is incompatible with C++ standards before C++17 |
warning: non-type template parameters declared with A are 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: default scope specifier for attributes 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: pack expansion using declaration is incompatible with C++ standards before C++17 |
warning: ‘begin’ and ‘end’ returning different types (A and B) is incompatible with C++ standards before C++17 |
Also controls -Wc++98-c++11-c++14-compat.
Diagnostic text:
warning: attributes on |
a namespace |
an enumerator |
|
declaration are incompatible with C++ standards before C++17 |
warning: hexadecimal floating literals are incompatible with C++ standards before C++17 |
Diagnostic text:
warning: use of this statement in a constexpr |
|
is incompatible with C++ standards before C++14 |
warning: multiple return statements in constexpr function is incompatible with C++ standards before C++14 |
warning: constexpr function with no return statements is incompatible with C++ standards before C++14 |
warning: variable declaration in a constexpr |
|
is incompatible with C++ standards before C++14 |
warning: type definition in a constexpr |
|
is incompatible with C++ standards before C++14 |
warning: ‘decltype(auto)’ type specifier is incompatible with C++ standards before C++14 |
warning: digit separators are incompatible with C++ standards before C++14 |
warning: initialized lambda captures are incompatible with C++ standards before C++14 |
warning: variable templates are incompatible with C++ standards before C++14 |
Diagnostic text:
warning: binary integer literals are incompatible with C++ standards before C++14 |
Also controls -Wc++98-c++11-c++14-c++17-compat, -Wc++98-c++11-c++14-compat, -Wc++98-c++11-compat, -Wc++98-compat-local-type-template-args, -Wc++98-compat-unnamed-type-template-args.
Diagnostic text:
warning: alias declarations are incompatible with C++98 |
warning: ‘alignas’ is incompatible with C++98 |
warning: alignof expressions are incompatible with C++98 |
warning: C++11 attribute syntax is incompatible with C++98 |
warning: ‘auto’ type specifier is incompatible with C++98 |
warning: ‘constexpr’ specifier is incompatible with C++98 |
warning: constructor call from initializer list is incompatible with C++98 |
warning: ‘decltype’ type specifier is incompatible with C++98 |
warning: |
|
function definitions are incompatible with C++98 |
warning: delegating constructors are incompatible with C++98 |
warning: scalar initialized from empty initializer list is incompatible with C++98 |
warning: enumeration types with a fixed underlying type are incompatible with C++98 |
warning: befriending enumeration type A is incompatible with C++98 |
warning: enumeration type in nested name specifier is incompatible with C++98 |
warning: explicit conversion functions are incompatible with C++98 |
warning: range-based for loop 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: 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: initialization of initializer_list object is incompatible with C++98 |
warning: inline namespaces are incompatible with C++98 |
warning: lambda expressions are incompatible with C++98 |
warning: ’<::’ is treated as digraph ‘<:’ (aka ‘[‘) followed by ‘:’ in C++98 |
warning: literal operators are incompatible with C++98 |
warning: universal character name referring to a control character is incompatible with C++98 |
warning: specifying character ‘A’ with a universal character name is incompatible with C++98 |
warning: noexcept specifications are incompatible with C++98 |
warning: noexcept expressions are incompatible with C++98 |
warning: use of non-static data member A in an unevaluated context is incompatible with C++98 |
warning: non-class friend type A is incompatible with C++98 |
warning: in-class initialization of non-static data members is incompatible with C++98 |
warning: |
|
member B with a non-trivial |
constructor |
copy constructor |
move constructor |
copy assignment operator |
move assignment operator |
destructor |
|
is incompatible with C++98 |
warning: ‘nullptr’ is incompatible with C++98 |
warning: ’A’ keyword is incompatible with C++98 |
warning: passing object of trivial but non-POD type A through variadic |
function |
block |
method |
constructor |
|
is incompatible with C++98 |
warning: raw string literals are incompatible with C++98 |
warning: reference qualifiers on functions are incompatible with C++98 |
warning: reference initialized from initializer list is incompatible with C++98 |
warning: rvalue references are incompatible with C++98 |
warning: scoped enumerations are incompatible with C++98 |
warning: substitution failure due to access control is incompatible with C++98 |
warning: static_assert declarations are incompatible with C++98 |
warning: static data member A in union is incompatible with C++98 |
warning: jump from switch statement to this case label is incompatible with C++98 |
warning: redundant parentheses surrounding address non-type template argument are incompatible with C++98 |
warning: use of null pointer as non-type template argument is incompatible with C++98 |
warning: non-type template argument referring to |
|
B with internal linkage is incompatible with C++98 |
warning: use of ‘template’ keyword outside of a template is incompatible with C++98 |
warning: default template arguments for a function template are incompatible with C++98 |
warning: |
class template |
class template partial |
variable template |
variable template partial |
function template |
member function |
static data member |
member class |
member enumeration |
|
specialization of B outside namespace C is incompatible with C++98 |
warning: trailing return types are incompatible with C++98 |
warning: consecutive right angle brackets are incompatible with C++98 (use ‘> >’) |
warning: use of ‘typename’ outside of a template is incompatible with C++98 |
warning: befriending B without ‘ |
struct |
interface |
union |
class |
enum |
|
‘ keyword is incompatible with C++98 |
warning: using this character in an identifier is incompatible with C++98 |
warning: unicode literals are incompatible with C++98 |
warning: ’A’ type specifier is incompatible with C++98 |
warning: inheriting constructors are incompatible with C++98 |
warning: variadic templates are incompatible with C++98 |
Diagnostic text:
warning: |
copying variable |
copying parameter |
returning object |
throwing object |
copying member subobject |
copying array element |
allocating object |
copying temporary |
initializing base subobject |
initializing vector element |
|
of type C when binding a reference to a temporary would |
invoke an inaccessible constructor |
find no viable constructor |
find ambiguous constructors |
invoke a deleted constructor |
|
in C++98 |
Diagnostic text:
warning: local type A as template argument is incompatible with C++98 |
Also controls -Wc++98-c++11-c++14-c++17-compat-pedantic, -Wc++98-c++11-c++14-compat-pedantic, -Wc++98-c++11-compat-pedantic, -Wc++98-compat, -Wc++98-compat-bind-to-temporary-copy.
Diagnostic text:
warning: implicit conversion from array size expression of type A to |
|
type C is incompatible with C++98 |
warning: cast between pointer-to-function and pointer-to-object is incompatible with C++98 |
warning: empty macro arguments are incompatible with C++98 |
warning: commas at the end of enumerator lists are incompatible with C++98 |
warning: extern templates are incompatible with C++98 |
warning: ‘long long’ is incompatible with C++98 |
warning: C++98 requires newline at end of file |
warning: #line number greater than 32767 is incompatible with C++98 |
warning: extra ‘;’ outside of a function is incompatible with C++98 |
warning: variadic macros are incompatible with C++98 |
Diagnostic text:
warning: unnamed type as template argument is incompatible with C++98 |
Diagnostic text:
warning: anonymous unions are a C11 extension |
warning: A is a C11-specific feature |
warning: anonymous structs are a C11 extension |
warning: generic selections are a C11-specific feature |
warning: _Noreturn functions are a C11-specific feature |
warning: _Static_assert is a C11-specific feature |
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: |
using this character in an identifier |
starting an identifier with this character |
|
is incompatible with C99 |
warning: unicode literals are incompatible with C99 |
warning: integer literal is too large to be represented in type ‘long’, interpreting as ‘unsigned long’ per C89; this literal will |
have type ‘long long’ |
be ill-formed |
|
in C99 onwards |
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: initializer for aggregate is not a compile-time constant |
warning: |
|
array size |
|
is a C99 feature |
warning: compound literals are a C99-specific feature |
warning: flexible array members are a C99 feature |
warning: variable declaration in for loop is a C99-specific feature |
warning: ISO C99 requires whitespace after the macro name |
warning: designated initializers are a C99 feature |
warning: empty macro arguments are a C99 feature |
warning: commas at the end of enumerator lists are a C99-specific feature |
warning: hexadecimal floating constants are a C99 feature |
Diagnostic text:
warning: cast from A to B increases required alignment from C to D |
This diagnostic is enabled by default.
Diagnostic text:
warning: cast between incompatible calling conventions ‘A’ and ‘B’; calls through this pointer may abort at runtime |
This diagnostic is enabled by default.
Diagnostic text:
warning: cast of type A to B is deprecated; use sel_getName instead |
Diagnostic text:
warning: cast from A to B drops |
const and volatile qualifiers |
const qualifier |
volatile qualifier |
|
warning: cast from A to B must have all intermediate pointers const qualified to be safe |
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
Diagnostic text:
warning: array section |
|
is of type ‘char’ |
warning: array subscript is of type ‘char’ |
This diagnostic is enabled by default.
Diagnostic text:
warning: support for ‘/Yc’ with more than one source file not implemented yet; flag ignored |
warning: support for ‘/Yc’ and ‘/Yu’ with different filenames not implemented yet; flags ignored |
warning: support for ‘A’ without a filename not implemented yet; flag ignored |
warning: support for ‘A’ without a corresponding /FI flag not implemented yet; flag ignored |
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wnon-pod-varargs.
Diagnostic text:
warning: passing object of class type A through variadic |
function |
block |
method |
constructor |
|
|
; did you mean to call ‘D’? |
|
|
Diagnostic text:
warning: possible misuse of comma operator here |
This diagnostic is enabled by default.
Diagnostic text:
warning: comparison of distinct pointer types |
Diagnostic text:
warning: complex initialization specifying real and imaginary components is an extension |
This diagnostic is enabled by default.
Diagnostic text:
warning: pointer/integer type mismatch in conditional expression |
Diagnostic text:
warning: variable A may be uninitialized when |
used here |
captured by block |
|
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
of configuration macro ‘B’ has no effect on the import of ‘C’; pass ‘ |
|
‘ on the command line to configure the module |
This diagnostic is enabled by default.
Also controls -Wbitfield-constant-conversion.
Diagnostic text:
warning: implicit conversion from C to D changes value from A to B |
This diagnostic is enabled by default.
Diagnostic text:
warning: use of logical ‘A’ with constant operand |
This diagnostic is enabled by default.
Diagnostic text:
warning: ‘constexpr’ non-static member function will not be implicitly ‘const’ in C++14; add ‘const’ to avoid a change in behavior |
Diagnostic text:
warning: consumed analysis attribute is attached to member of class ‘A’ which isn’t marked as consumable |
warning: state of variable ‘A’ must match at the entry and exit of loop |
warning: parameter ‘A’ not in expected state when the function returns: expected ‘B’, observed ‘C’ |
warning: argument not in expected state; expected ‘A’, observed ‘B’ |
warning: return state set for an unconsumable type ‘A’ |
warning: return value not in expected state; expected ‘A’, observed ‘B’ |
warning: invalid invocation of method ‘A’ on object ‘B’ while it is in the ‘C’ state |
warning: invalid invocation of method ‘A’ on a temporary object while it is in the ‘B’ state |
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wbitfield-enum-conversion, -Wbool-conversion, -Wconstant-conversion, -Wenum-conversion, -Wfloat-conversion, -Wint-conversion, -Wliteral-conversion, -Wnon-literal-null-conversion, -Wnull-conversion, -Wobjc-literal-conversion, -Wshorten-64-to-32, -Wsign-conversion, -Wstring-conversion.
Diagnostic text:
warning: implicit conversion discards imaginary component: A to B |
warning: implicit conversion loses floating-point precision: A to B |
warning: implicit conversion loses integer precision: A to B |
warning: implicit conversion turns vector to scalar: A to B |
warning: non-type template argument with value ‘A’ converted to ‘B’ for unsigned template parameter of type C |
warning: non-type template argument value ‘A’ truncated to ‘B’ for template parameter of type C |
This diagnostic is enabled by default.
Diagnostic text:
warning: A is required to declare the member ‘unhandled_exception()’ when exceptions are enabled |
Diagnostic text:
warning: default label in switch which covers all enumeration values |
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: A attribute parameter B is negative and will be ignored |
warning: nvcc does not allow ‘__A__’ to appear after ‘()’ in lambdas |
warning: ignored ‘inline’ attribute on kernel function A |
warning: kernel function A is a member function; this may not be accepted by nvcc |
warning: argument to ‘#pragma unroll’ should not be in parentheses in CUDA C/C++ |
Diagnostic text:
warning: atomic by default property A has a user defined |
|
(property should be marked ‘atomic’ if this is intended) |
This diagnostic is enabled by default.
Diagnostic text:
warning: add explicit braces to avoid dangling else |
This diagnostic is enabled by default.
Diagnostic text:
warning: binding reference member A to stack allocated parameter B |
warning: binding reference |
|
member A to a temporary value |
warning: initializing pointer member A with the stack address of parameter B |
This diagnostic is enabled by default.
Diagnostic text:
warning: array backing the initializer list will be destroyed at the end of |
the full-expression |
the constructor |
|
Diagnostic text:
warning: expansion of date or time macro is not reproducible |
This diagnostic is enabled by default.
Diagnostic text:
warning: -dealloc is being overridden in a category |
This diagnostic is enabled by default.
Diagnostic text:
warning: cannot compress debug sections (zlib not installed) |
Diagnostic text:
warning: ISO C90 forbids mixing declarations and code |
This diagnostic is an error by default, but the flag -Wno-delegating-ctor-cycles
can be used to disable the error.
Diagnostic text:
error: constructor for A creates a delegation cycle |
This diagnostic is enabled by default.
Diagnostic text:
warning: cannot delete expression with pointer-to-‘void’ type A |
warning: deleting pointer to incomplete type A may cause undefined behavior |
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: |
|
called on B that is abstract but has non-virtual destructor |
warning: |
|
called on non-final B that has virtual functions but non-virtual destructor |
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wdeprecated-attributes, -Wdeprecated-declarations, -Wdeprecated-dynamic-exception-spec, -Wdeprecated-increment-bool, -Wdeprecated-register, -Wdeprecated-writable-strings.
Diagnostic text:
warning: -O4 is equivalent to -O3 |
warning: access declarations are deprecated; use using declarations instead |
warning: definition of implicit copy |
constructor |
assignment operator |
|
for A is deprecated because it has a user-declared |
copy |
assignment operator |
constructor |
|
|
destructor |
|
warning: out-of-line definition of constexpr static data member is redundant in C++17 and is deprecated |
warning: argument ‘A’ is deprecated, use ‘B’ instead |
warning: treating ‘A’ input as ‘B’ when in C++ mode, this behavior is deprecated |
warning: OpenCL version A does not support the option ‘B’ |
warning: Use of ‘long’ with ‘__vector’ is deprecated |
This diagnostic is enabled by default.
Diagnostic text:
warning: specifying vector types with the ‘mode’ attribute is deprecated; use the ‘vector_size’ attribute instead |
This diagnostic is enabled by default.
Diagnostic text:
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 |
warning: A may be deprecated because the receiver type is unknown |
warning: A is deprecated: B |
warning: property access is using A method which is deprecated |
Diagnostic text:
warning: dynamic exception specifications are deprecated |
Diagnostic text:
warning: implementing deprecated |
|
warning: implementing unavailable method |
This diagnostic is enabled by default.
Diagnostic text:
warning: incrementing expression of type bool is deprecated and incompatible with C++17 |
This diagnostic is enabled by default.
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() |
This diagnostic is enabled by default.
Diagnostic text:
warning: ‘register’ storage class specifier is deprecated and incompatible with C++17 |
Diagnostic text:
warning: instance variable A is being directly accessed |
Diagnostic text:
warning: disabled expansion of recursive macro |
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
This diagnostic is enabled by default.
Diagnostic text:
warning: conflicting distributed object modifiers on parameter type in implementation of A |
warning: conflicting distributed object modifiers on return type in implementation of A |
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
by zero is undefined |
This diagnostic is enabled by default.
Diagnostic text:
warning: redeclaration of A should not add B attribute |
This diagnostic is enabled by default.
Diagnostic text:
warning: explicit instantiation declaration should not be ‘dllexport’ |
This diagnostic is enabled by default.
Diagnostic text:
warning: definition of dllimport static field |
Also controls -Wdocumentation-deprecated-sync, -Wdocumentation-html.
Diagnostic text:
warning: ’ |
|
class |
interface |
protocol |
struct |
union |
|
‘ command should not be used in a comment attached to a non- |
class |
interface |
protocol |
struct |
union |
|
declaration |
warning: duplicated command ‘ |
|
B’ |
warning: empty paragraph passed to ‘ |
|
B’ command |
warning: ’ |
|
classdesign |
coclass |
dependency |
helper |
helperclass |
helps |
instancesize |
ownership |
performance |
security |
superclass |
|
‘ command should not be used in a comment attached to a non-container declaration |
warning: ’ |
|
function |
functiongroup |
method |
methodgroup |
callback |
|
‘ command should be used in a comment attached to |
a function |
a function |
an Objective-C method |
an Objective-C method |
a pointer to function |
|
declaration |
warning: HTML start tag prematurely ended, expected attribute name or ‘>’ |
warning: expected quoted string after equals sign |
warning: parameter ‘A’ is already documented |
warning: unrecognized parameter passing direction, valid directions are ‘[in]’, ‘[out]’ and ‘[in,out]’ |
warning: ’ |
|
param’ command used in a comment that is not attached to a function declaration |
warning: parameter ‘A’ not found in the function declaration |
warning: ’ |
|
B’ command used in a comment that is attached to a |
function returning void |
constructor |
destructor |
method returning void |
|
warning: ’ |
|
B’ command used in a comment that is not attached to a function or method declaration |
warning: template parameter ‘A’ is already documented |
warning: ’ |
|
tparam’ command used in a comment that is not attached to a template declaration |
warning: template parameter ‘A’ not found in the template declaration |
warning: not a Doxygen trailing comment |
warning: ’ |
|
B’ command does not terminate a verbatim text block |
Diagnostic text:
warning: declaration is marked with ‘\deprecated’ command but does not have a deprecation attribute |
Diagnostic text:
warning: HTML end tag ‘A’ is forbidden |
warning: HTML end tag does not match any start tag |
warning: HTML tag ‘A’ requires an end tag |
warning: HTML start tag ‘A’ closed by ‘B’ |
Diagnostic text:
warning: unknown command tag name ‘A’; did you mean ‘B’? |
warning: unknown command tag name |
Diagnostic text:
warning: ’$’ in identifier |
This diagnostic is enabled by default.
Diagnostic text:
warning: duplicate ‘A’ declaration specifier |
warning: duplicate ‘A’ declaration specifier |
Diagnostic text:
warning: element A has been implicitly assigned B which another element has been assigned |
Diagnostic text:
warning: redeclaration of method parameter A |
Diagnostic text:
warning: multiple declarations of method A found and ignored |
This diagnostic is enabled by default.
Diagnostic text:
warning: duplicate protocol definition of A is ignored |
This diagnostic is enabled by default.
Diagnostic text:
warning: |
destination for |
source of |
first operand of |
second operand of |
|
this B call is a pointer to |
|
dynamic class D; vtable pointer will be |
overwritten |
copied |
moved |
compared |
|
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wdeprecated-dynamic-exception-spec.
Diagnostic text:
error: ISO C++17 does not allow dynamic exception specifications |
Diagnostic text:
warning: embedding a directive within macro arguments has undefined behavior |
This diagnostic is enabled by default.
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 |
This diagnostic is enabled by default.
Diagnostic text:
warning: ISO C++17 does not allow a decomposition group to be empty |
Diagnostic text:
warning: ISO C requires a translation unit to contain at least one declaration |
This diagnostic is enabled by default.
Diagnostic text:
warning: encoding of A type is incomplete because B component has unknown encoding |
This diagnostic is enabled by default.
Also controls -Wenum-compare-switch.
Diagnostic text:
warning: comparison of two values with different enumeration types |
This diagnostic is enabled by default.
Diagnostic text:
warning: comparison of two values with different enumeration types in switch statement |
This diagnostic is enabled by default.
Diagnostic text:
warning: implicit conversion from enumeration type A to different enumeration type B |
This diagnostic is enabled by default.
Diagnostic text:
warning: enumeration values exceed range of largest integer |
warning: incremented enumerator value A is not representable in the largest integer type |
This diagnostic is enabled by default.
Diagnostic text:
warning: cannot refer to a non-static member from the handler of a |
|
function try block |
warning: exception of type A will be caught by earlier handler |
warning: A has a non-throwing exception specification but can still throw |
Diagnostic text:
warning: declaration requires an exit-time destructor |
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: macro expansion producing ‘defined’ has undefined behavior |
warning: macro expansion producing ‘defined’ has undefined behavior |
This diagnostic is enabled by default.
Diagnostic text:
warning: -fexperimental-isel support for the ‘A’ architecture is incomplete |
warning: -fexperimental-isel support is incomplete for this architecture at the current optimization level |
This diagnostic is enabled by default.
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 |
Diagnostic text:
warning: method parameter of type A with no explicit ownership |
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
|
has size 0 in C, |
|
in C++ |
This diagnostic is enabled by default.
Diagnostic text:
warning: ‘extern’ variable has an initializer |
This diagnostic is enabled by default.
Diagnostic text:
warning: falling back to A |
This diagnostic is enabled by default.
Diagnostic text:
warning: enumeration value A is out of range of flags in enumeration type B |
Diagnostic text:
warning: A may not be used as an array element due to flexible array member |
warning: A may not be nested in a struct due to flexible array member |
Diagnostic text:
warning: comparing floating point with == or != is unsafe |
Diagnostic text:
warning: implicit conversion of out of range value from A to B changes value from C to D |
Diagnostic text:
warning: implicit conversion from A to B changes non-zero value from C to D |
Diagnostic text:
warning: variable A is |
|
both in the loop header and in the loop body |
warning: variable |
|
used in loop condition not modified in loop body |
Diagnostic text:
warning: multi-character character constant |
This diagnostic is enabled by default.
Diagnostic text:
The text of this diagnostic is not controlled by Clang.
warning: stack frame size of A bytes in B |
This diagnostic is enabled by default.
Diagnostic text:
warning: function definition inside an Objective-C container is deprecated |
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: ‘diagnose_if’ is a clang extension |
warning: ‘enable_if’ is a clang extension |
warning: __final is a GNU extension, consider using C++11 final |
warning: GCC does not allow A attribute in this position on a function definition |
warning: ‘break’ is bound to loop, GCC binds it to switch |
warning: GCC does not allow the ‘cleanup’ attribute argument to be anything other than a simple identifier |
warning: GCC does not allow an attribute in this position on a function declaration |
warning: ’A’ is bound to current loop, GCC binds it to the enclosing loop |
Diagnostic text:
warning: declaration requires a global constructor |
warning: declaration requires a global destructor |
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wgnu-alignof-expression, -Wgnu-anonymous-struct, -Wgnu-auto-type, -Wgnu-binary-literal, -Wgnu-case-range, -Wgnu-complex-integer, -Wgnu-compound-literal-initializer, -Wgnu-conditional-omitted-operand, -Wgnu-designator, -Wgnu-empty-initializer, -Wgnu-empty-struct, -Wgnu-flexible-array-initializer, -Wgnu-flexible-array-union-member, -Wgnu-folding-constant, -Wgnu-imaginary-constant, -Wgnu-include-next, -Wgnu-label-as-value, -Wgnu-redeclared-enum, -Wgnu-statement-expression, -Wgnu-static-float-init, -Wgnu-string-literal-operator-template, -Wgnu-union-cast, -Wgnu-variable-sized-type-not-at-end, -Wgnu-zero-line-directive, -Wgnu-zero-variadic-macro-arguments, -Wredeclared-class-member, -Wvla-extension, -Wzero-length-array.
This diagnostic is enabled by default.
Diagnostic text:
warning: A applied to an expression is a GNU extension |
Diagnostic text:
warning: anonymous structs are a GNU extension |
This diagnostic is an error by default, but the flag -Wno-gnu-array-member-paren-init
can be used to disable the error.
Diagnostic text:
error: parenthesized initialization of a member array is a GNU extension |
Diagnostic text:
warning: ‘__auto_type’ is a GNU extension |
Diagnostic text:
warning: binary integer literals are a GNU extension |
Diagnostic text:
warning: use of GNU case range extension |
Diagnostic text:
warning: complex integer types are a GNU extension |
Diagnostic text:
warning: initialization of an array from a compound literal is a GNU extension |
Diagnostic text:
warning: use of GNU ?: conditional expression extension, omitting middle operand |
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: use of GNU array range extension |
warning: use of GNU ‘missing =’ extension in designator |
warning: use of GNU old-style field designator extension |
Diagnostic text:
warning: use of GNU empty initializer extension |
Diagnostic text:
warning: empty |
|
is a GNU extension |
warning: flexible array member A in otherwise empty |
struct |
interface |
union |
class |
enum |
|
is a GNU extension |
warning: |
|
without named members is a GNU extension |
Diagnostic text:
warning: flexible array initialization is a GNU extension |
Diagnostic text:
warning: flexible array member A in a union is a GNU extension |
Diagnostic text:
warning: expression is not an |
|
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 |
Diagnostic text:
warning: imaginary constants are a GNU extension |
Diagnostic text:
warning: #include_next is a language extension |
Diagnostic text:
warning: use of GNU address-of-label extension |
warning: use of GNU indirect-goto extension |
Diagnostic text:
warning: redeclaration of already-defined enum A is a GNU extension |
Diagnostic text:
warning: use of GNU statement expression extension |
This diagnostic is enabled by default.
Diagnostic text:
warning: in-class initializer for static data member of type A is a GNU extension |
This diagnostic is enabled by default.
Diagnostic text:
warning: string literal operator templates are a GNU extension |
Diagnostic text:
warning: cast to union type is a GNU extension |
This diagnostic is enabled by default.
Diagnostic text:
warning: field A with variable sized type B not at the end of a struct or class is a GNU extension |
Diagnostic text:
warning: #line directive with zero argument is a GNU extension |
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 |
Diagnostic text:
warning: using the result of an assignment as a condition without parentheses |
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
will always resolve to A even if weak definition of B is overridden |
warning: |
|
will not be in section ‘A’ but in the same section as the |
|
warning: ‘abi_tag’ attribute on |
|
namespace ignored |
warning: attribute A after definition is ignored |
warning: A attribute can only be applied to instance variables or properties |
warning: A attribute ignored |
warning: A attribute ignored for field of type B |
warning: A attribute ignored on inline function |
warning: ’A’ attribute cannot be specified on a definition |
warning: attribute A ignored, because it is not attached to a declaration |
warning: ‘nonnull’ attribute applied to function with no pointer arguments |
warning: ‘nonnull’ attribute when used on parameters takes no arguments |
warning: A attribute ignored when parsing type |
warning: A attribute only applies to a pointer or reference (B is invalid) |
warning: A attribute only applies to |
|
pointer arguments |
warning: attribute declaration must precede definition |
warning: A attribute only applies to return values that are pointers |
warning: A attribute only applies to return values that are pointers or references |
warning: ‘sentinel’ attribute requires named arguments |
warning: ‘sentinel’ attribute only supported for variadic |
|
warning: A attribute argument not supported: B |
warning: unknown visibility A |
warning: attribute A cannot be applied to |
functions |
Objective-C method |
|
without return value |
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: A attribute only applies to |
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 |
variables, functions, methods, types, enumerations, enumerators, labels, and non-static data members |
|
warning: A attribute only applies to B |
warning: attribute A ignored, because it cannot be applied to omitted return type |
warning: calling convention A ignored for this target |
warning: A calling convention ignored on constructor/destructor |
warning: A calling convention ignored on variadic function |
warning: attribute A ignored, because it cannot be applied to a type |
warning: attribute A is ignored, place it after “ |
class |
struct |
interface |
union |
enum |
|
” to apply attribute to type declaration |
warning: ‘deprecated’ attribute on anonymous namespace ignored |
warning: A redeclared inline; B attribute ignored |
warning: attribute A is already applied with different parameters |
warning: attribute A is already applied |
warning: Objective-C GC does not allow weak variables on the stack |
warning: ‘gnu_inline’ attribute requires function to be marked ‘inline’, attribute ignored |
warning: inheritance model ignored on |
primary template |
partial specialization |
|
warning: ‘internal_linkage’ attribute on a non-static local variable is ignored |
warning: qualifiers after comma in declarator list are ignored |
warning: MIPS ‘interrupt’ attribute only applies to functions that have |
no parameters |
a ‘void’ return type |
|
warning: unknown attribute ‘A’ |
warning: A attribute only applies to |
Objective-C object |
pointer |
pointer-to-CF-pointer |
|
parameters |
warning: A attribute only applies to |
functions |
methods |
properties |
|
that return |
an Objective-C object |
a pointer |
a non-retainable pointer |
|
warning: A attribute is deprecated and ignored in OpenCL version B |
warning: |
|
of field B (C bits) does not match the |
|
of the first field in transparent union; transparent_union attribute ignored |
warning: first field of a transparent union cannot have |
|
type B; transparent_union attribute ignored |
warning: transparent_union attribute can only be applied to a union definition; attribute ignored |
warning: transparent union definition must contain at least one field; transparent_union attribute ignored |
warning: ’A’ only applies to |
function |
pointer |
Objective-C object or block pointer |
|
types; type here is C |
warning: __declspec attribute A is not supported |
warning: ignoring |
|
|
’C’ in the target attribute string |
This diagnostic is enabled by default.
Diagnostic text:
warning: optimization flag ‘A’ is not supported for target ‘B’ |
warning: optimization flag ‘A’ is not supported |
This diagnostic is enabled by default.
Diagnostic text:
warning: A is not a recognized builtin |
|
; consider including <intrin.h> to access non-builtin intrinsics |
|
This diagnostic is enabled by default.
Also controls -Wignored-pragma-intrinsic.
Diagnostic text:
warning: expected ‘=’ following ‘#pragma |
|
‘ - ignored |
warning: invalid alignment option in ‘#pragma |
|
‘ - ignored |
warning: OpenCL extension end directive mismatches begin directive - ignoring |
warning: ’#pragma comment A’ ignored |
warning: missing argument to debug command ‘A’ |
warning: unexpected debug command ‘A’ |
warning: expected action or ‘)’ in ‘#pragma A’ - ignored |
warning: missing ‘:’ after A - ignoring |
warning: missing ‘:’ or ‘)’ after A - ignoring |
warning: expected identifier in ‘#pragma A’ - ignored |
warning: expected ‘compiler’, ‘lib’, ‘user’, or a string literal for the section name in ‘#pragma A’ - ignored |
warning: expected integer between A and B inclusive in ‘#pragma C’ - ignored |
warning: missing ‘(‘ after ‘#pragma A’ - ignoring |
warning: expected non-wide string literal in ‘#pragma A’ |
warning: expected |
‘enable’, ‘disable’, ‘begin’ or ‘end’ |
‘disable’ |
|
- ignoring |
warning: expected ‘)’ or ‘,’ in ‘#pragma A’ |
warning: missing ‘)’ after ‘#pragma A’ - ignoring |
warning: expected a stack label or a string literal for the section name in ‘#pragma A’ - ignored |
warning: expected a string literal for the section name in ‘#pragma A’ - ignored |
warning: expected push, pop or a string literal for the section name in ‘#pragma A’ - ignored |
warning: extra tokens at end of ‘#pragma A’ - ignored |
warning: incorrect use of #pragma clang force_cuda_host_device begin|end |
warning: ’#pragma init_seg’ is only supported when targeting a Microsoft environment |
warning: unknown action for ‘#pragma A’ - ignored |
warning: unknown action ‘B’ for ‘#pragma A’ - ignored |
warning: incorrect use of ‘#pragma ms_struct on|off’ - ignored |
warning: #pragma options align=reset failed: A |
warning: expected ‘align’ following ‘#pragma options’ - ignored |
warning: expected #pragma pack parameter to be ‘1’, ‘2’, ‘4’, ‘8’, or ‘16’ |
warning: expected integer or identifier in ‘#pragma pack’ - ignored |
warning: #pragma A(pop, …) failed: B |
warning: pragma pop_macro could not pop ‘A’, no matching push_macro |
warning: unknown OpenCL extension A - ignoring |
warning: known but unsupported action ‘B’ for ‘#pragma A’ - ignored |
warning: unsupported OpenCL extension A - ignoring |
warning: expected ‘#pragma unused’ argument to be a variable name |
warning: only variables can be arguments to ‘#pragma unused’ |
warning: undeclared variable A used as an argument for ‘#pragma unused’ |
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: ARC |
unused |
__unsafe_unretained |
__strong |
__weak |
__autoreleasing |
|
lifetime qualifier on return type is ignored |
warning: ’A’ qualifier on omitted return type B has no effect |
warning: ’A’ type qualifier |
|
on return type |
|
no effect |
warning: ’A’ qualifier on function type B has no effect |
warning: ’A’ qualifier on reference type B has no effect |
Diagnostic text:
warning: property is assumed atomic when auto-synthesizing the property |
warning: property is assumed atomic by default |
This diagnostic is enabled by default.
Diagnostic text:
warning: implicit conversion turns floating-point number into bool: A to B |
This diagnostic is enabled by default.
Diagnostic text:
warning: function previously declared with an |
|
exception specification redeclared with an |
|
exception specification |
Also controls -Wimplicit-fallthrough-per-function.
Diagnostic text:
warning: fallthrough annotation in unreachable code |
warning: unannotated fall-through between switch labels |
Diagnostic text:
warning: unannotated fall-through between switch labels in partly-annotated function |
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: implicit declaration of function A is invalid in |
|
warning: implicitly declaring library function ‘A’ with type B |
error: use of unknown builtin A |
warning: implicit declaration of function A |
This diagnostic is enabled by default.
Diagnostic text:
warning: type specifier missing, defaults to ‘int’ |
Diagnostic text:
warning: block implicitly retains ‘self’; explicitly mention ‘self’ to indicate this is intended behavior |
This diagnostic is enabled by default.
Diagnostic text:
warning: integer literal is too large to be represented in a signed integer type, interpreting as unsigned |
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
Diagnostic text:
warning: #import is a language extension |
This diagnostic is enabled by default.
Diagnostic text:
warning: direct base A is inaccessible due to ambiguity:B |
This diagnostic is enabled by default.
Diagnostic text:
warning: #include_next with absolute path |
This diagnostic is enabled by default.
Diagnostic text:
warning: exception specifications of |
|
types differ |
warning: target exception specification is not superset of source |
This diagnostic is enabled by default.
Diagnostic text:
warning: incompatible function pointer types |
assigning to different types |
passing to parameter of different type |
returning from function with different return type |
converting between types |
initializing with expression of different type |
sending to parameter of different type |
casting between types |
|
|
; dereference with * |
; take the address with & |
; remove * |
; remove & |
|
This diagnostic is enabled by default.
Diagnostic text:
warning: incompatible redeclaration of library function A |
This diagnostic is an error by default, but the flag -Wno-incompatible-ms-struct
can be used to disable the error.
Diagnostic text:
error: ms_struct may not produce Microsoft-compatible layouts for classes with base classes or virtual functions |
This diagnostic is enabled by default.
Also controls -Wincompatible-function-pointer-types, -Wincompatible-pointer-types-discards-qualifiers.
Diagnostic text:
warning: incompatible pointer types |
assigning to different types |
passing to parameter of different type |
returning from function with different return type |
converting between types |
initializing with expression of different type |
sending to parameter of different type |
casting between types |
|
|
; dereference with * |
; take the address with & |
; remove * |
; remove & |
|
This diagnostic is enabled by default.
Diagnostic text:
warning: |
assigning to different types |
passing to parameter of different type |
returning from function with different return type |
converting between types |
initializing with expression of different type |
sending to parameter of different type |
casting between types |
|
discards qualifiers in nested pointer types |
warning: |
assigning to different types |
passing to parameter of different type |
returning from function with different return type |
converting between types |
initializing with expression of different type |
sending to parameter of different type |
casting between types |
|
discards qualifiers |
This diagnostic is enabled by default.
Diagnostic text:
warning: property type A is incompatible with type B inherited from C |
This diagnostic is enabled by default.
Diagnostic text:
warning: using sysroot for ‘A’ but targeting ‘B’ |
This diagnostic is enabled by default.
Diagnostic text:
warning: method definition for A not found |
This diagnostic is enabled by default.
Diagnostic text:
warning: missing submodule ‘A’ |
warning: umbrella directory ‘A’ not found |
warning: umbrella header for module ‘A’ does not include header ‘B’ |
This diagnostic is enabled by default.
Diagnostic text:
warning: A redeclared without B attribute: previous B ignored |
warning: A redeclared without ‘dllimport’ attribute: ‘dllexport’ attribute added |
Diagnostic text:
warning: A overrides a destructor but is not marked ‘override’ |
This diagnostic is enabled by default.
Diagnostic text:
warning: A overrides a member function but is not marked ‘override’ |
This diagnostic is enabled by default.
Also controls -Wdeprecated-increment-bool.
Diagnostic text:
error: ISO C++17 does not allow incrementing expression of type bool |
Diagnostic text:
warning: all paths through this function will call itself |
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
This diagnostic is enabled by default.
Diagnostic text:
warning: initializer overrides prior initialization of this subobject |
warning: subobject initialization overrides initialization of other fields within its enclosing subobject |
This diagnostic is enabled by default.
Diagnostic text:
warning: ISO C++ specifies that qualified reference to A is a constructor name rather than a |
|
in this context, despite preceding |
|
keyword |
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
This diagnostic is enabled by default.
Diagnostic text:
The text of this diagnostic is not controlled by Clang.
This diagnostic is enabled by default.
Diagnostic text:
warning: replacement function A cannot be declared ‘inline’ |
This diagnostic is enabled by default.
Diagnostic text:
warning: explicit instantiation of A that occurs after an explicit specialization has no effect |
This diagnostic is enabled by default.
Diagnostic text:
warning: incompatible integer to pointer conversion |
assigning to different types |
passing to parameter of different type |
returning from function with different return type |
converting between types |
initializing with expression of different type |
sending to parameter of different type |
casting between types |
|
|
; dereference with * |
; take the address with & |
; remove * |
; remove & |
|
warning: incompatible pointer to integer conversion |
assigning to different types |
passing to parameter of different type |
returning from function with different return type |
converting between types |
initializing with expression of different type |
sending to parameter of different type |
casting between types |
|
|
; dereference with * |
; take the address with & |
; remove * |
; remove & |
|
This diagnostic is enabled by default.
Also controls -Wint-to-void-pointer-cast.
Diagnostic text:
warning: cast to B from smaller integer type A |
This diagnostic is enabled by default.
Diagnostic text:
warning: cast to B from smaller integer type A |
This diagnostic is enabled by default.
Diagnostic text:
warning: overflow in expression; result is A with type B |
This diagnostic is enabled by default.
Also controls -Wignored-optimization-argument.
Diagnostic text:
warning: the object size sanitizer has no effect at -O0, but is explicitly enabled: A |
warning: optimization level ‘A’ is not supported; using ‘BC’ instead |
This diagnostic is an error by default, but the flag -Wno-invalid-constexpr
can be used to disable the error.
Diagnostic text:
error: constexpr |
|
never produces a constant expression |
This diagnostic is enabled by default.
Diagnostic text:
warning: |
instance variable |
property |
|
with A attribute must be an object type (invalid B) |
warning: IBOutletCollection properties should be copy/strong and not assign |
This diagnostic is an error by default, but the flag -Wno-invalid-ios-deployment-target
can be used to disable the error.
Diagnostic text:
error: invalid iOS deployment version ‘A’, iOS 10 is the maximum deployment target for 32-bit targets |
This diagnostic is enabled by default.
Diagnostic text:
warning: function declared ‘noreturn’ should not return |
warning: function A declared ‘noreturn’ should not return |
This diagnostic is enabled by default.
Diagnostic text:
warning: offset of on non-POD type A |
warning: offset of on non-standard-layout type A |
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: environment variable SCE_ORBIS_SDK_DIR is set, but points to invalid or nonexistent directory ‘A’ |
warning: unable to find A directory, expected to be in ‘B’ |
This diagnostic is an error by default, but the flag -Wno-invalid-partial-specialization
can be used to disable the error.
Diagnostic text:
error: |
|
template partial specialization is not more specialized than the primary template |
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
This diagnostic is enabled by default.
Diagnostic text:
warning: empty character constant |
warning: missing terminating |
|
character |
This diagnostic is enabled by default.
Diagnostic text:
warning: illegal character encoding in character literal |
warning: illegal character encoding in string literal |
This diagnostic is an error by default, but the flag -Wno-invalid-token-paste
can be used to disable the error.
Diagnostic text:
error: pasting formed ‘A’, an invalid preprocessing token |
This diagnostic is enabled by default.
Diagnostic text:
warning: jump out of __finally block has undefined behavior |
This diagnostic is enabled by default.
Diagnostic text:
warning: keyword ‘A’ will be made available as an identifier |
here |
for the remainder of the translation unit |
|
Diagnostic text:
warning: keyword is hidden by macro definition |
This diagnostic is enabled by default.
Diagnostic text:
warning: A is a large (B bytes) pass-by-value argument; pass it by reference instead ? |
warning: return value of A is a large (B bytes) pass-by-value object; pass it by reference instead ? |
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
This diagnostic is enabled by default.
Diagnostic text:
warning: implicit conversion from A to B changes value from C to D |
This diagnostic is enabled by default.
Diagnostic text:
warning: magnitude of floating-point constant too large for type A; maximum is B |
warning: magnitude of floating-point constant too small for type A; minimum is B |
This diagnostic is enabled by default.
Diagnostic text:
warning: logical not is only applied to the left hand side of this |
comparison |
bitwise operator |
|
This diagnostic is enabled by default.
Diagnostic text:
warning: ’&&’ within ‘||’ |
Also controls -Wc++11-long-long.
Diagnostic text:
warning: ‘long long’ is an extension when C99 mode is not enabled |
This diagnostic is enabled by default.
Diagnostic text:
warning: A macro redefined |
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: ISO C++ does not allow ‘main’ to be used by a program |
warning: ‘main’ is not allowed to be declared _Noreturn |
warning: ‘main’ is not allowed to be declared variadic |
warning: only one parameter on ‘main’ declaration |
warning: variable named ‘main’ with external linkage has undefined behavior |
warning: bool literal returned from ‘main’ |
warning: ‘main’ should not be declared static |
This diagnostic is enabled by default.
Diagnostic text:
warning: return type of ‘main’ is not ‘int’ |
This diagnostic is enabled by default.
Diagnostic text:
warning: too many braces around scalar initializer |
This diagnostic is enabled by default.
Diagnostic text:
warning: taking the max of |
a value and unsigned zero |
unsigned zero and a value |
|
is always equal to the other value |
This diagnostic is enabled by default.
Diagnostic text:
warning: size argument in A call is a comparison |
Diagnostic text:
warning: conflicting parameter types in implementation of A: B vs C |
warning: conflicting return type in implementation of A: B vs C |
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Winconsistent-dllimport, -Wmicrosoft-anon-tag, -Wmicrosoft-cast, -Wmicrosoft-charize, -Wmicrosoft-comment-paste, -Wmicrosoft-const-init, -Wmicrosoft-cpp-macro, -Wmicrosoft-default-arg-redefinition, -Wmicrosoft-end-of-file, -Wmicrosoft-enum-forward-reference, -Wmicrosoft-enum-value, -Wmicrosoft-exception-spec, -Wmicrosoft-explicit-constructor-call, -Wmicrosoft-extra-qualification, -Wmicrosoft-fixed-enum, -Wmicrosoft-flexible-array, -Wmicrosoft-goto, -Wmicrosoft-include, -Wmicrosoft-mutable-reference, -Wmicrosoft-pure-definition, -Wmicrosoft-redeclare-static, -Wmicrosoft-sealed, -Wmicrosoft-template, -Wmicrosoft-union-member-reference, -Wmicrosoft-unqualified-friend, -Wmicrosoft-using-decl, -Wmicrosoft-void-pseudo-dtor.
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: types declared in an anonymous |
|
are a Microsoft extension |
warning: anonymous |
|
are a Microsoft extension |
This diagnostic is enabled by default.
Diagnostic text:
warning: static_cast between pointer-to-function and pointer-to-object is a Microsoft extension |
warning: implicit conversion between pointer-to-function and pointer-to-object is a Microsoft extension |
Diagnostic text:
warning: charizing operator #@ is a Microsoft extension |
This diagnostic is enabled by default.
Diagnostic text:
warning: default initialization of an object of const type A |
|
without a user-provided default constructor |
|
is a Microsoft extension |
Diagnostic text:
warning: C++ operator A (aka B) used as a macro name |
This diagnostic is enabled by default.
Diagnostic text:
warning: redefinition of default argument |
Diagnostic text:
warning: treating Ctrl-Z as end-of-file is a Microsoft extension |
This diagnostic is enabled by default.
Diagnostic text:
warning: forward references to ‘enum’ types are a Microsoft extension |
Diagnostic text:
warning: enumerator value is not representable in the underlying type A |
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: exception specification of ‘…’ is a Microsoft extension |
warning: |
|
incomplete type B 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: A is missing exception specification ‘B’ |
warning: exception specification of overriding function is more lax than base version |
This diagnostic is enabled by default.
Diagnostic text:
warning: dependent |
__if_not_exists |
__if_exists |
|
declarations are ignored |
This diagnostic is enabled by default.
Diagnostic text:
warning: explicit constructor calls are a Microsoft extension |
Diagnostic text:
warning: enumeration types with a fixed underlying type are a Microsoft extension |
Diagnostic text:
warning: flexible array member A in otherwise empty |
struct |
interface |
union |
class |
enum |
|
is a Microsoft extension |
warning: flexible array member A in a union is a Microsoft extension |
This diagnostic is enabled by default.
Diagnostic text:
warning: jump from this goto statement to its label is a Microsoft extension |
This diagnostic is enabled by default.
Diagnostic text:
warning: accessing inaccessible direct base A of B is a Microsoft extension |
This diagnostic is enabled by default.
Diagnostic text:
warning: #include resolved using non-portable Microsoft search rules as: A |
This diagnostic is enabled by default.
Diagnostic text:
warning: ‘mutable’ on a reference type is a Microsoft extension |
This diagnostic is enabled by default.
Diagnostic text:
warning: function definition with pure-specifier is a Microsoft extension |
Diagnostic text:
warning: redeclaring non-static A as static is a Microsoft extension |
This diagnostic is enabled by default.
Diagnostic text:
warning: ‘sealed’ keyword is a Microsoft extension |
This diagnostic is enabled by default.
Diagnostic text:
warning: duplicate explicit instantiation of A ignored as a Microsoft extension |
warning: use of identifier A found via unqualified lookup into dependent bases of class templates is a Microsoft extension |
warning: explicit specialization of A within class scope is a Microsoft extension |
warning: using the undeclared type A as a default template argument is a Microsoft extension |
warning: non-type template argument containing a dereference operation is a Microsoft extension |
warning: |
class template |
class template partial |
variable template |
variable template partial |
function template |
member function |
static data member |
member class |
member enumeration |
|
specialization of B outside namespace enclosing C is a Microsoft extension |
warning: template argument for template type parameter must be a type; omitted ‘typename’ is a Microsoft extension |
warning: use of undeclared identifier A; unqualified lookup into dependent bases of class template B is a Microsoft extension |
This diagnostic is enabled by default.
Diagnostic text:
warning: union member A has reference type B, which is a Microsoft extension |
This diagnostic is enabled by default.
Diagnostic text:
warning: unqualified friend declaration referring to type outside of the nearest enclosing namespace is a Microsoft extension; add a nested name specifier |
This diagnostic is enabled by default.
Diagnostic text:
warning: using declaration referring to inaccessible member ‘A’ (which refers to accessible member ‘B’) is a Microsoft compatibility extension |
This diagnostic is enabled by default.
Diagnostic text:
warning: pseudo-destructors on type void are a Microsoft extension |
This diagnostic is enabled by default.
Diagnostic text:
warning: ‘delete |
|
‘ applied to a pointer that was allocated with ‘new |
|
‘; did you mean ‘delete |
|
‘? |
This diagnostic is enabled by default.
Diagnostic text:
warning: conflicting parameter types in implementation of A |
This diagnostic is enabled by default.
Diagnostic text:
warning: conflicting return type in implementation of A |
Diagnostic text:
warning: suggest braces around initialization of subobject |
This diagnostic is enabled by default.
Diagnostic text:
warning: declaration does not declare anything |
warning: ’A’ is not permitted on a declaration of a type |
warning: typedef requires a name |
warning: ’A’ ignored on this declaration |
This diagnostic is enabled by default.
Diagnostic text:
warning: A is missing exception specification ‘B’ |
Diagnostic text:
warning: missing field A initializer |
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
Diagnostic text:
warning: method has no return type specified; defaults to ‘id’ |
This diagnostic is enabled by default.
Diagnostic text:
warning: parameter of overriding method should be annotated with __attribute__((noescape)) |
Diagnostic text:
warning: block could be declared with attribute ‘noreturn’ |
warning: |
|
B could be declared with attribute ‘noreturn’ |
This diagnostic is enabled by default.
Diagnostic text:
warning: function with no prototype cannot use the A calling convention |
Diagnostic text:
warning: no previous prototype for function A |
This diagnostic is enabled by default.
Diagnostic text:
warning: A used as the name of the previous parameter rather than as part of the selector |
This diagnostic is enabled by default.
Diagnostic text:
warning: no such sysroot directory: ‘A’ |
Diagnostic text:
warning: no previous extern declaration for non-static variable A |
Diagnostic text:
building module ‘A’ as ‘B’ |
finished building module ‘A’ |
could not acquire lock file for module ‘A’: B |
timed out waiting to acquire lock file for module ‘A’ |
This diagnostic is enabled by default.
Diagnostic text:
warning: module ‘A’ conflicts with already-imported module ‘B’: C |
warning: module file ‘A’ was validated as a system module and is now being imported as a non-system module; any difference in diagnostic options will be ignored |
This diagnostic is an error by default, but the flag -Wno-module-file-config-mismatch
can be used to disable the error.
Diagnostic text:
error: module file A cannot be loaded due to a configuration mismatch with the current compilation |
This diagnostic is enabled by default.
Diagnostic text:
warning: duplicate module file extension block name ‘A’ |
This diagnostic is an error by default, but the flag -Wno-module-import-in-extern-c
can be used to disable the error.
Diagnostic text:
error: import of C++ module ‘A’ appears within extern “C” language linkage specification |
This diagnostic is enabled by default.
Diagnostic text:
warning: ambiguous use of internal linkage declaration A defined in multiple modules |
This diagnostic is an error by default, but the flag -Wno-modules-import-nested-redundant
can be used to disable the error.
Diagnostic text:
error: redundant #include of module ‘A’ appears within B |
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wcast-of-sel-type, -Wchar-subscripts, -Wcomment, -Wdelete-non-virtual-dtor, -Wextern-c-compat, -Wfor-loop-analysis, -Wformat, -Wimplicit, -Winfinite-recursion, -Wmismatched-tags, -Wmissing-braces, -Wmove, -Wmultichar, -Wobjc-designated-initializers, -Wobjc-flexible-array, -Wobjc-missing-super-calls, -Woverloaded-virtual, -Wprivate-extern, -Wreorder, -Wreturn-type, -Wself-assign, -Wself-move, -Wsizeof-array-argument, -Wsizeof-array-decay, -Wstring-plus-int, -Wtrigraphs, -Wuninitialized, -Wunknown-pragmas, -Wunused, -Wuser-defined-warnings, -Wvolatile-register-var.
This diagnostic is enabled by default.
Diagnostic text:
warning: unable to find a Visual Studio installation; try running Clang from a developer command prompt |
This diagnostic is enabled by default.
Diagnostic text:
warning: multi-character character constant |
This diagnostic is enabled by default.
Diagnostic text:
warning: defaulted move assignment operator of A will move assign virtual base class B multiple times |
Diagnostic text:
warning: anonymous types declared in an anonymous |
|
are an extension |
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
This diagnostic is enabled by default.
Diagnostic text:
warning: A should not return a null pointer unless it is declared ‘throw()’ |
|
Diagnostic text:
warning: no newline at end of file |
warning: no newline at end of file |
This diagnostic is enabled by default.
Diagnostic text:
warning: expression which evaluates to zero treated as a null pointer constant of type A |
Diagnostic text:
warning: include of non-modular header inside framework module ‘A’: ‘B’ |
This diagnostic is an error by default, but the flag -Wno-non-pod-varargs
can be used to disable the error.
Diagnostic text:
error: cannot pass object of |
|
type B through variadic |
function |
block |
method |
constructor |
|
; call will abort at runtime |
error: cannot pass |
|
object of type B to variadic |
function |
block |
method |
constructor |
|
; expected type from format string was D |
error: second argument to ‘va_arg’ is of non-POD type A |
error: second argument to ‘va_arg’ is of ARC ownership-qualified type A |
Diagnostic text:
warning: A has virtual functions but non-virtual destructor |
This diagnostic is enabled by default.
Diagnostic text:
warning: null passed to a callee that requires a non-null argument |
warning: null returned from |
|
that requires a non-null return value |
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
This diagnostic is enabled by default.
Diagnostic text:
warning: non-portable path to file ‘A’; specified path differs in case from file name on disk |
Diagnostic text:
warning: non-portable path to file ‘A’; specified path differs in case from file name on disk |
This diagnostic is enabled by default.
Diagnostic text:
warning: vector initializers are not compatible with NEON intrinsics in big endian mode |
This diagnostic is enabled by default.
Diagnostic text:
warning: overriding method has mismatched ns_consumed attribute on its parameter |
This diagnostic is enabled by default.
Diagnostic text:
warning: overriding method has mismatched ns_returns_ |
|
attributes |
This diagnostic is enabled by default.
Diagnostic text:
warning: use of NULL in arithmetic operation |
warning: comparison between NULL and non-pointer |
|
This diagnostic is enabled by default.
Diagnostic text:
warning: null character(s) preserved in |
|
literal |
warning: null character ignored |
This diagnostic is enabled by default.
Diagnostic text:
warning: implicit conversion of |
|
constant to B |
This diagnostic is enabled by default.
Diagnostic text:
warning: binding dereferenced null pointer to reference has undefined behavior |
warning: indirection of non-volatile null pointer will be deleted, not trap |
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 |
|
This diagnostic is enabled by default.
Diagnostic text:
warning: conflicting nullability specifier on parameter types, A conflicts with existing specifier B |
warning: conflicting nullability specifier on return types, A conflicts with existing specifier B |
warning: nullability specifier A conflicts with existing specifier B |
warning: synthesized setter A for null_resettable property B does not handle nil |
warning: duplicate nullability specifier A |
This diagnostic is enabled by default.
Also controls -Wnullability-completeness-on-arrays.
Diagnostic text:
warning: |
pointer |
block pointer |
member pointer |
|
is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) |
This diagnostic is enabled by default.
Diagnostic text:
warning: array parameter is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) |
This diagnostic is an error by default, but the flag -Wno-nullability-declspec
can be used to disable the error.
Diagnostic text:
error: nullability specifier A cannot be applied to non-pointer type B; did you mean to apply the specifier to the |
pointer |
block pointer |
member pointer |
function pointer |
member function pointer |
|
? |
Diagnostic text:
warning: type nullability specifier A is a Clang extension |
This diagnostic is enabled by default.
Diagnostic text:
warning: inferring ‘_Nonnull’ for pointer type within |
|
is deprecated |
Diagnostic text:
warning: implicit conversion from nullable pointer A to non-nullable pointer type B |
This diagnostic is enabled by default.
Diagnostic text:
warning: autosynthesized property A will use |
|
instance variable C, not existing instance variable D |
This diagnostic is enabled by default.
Diagnostic text:
warning: adding ‘A’ to ‘B’ might cause circular dependency in container |
This diagnostic is enabled by default.
Diagnostic text:
warning: designated initializer missing a ‘super’ call to a designated initializer of the super class |
warning: designated initializer invoked a non-designated initializer |
warning: designated initializer should only invoke a designated initializer on ‘super’ |
warning: method override for the designated initializer of the superclass A not found |
warning: convenience initializer missing a ‘self’ call to another initializer |
warning: convenience initializer should not invoke an initializer on ‘super’ |
This diagnostic is enabled by default.
Diagnostic text:
warning: field A can overwrite instance variable B with variable sized type C in superclass D |
warning: field A with variable sized type B is not visible to subclasses and can conflict with their instance variables |
This diagnostic is enabled by default.
Diagnostic text:
warning: redefinition of forward class A of a typedef name of an object type is ignored |
Diagnostic text:
warning: declaration of instance variables in the interface is deprecated |
This diagnostic is enabled by default.
Also controls -Wobjc-string-compare.
Diagnostic text:
warning: direct comparison of |
an array literal |
a dictionary literal |
a numeric literal |
a boxed expression |
|
|
has undefined behavior |
This diagnostic is enabled by default.
Diagnostic text:
warning: implicit boolean conversion of Objective-C object literal always evaluates to true |
warning: object of type A is not compatible with |
array element type |
dictionary key type |
dictionary value type |
|
C |
This diagnostic is enabled by default.
Diagnostic text:
warning: ignoring redefinition of Objective-C qualifier macro |
Diagnostic text:
warning: messaging unqualified id |
This diagnostic is enabled by default.
Diagnostic text:
warning: class method A not found (return type defaults to ‘id’) |
warning: class method A not found (return type defaults to ‘id’); did you mean C? |
warning: instance method A not found (return type defaults to ‘id’) |
warning: instance method A not found (return type defaults to ‘id’); did you mean C? |
warning: instance method A found instead of class method B |
warning: instance method A is being used on ‘Class’ which is not in the root class |
Diagnostic text:
warning: auto property synthesis is synthesizing property not explicitly synthesized |
This diagnostic is enabled by default.
Diagnostic text:
warning: method possibly missing a [super A] call |
This diagnostic is enabled by default.
Diagnostic text:
warning: multiple methods named A found |
This diagnostic is enabled by default.
Diagnostic text:
warning: retain’ed block property does not copy the block - use copy attribute instead |
This diagnostic is enabled by default.
Diagnostic text:
warning: cannot catch an exception thrown with @throw in C++ in the non-unified exception model |
This diagnostic is enabled by default.
Diagnostic text:
warning: class property A requires method B to be defined - use @dynamic or provide a method implementation in this class implementation |
warning: class property A requires method B to be defined - use @dynamic or provide a method implementation in this category |
warning: property A requires method B to be defined - use @synthesize, @dynamic or provide a method implementation in this class implementation |
warning: property A requires method B to be defined - use @dynamic or provide a method implementation in this category |
This diagnostic is enabled by default.
Diagnostic text:
warning: primary property declaration is implicitly strong while redeclaration in class extension is weak |
This diagnostic is enabled by default.
Diagnostic text:
warning: property follows Cocoa naming convention for returning ‘owned’ objects |
This diagnostic is enabled by default.
Diagnostic text:
warning: default property attribute ‘assign’ not appropriate for non-GC object |
warning: no ‘assign’, ‘retain’, or ‘copy’ attribute is specified - ‘assign’ is assumed |
This diagnostic is enabled by default.
Diagnostic text:
warning: auto property synthesis will not synthesize property A; it will be implemented by its superclass, use @dynamic to acknowledge intention |
warning: auto property synthesis will not synthesize property A because it is ‘readwrite’ but it will be synthesized ‘readonly’ via another property |
warning: auto property synthesis will not synthesize property A because it cannot share an ivar with another synthesized property |
This diagnostic is enabled by default.
Diagnostic text:
warning: category is implementing a method which will also be implemented by its primary class |
This diagnostic is enabled by default.
Diagnostic text:
warning: auto property synthesis will not synthesize property A declared in protocol B |
This diagnostic is enabled by default.
Diagnostic text:
warning: parameterized class A already conforms to the protocols listed; did you forget a ‘*’? |
This diagnostic is enabled by default.
Diagnostic text:
warning: setter cannot be specified for a readonly property |
This diagnostic is enabled by default.
Diagnostic text:
warning: using A with a literal is redundant |
This diagnostic is enabled by default.
Diagnostic text:
warning: class A defined without specifying a base class |
This diagnostic is enabled by default.
Diagnostic text:
warning: direct comparison of a string literal has undefined behavior |
This diagnostic is enabled by default.
Diagnostic text:
warning: concatenated NSString literal for an NSArray expression - possibly missing a comma |
This diagnostic is enabled by default.
Diagnostic text:
warning: type A has incompatible definitions in different translation units |
Diagnostic text:
warning: use of old-style cast |
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
This diagnostic is enabled by default.
Diagnostic text:
warning: vector component name ‘A’ is an OpenCL version 2.2 feature |
This diagnostic is enabled by default.
Diagnostic text:
warning: aligned clause will be ignored because the requested alignment is not a power of 2 |
warning: zero linear step (A |
|
and other variables in clause |
|
should probably be const) |
This diagnostic is enabled by default.
Diagnostic text:
warning: The OpenMP offloading target ‘A’ is similar to target ‘B’ already specified - will be ignored. |
warning: declaration is not declared in any declare target region |
This diagnostic is enabled by default.
Diagnostic text:
warning: option ‘-ffine-grained-bitfield-accesses’ cannot be enabled together with a sanitizer; flag ignored |
warning: option ‘A’ was ignored by the PS4 toolchain, using ‘-fPIC’ |
warning: ignoring ‘-mabicalls’ option as it cannot be used with non position-independent code and the N64 ABI |
warning: ignoring ‘-mlong-calls’ option as it is not currently supported with |
|
-mabicalls |
This diagnostic is an error by default, but the flag -Wno-out-of-line-declaration
can be used to disable the error.
Diagnostic text:
error: out-of-line declaration of a member must be a definition |
This diagnostic is enabled by default.
Diagnostic text:
warning: use of out-of-scope declaration of A |
|
whose type is not compatible with that of an implicit declaration |
|
Diagnostic text:
warning: type A requires B bytes of alignment and the default allocator only guarantees C bytes |
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
Diagnostic text:
warning: string literal of length A exceeds maximum length B that |
|
compilers are required to support |
This diagnostic is enabled by default.
Diagnostic text:
warning: overloaded operator |
|
has higher precedence than comparison operator |
Diagnostic text:
warning: A hides overloaded virtual |
|
This diagnostic is enabled by default.
Diagnostic text:
warning: overriding the module target triple with A |
Diagnostic text:
warning: conflicting distributed object modifiers on parameter type in declaration of A |
warning: conflicting parameter types in declaration of A |
warning: conflicting distributed object modifiers on return type in declaration of A |
warning: conflicting return type in declaration of A |
warning: conflicting variadic declaration of method and its implementation |
warning: conflicting parameter types in declaration of A: B vs C |
warning: conflicting return type in declaration of A: B vs C |
This diagnostic is enabled by default.
Diagnostic text:
warning: overriding ‘A’ option with ‘B’ |
Diagnostic text:
warning: packed attribute is unnecessary for A |
Diagnostic text:
warning: padding |
|
B with C |
|
|
to align anonymous bit-field |
warning: padding |
|
B with C |
|
|
to align E |
warning: padding size of A with B |
|
|
to alignment boundary |
This diagnostic is enabled by default.
Diagnostic text:
warning: equality comparison with extraneous parentheses |
Diagnostic text:
The text of this diagnostic is not controlled by Clang.
Diagnostic text:
The text of this diagnostic is not controlled by Clang.
A; 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! |
A; allow reordering by specifying ‘#pragma clang loop vectorize(enable)’ before the loop or by providing the compiler option ‘-ffast-math’. |
This diagnostic is enabled by default.
Diagnostic text:
The text of this diagnostic is not controlled by Clang.
Diagnostic text:
The text of this diagnostic is not controlled by Clang.
This diagnostic is enabled by default.
Diagnostic text:
warning: |
precompiled header |
module |
|
uses __DATE__ or __TIME__ |
Also controls -Wc++11-extra-semi, -Wc++11-long-long, -Wc++14-binary-literal, -Wc11-extensions, -Wcomplex-component-init, -Wdeclaration-after-statement, -Wdollar-in-identifier-extension, -Wembedded-directive, -Wempty-translation-unit, -Wflexible-array-extensions, -Wformat-pedantic, -Wfour-char-constants, -Wgnu-anonymous-struct, -Wgnu-auto-type, -Wgnu-binary-literal, -Wgnu-case-range, -Wgnu-complex-integer, -Wgnu-compound-literal-initializer, -Wgnu-conditional-omitted-operand, -Wgnu-empty-initializer, -Wgnu-empty-struct, -Wgnu-flexible-array-initializer, -Wgnu-flexible-array-union-member, -Wgnu-folding-constant, -Wgnu-imaginary-constant, -Wgnu-include-next, -Wgnu-label-as-value, -Wgnu-redeclared-enum, -Wgnu-statement-expression, -Wgnu-union-cast, -Wgnu-zero-line-directive, -Wgnu-zero-variadic-macro-arguments, -Wimport-preprocessor-directive-pedantic, -Wkeyword-macro, -Wlanguage-extension-token, -Wlong-long, -Wmicrosoft-charize, -Wmicrosoft-comment-paste, -Wmicrosoft-cpp-macro, -Wmicrosoft-end-of-file, -Wmicrosoft-enum-value, -Wmicrosoft-fixed-enum, -Wmicrosoft-flexible-array, -Wmicrosoft-redeclare-static, -Wnested-anon-types, -Wnullability-extension, -Woverlength-strings, -Wretained-language-linkage, -Wundefined-internal-type, -Wvla-extension, -Wzero-length-array.
Diagnostic text:
warning: ‘enable_if’ is a clang extension |
warning: ‘diagnose_if’ is a clang extension |
warning: designated initializers are a C99 feature |
warning: ISO C++ does not allow ‘main’ to be used by a program |
warning: C++98 requires an accessible copy constructor for class C when binding a reference to a temporary; was |
|
warning: anonymous |
|
cannot be ‘B’ |
warning: no viable constructor |
copying variable |
copying parameter |
returning object |
throwing object |
copying member subobject |
copying array element |
allocating object |
copying temporary |
initializing base subobject |
initializing vector element |
capturing value |
|
of type B; C++98 requires a copy constructor when binding a reference to a temporary |
warning: ISO C++ standards before C++17 do not allow new expression for type A to use list-initialization |
warning: parameter A was not declared, defaulting to type ‘int’ |
warning: invoking a pointer to a ‘const &’ member function on an rvalue is a C++2a extension |
warning: qualifier in explicit instantiation of A requires a template-id (a typedef is not permitted) |
warning: static |
|
B is used in an inline function with external linkage |
warning: ISO C forbids forward references to ‘enum’ types |
warning: ISO C restricts enumerator values to range of ‘int’ (A is too |
|
) |
warning: size of static array must be an integer constant expression |
warning: initializer for aggregate is not a compile-time constant |
warning: flexible array members are a C99 feature |
warning: invalid application of ‘ |
|
‘ to a function type |
warning: invalid application of ‘ |
|
‘ to a void type |
warning: ISO C90 does not allow subscripting non-lvalue array |
warning: subscript of a pointer to void is a GNU extension |
warning: ISO C forbids taking the address of an expression of type ‘void’ |
warning: ordered comparison between pointer and zero (A and B) is an extension |
warning: equality comparison between function pointer and void pointer (A and B) |
warning: arithmetic on |
|
pointer |
|
to void is a GNU extension |
warning: arithmetic on |
|
pointer |
|
to |
|
function type |
|
B |
|
is a GNU extension |
warning: ISO C does not support ‘++’/’–’ on complex integer type A |
warning: ISO C does not support ‘~’ for complex conjugation of A |
warning: complex numbers are an extension in a freestanding C99 implementation |
warning: cast between pointer-to-function and pointer-to-object is an extension |
warning: implicit conversion from array size expression of type A to |
|
type C is a C++11 extension |
warning: |
assigning to different types |
passing to parameter of different type |
returning from function with different return type |
converting between types |
initializing with expression of different type |
sending to parameter of different type |
casting between types |
|
converts between void pointer and function pointer |
warning: kernel function A is a member function; this may not be accepted by nvcc |
warning: C99 forbids conditional expressions with only one void side |
warning: C99 forbids casting nonscalar type A to the same type |
warning: use of the A attribute is a C++14 extension |
warning: use of the A attribute is a C++17 extension |
warning: types declared in an anonymous |
|
are a Microsoft extension |
warning: void |
|
A should not return void expression |
warning: ’A’ cannot be signed or unsigned |
warning: |
|
array size |
|
is a C99 feature |
warning: extra ‘;’ |
outside of a function |
|
inside instance variable list |
after member function definition |
|
warning: ‘__thread’ before ‘A’ |
warning: type-less parameter names in function declaration |
warning: variable declaration in for loop is a C99-specific feature |
warning: compound literals are a C99-specific feature |
warning: commas at the end of enumerator lists are a C99-specific feature |
warning: commas at the end of enumerator lists are a C++11 extension |
warning: enumeration types with a fixed underlying type are a C++11 extension |
warning: use of GNU array range extension |
warning: exception specification of ‘…’ is a Microsoft extension |
warning: attributes on |
a namespace |
an enumerator |
|
declaration are a C++17 extension |
warning: extern templates are a C++11 extension |
warning: multi-line // comment |
warning: // comments are not allowed in this language |
warning: no newline at end of file |
warning: use of non-standard escape character ‘\A’ |
warning: hexadecimal floating constants are a C99 feature |
warning: hexadecimal floating literals are a C++17 feature |
warning: #ident is a language extension |
warning: #warning is a language extension |
warning: comma operator in operand of #if |
warning: __VA_ARGS__ can only appear in the expansion of a C99 variadic macro |
warning: variadic macros are a C99 feature |
warning: named variadic macros are a GNU extension |
warning: empty macro arguments are a C99 feature |
warning: C requires #line number to be less than A, allowed as extension |
warning: macro expansion producing ‘defined’ has undefined behavior |
Diagnostic text:
warning: OpenCL extension A is core feature or supported optional core feature - ignoring |
Diagnostic text:
warning: moving a temporary object prevents copy elision |
warning: moving a local object in a return statement prevents copy elision |
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: arithmetic on |
|
pointer |
|
to |
|
function type |
|
B |
|
is a GNU extension |
warning: subscript of a pointer to void is a GNU extension |
warning: arithmetic on |
|
pointer |
|
to void is a GNU extension |
warning: invalid application of ‘ |
|
‘ to a function type |
warning: invalid application of ‘ |
|
‘ to a void type |
warning: subtraction of pointers to type A of zero size has undefined behavior |
This diagnostic is enabled by default.
Diagnostic text:
warning: nonnull |
|
’B’ will evaluate to ‘true’ on first encounter |
warning: address of |
|
’B’ will always evaluate to ‘true’ |
This diagnostic is enabled by default.
Diagnostic text:
warning: |
assigning to different types |
passing to parameter of different type |
returning from function with different return type |
converting between types |
initializing with expression of different type |
sending to parameter of different type |
casting between types |
|
converts between pointers to integer types with different sign |
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
This diagnostic is enabled by default.
Diagnostic text:
warning: pointer type mismatch |
This diagnostic is enabled by default.
Diagnostic text:
warning: expression with side effects will be evaluated despite being used as an operand to ‘typeid’ |
This diagnostic is enabled by default.
Diagnostic text:
warning: unused attribute A in ‘#pragma clang attribute push’ region |
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wpragma-pack-suspicious-include.
Diagnostic text:
warning: the current #pragma pack aligment value is modified in the included file |
warning: unterminated ‘#pragma pack (push, …)’ at end of file |
Diagnostic text:
warning: non-default #pragma pack value changes the alignment of struct or union members in the included file |
This diagnostic is enabled by default.
Diagnostic text:
warning: predefined identifier is only valid inside function |
This diagnostic is enabled by default.
Diagnostic text:
warning: use of __private_extern__ on a declaration may not produce external symbol private to the linkage unit and is deprecated |
This diagnostic is enabled by default.
Diagnostic text:
warning: expected canonical name for private module ‘A’ |
warning: private submodule ‘A’ in private module map, expected top-level module |
warning: module ‘A’ already re-exported as ‘B’ |
warning: no submodule named A in module ‘B’; using top level ‘C’ |
Diagnostic text:
warning: profile data may be incomplete: of A function |
|
, B |
|
no data |
This diagnostic is enabled by default.
Diagnostic text:
warning: profile data may be out of date: of A function |
|
, B |
|
mismatched data that will be ignored |
This diagnostic is enabled by default.
Diagnostic text:
warning: no profile data available for file “A” |
This diagnostic is enabled by default.
Diagnostic text:
warning: property A not found on object of type B; did you mean to access property C? |
This diagnostic is enabled by default.
Diagnostic text:
warning: property attribute in class extension does not match the primary class |
warning: ’B’ attribute on property A does not match the property inherited from C |
warning: getter name mismatch between property redeclaration (B) and its original declaration (A) |
warning: attribute ‘readonly’ of property A restricts attribute ‘readwrite’ of property inherited from B |
This diagnostic is enabled by default.
Diagnostic text:
warning: method A in protocol B not implemented |
This diagnostic is enabled by default.
Diagnostic text:
warning: property |
|
was selected for synthesis |
This diagnostic is enabled by default.
Diagnostic text:
warning: function cannot return qualified void type A |
Diagnostic text:
warning: loop variable A is initialized with a value of a different type resulting in a copy |
warning: loop variable A of type B creates a copy from type C |
warning: loop variable A is always a copy because the range of type B does not return a reference |
This diagnostic is enabled by default.
Diagnostic text:
warning: readonly IBOutlet property A when auto-synthesized may not work correctly with ‘nib’ loader |
This diagnostic is enabled by default.
Diagnostic text:
warning: receiver type A is not ‘id’ or interface pointer, consider casting it to ‘id’ |
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: receiver A is a forward class and corresponding @interface may not exist |
warning: receiver type A for instance message is a forward declaration |
This diagnostic is enabled by default.
Diagnostic text:
warning: class member cannot be redeclared |
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
Diagnostic text:
warning: redundant move in return statement |
Diagnostic text:
warning: redundant parentheses surrounding declarator |
This diagnostic is enabled by default.
Also controls -Wdeprecated-register.
Diagnostic text:
error: ISO C++17 does not allow ‘register’ storage class specifier |
This diagnostic is enabled by default.
Diagnostic text:
warning: ‘reinterpret_cast’ |
|
class A |
|
its |
virtual base |
base at non-zero offset |
|
B behaves differently from ‘static_cast’ |
Diagnostic text:
warning: |
|
B will be initialized after |
|
D |
This diagnostic is enabled by default.
Diagnostic text:
warning: A attribute cannot be applied to |
methods in protocols |
dealloc |
|
Diagnostic text:
warning: macro name is a reserved identifier |
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wc++11-compat-reserved-user-defined-literal.
Diagnostic text:
warning: invalid suffix on literal; C++11 requires a space between literal and identifier |
error: invalid suffix on literal; C++11 requires a space between literal and identifier |
Diagnostic text:
warning: friend function A retaining previous language linkage is an extension |
This diagnostic is enabled by default.
Diagnostic text:
warning: returning address of label, which is local |
warning: returning |
|
local temporary object |
warning: |
|
stack memory associated with local variable B returned |
This diagnostic is enabled by default.
Also controls -Wreturn-type-c-linkage.
Diagnostic text:
error: |
void function |
void method |
constructor |
destructor |
|
A should not return a value |
error: non-void |
|
A should return a value |
warning: control reaches end of coroutine; which is undefined behavior because the promise type A does not declare ‘return_void()’ |
warning: control reaches end of non-void function |
warning: control reaches end of non-void lambda |
warning: control may reach end of coroutine; which is undefined behavior because the promise type A does not declare ‘return_void()’ |
warning: control may reach end of non-void function |
warning: control may reach end of non-void lambda |
error: non-void |
|
A should return a value |
This diagnostic is enabled by default.
Diagnostic text:
warning: A has C-linkage specified, but returns user-defined type B which is incompatible with C |
warning: A has C-linkage specified, but returns incomplete type B which could be incompatible with C |
This diagnostic is enabled by default.
Diagnostic text:
warning: implicitly enabling rtti for exception handling |
Diagnostic text:
-fsanitize-address-field-padding applied to A |
-fsanitize-address-field-padding ignored for A because it |
is not C++ |
is packed |
is a union |
is trivially copyable |
has trivial destructor |
is standard layout |
is in a blacklisted file |
is blacklisted |
|
This diagnostic is enabled by default.
Diagnostic text:
warning: section attribute is specified on redeclared variable |
warning: section does not match previous declaration |
Also controls -Wselector-type-mismatch.
Diagnostic text:
warning: no method with selector A is implemented in this translation unit |
Diagnostic text:
warning: several methods with selector A of mismatched types are found for the @selector expression |
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wself-assign-field.
Diagnostic text:
warning: explicitly assigning value of variable of type A to itself |
This diagnostic is enabled by default.
Diagnostic text:
warning: assigning |
|
to itself |
Diagnostic text:
warning: explicitly moving variable of type A to itself |
Diagnostic text:
warning: semicolon before method body is ignored |
This diagnostic is enabled by default.
Diagnostic text:
warning: missing sentinel in |
function call |
method dispatch |
block call |
|
warning: not enough variable arguments in A declaration to fit a sentinel |
This diagnostic is enabled by default.
Diagnostic text:
warning: unable to open file A for serializing diagnostics (B) |
warning: unable to merge a subprocess’s serialized diagnostics |
Diagnostic text:
warning: non-static data member ‘A’ of ‘B’ shadows member inherited from type ‘C’ |
Diagnostic text:
warning: modifying constructor parameter A that shadows a field of B |
This diagnostic is enabled by default.
Diagnostic text:
warning: local declaration of A hides instance variable |
Diagnostic text:
warning: declaration shadows a |
|
This diagnostic is enabled by default.
Diagnostic text:
warning: shift count is negative |
This diagnostic is enabled by default.
Diagnostic text:
warning: shift count >= width of type |
This diagnostic is enabled by default.
Diagnostic text:
warning: shifting a negative signed value is undefined |
This diagnostic is enabled by default.
Diagnostic text:
warning: operator ‘A’ has lower precedence than ‘B’; ‘B’ will be evaluated first |
This diagnostic is enabled by default.
Diagnostic text:
warning: signed shift result (A) requires B bits to represent, but C only has D bits |
Diagnostic text:
warning: signed shift result (A) sets the sign bit of the shift expression’s type (B) and becomes negative |
Diagnostic text:
warning: implicit conversion loses integer precision: A to B |
Diagnostic text:
warning: comparison of integers of different signs: A and B |
Diagnostic text:
warning: implicit conversion changes signedness: A to B |
warning: operand of ? changes signedness: A to B |
Diagnostic text:
warning: enums in the Microsoft ABI are signed integers by default; consider giving the enum A an unsigned underlying type to make this code portable |
This diagnostic is enabled by default.
Diagnostic text:
warning: sizeof on array function parameter will return size of A instead of B |
This diagnostic is enabled by default.
Diagnostic text:
warning: sizeof on pointer operation will return size of A instead of B |
This diagnostic is enabled by default.
Diagnostic text:
warning: ’A’ call operates on objects of type B while the size is based on a different type C |
warning: argument to ‘sizeof’ in A call is the same pointer type B as the |
|
; expected D or an explicit length |
This diagnostic is enabled by default.
Diagnostic text:
warning: ’/UA’ treated as the ‘/U’ option |
Diagnostic text:
warning: variable A is |
|
uninitialized whenever |
|
‘D’ loop |
is entered |
exits because its condition is false |
|
|
‘D’ loop |
condition is true |
exits because its condition is false |
|
|
|
its declaration is reached |
|
|
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: OpenMP only allows an ordered construct with the simd clause nested in a simd construct |
warning: unexpected ‘#pragma omp …’ in program |
Diagnostic text:
warning: sampler initializer has invalid A bits |
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
This diagnostic is enabled by default.
Also controls -Wgnu-static-float-init.
Diagnostic text:
error: in-class initializer for static data member of type A requires ‘constexpr’ specifier |
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: static |
|
B is used in an inline function with external linkage |
warning: static |
|
B is used in an inline function with external linkage |
This diagnostic is enabled by default.
Diagnostic text:
warning: ignoring ‘ |
|
‘ keyword on explicit template instantiation |
This diagnostic is enabled by default.
Diagnostic text:
warning: non-constant static local variable in inline function may be different in different files |
This diagnostic is enabled by default.
Diagnostic text:
warning: static variable A is suspiciously used within its own initialization |
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
Diagnostic text:
warning: this |
function declaration is not |
block declaration is not |
old-style function definition is not preceded by |
|
a prototype |
Diagnostic text:
warning: this |
function declaration is not |
block declaration is not |
old-style function definition is not preceded by |
|
a prototype |
Diagnostic text:
warning: multiple methods named A found |
This diagnostic is enabled by default.
Diagnostic text:
warning: result of comparison against |
|
is unspecified (use strncmp instead) |
Diagnostic text:
warning: implicit conversion turns string literal into bool: A to B |
This diagnostic is enabled by default.
Diagnostic text:
warning: adding A to a string pointer does not append to the string |
This diagnostic is enabled by default.
Diagnostic text:
warning: adding A to a string does not append to the string |
This diagnostic is enabled by default.
Diagnostic text:
warning: size argument in A call appears to be size of the source; expected the size of the destination |
This diagnostic is enabled by default.
Diagnostic text:
warning: the value of the size argument in ‘strncat’ is too large, might lead to a buffer overflow |
warning: size argument in ‘strncat’ call appears to be size of the source |
warning: the value of the size argument to ‘strncat’ is wrong |
Diagnostic text:
warning: method parameter type does not match super class method parameter type |
This diagnostic is enabled by default.
Diagnostic text:
warning: overflow converting case value to switch condition type (A to B) |
warning: |
:enumeration value B not handled in switch |
|
:enumeration values B and C not handled in switch |
|
:enumeration values B, C, and D not handled in switch |
|
:A enumeration values not handled in switch: B, C, D… |
|
|
warning: case value not in enumerated type A |
This diagnostic is enabled by default.
Diagnostic text:
warning: switch condition has boolean value |
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
Diagnostic text:
warning: |
:enumeration value B not explicitly handled in switch |
|
:enumeration values B and C not explicitly handled in switch |
|
:enumeration values B, C, and D not explicitly handled in switch |
|
:A enumeration values not explicitly handled in switch: B, C, D… |
|
|
This diagnostic is enabled by default.
Diagnostic text:
warning: the semantics of this intrinsic changed with GCC version 4.4 - the newer semantics are provided here |
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
This diagnostic is enabled by default.
Diagnostic text:
warning: result of comparison of |
|
with |
|
is always E |
Diagnostic text:
warning: overlapping comparisons always evaluate to |
|
This diagnostic is enabled by default.
Diagnostic text:
warning: comparison of nonnull |
|
’B’ |
|
equal to a null pointer is ‘ |
|
‘ on first encounter |
warning: comparison of |
address of |
function |
array |
|
’B’ |
|
equal to a null pointer is always |
|
Diagnostic text:
warning: result of comparison |
|
C |
|
is always E |
This diagnostic is enabled by default.
Diagnostic text:
warning: reference cannot be bound to dereferenced null pointer in well-defined C++ code; comparison may be assumed to always evaluate to |
|
warning: ‘this’ pointer cannot be null in well-defined C++ code; comparison may be assumed to always evaluate to |
|
Diagnostic text:
warning: result of comparison of |
D |
unsigned enum expression |
|
C |
unsigned enum expression |
D |
|
is always E |
Diagnostic text:
warning: result of comparison of |
|
C |
|
is always E |
This diagnostic is enabled by default.
Diagnostic text:
warning: tentative definition of variable with internal linkage has incomplete non-array type A |
Diagnostic text:
warning: A ’B’ must be acquired before ‘C’ |
warning: Cycle in acquired_before/after dependencies, starting with ‘A’ |
warning: cannot resolve lock expression |
warning: acquiring A ’B’ that is already held |
warning: expecting A ’B’ to be held at start of each loop |
warning: expecting A ’B’ to be held at the end of function |
warning: cannot call function ‘B’ while A ’C’ is held |
warning: calling function ‘B’ requires holding A |
|
warning: A ’B’ is acquired exclusively and shared in the same scope |
warning: A ’B’ is not held on every path through here |
warning: A ’B’ is still held at the end of function |
warning: releasing A ’B’ that was not held |
warning: releasing A ’B’ using |
|
access, expected |
|
access |
warning: |
|
the value pointed to by ‘A’ requires holding |
any mutex |
any mutex exclusively |
|
warning: |
|
the value pointed to by ‘B’ requires holding A |
|
warning: |
|
variable ‘A’ requires holding |
any mutex |
any mutex exclusively |
|
warning: |
|
variable ‘B’ requires holding A |
|
Diagnostic text:
warning: invalid capability name ‘A’; capability name must be ‘mutex’ or ‘role’ |
warning: A attribute requires arguments whose type is annotated with ‘capability’ attribute; type here is B |
warning: A attribute can only be applied in a context annotated with ‘capability(“mutex”)’ attribute |
warning: A only applies to pointer types; type here is B |
warning: ignoring A attribute because its argument is invalid |
Diagnostic text:
warning: Thread safety beta warning. |
Diagnostic text:
warning: acquiring A ’B’ requires negative capability ‘C’ |
Diagnostic text:
warning: calling function ‘B’ requires holding A |
|
warning: |
|
the value pointed to by ‘B’ requires holding A |
|
warning: |
|
variable ‘B’ requires holding A |
|
Diagnostic text:
warning: passing variable ‘B’ by reference requires holding A |
|
warning: passing the value that ‘B’ points to by reference requires holding A |
|
Diagnostic text:
warning: Thread safety verbose warning. |
This diagnostic is enabled by default.
Diagnostic text:
warning: trigraph converted to ‘A’ character |
warning: trigraph ends block comment |
warning: trigraph ignored |
warning: ignored trigraph would end block comment |
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
This diagnostic is enabled by default.
Diagnostic text:
warning: specified A type tag requires a null pointer |
warning: argument type A doesn’t match specified B type tag |
|
warning: this type tag was not designed to be used with this function |
This diagnostic is enabled by default.
Diagnostic text:
warning: redefinition of typedef A is a C11 feature |
This diagnostic is enabled by default.
Diagnostic text:
warning: missing ‘typename’ prior to dependent type name ‘AB’ |
This diagnostic is enabled by default.
Diagnostic text:
warning: unable to open statistics output file ‘A’: ‘B’ |
This diagnostic is enabled by default.
Diagnostic text:
warning: A may be unavailable because the receiver type is unknown |
Diagnostic text:
warning: undeclared selector A |
warning: undeclared selector A; did you mean B? |
Diagnostic text:
warning: A is not defined, evaluates to 0 |
This diagnostic is enabled by default.
Diagnostic text:
warning: reference cannot be bound to dereferenced null pointer in well-defined C++ code; pointer may be assumed to always convert to true |
warning: ‘this’ pointer cannot be null in well-defined C++ code; pointer may be assumed to always convert to true |
Diagnostic text:
warning: instantiation of function A required here, but no definition is available |
This diagnostic is enabled by default.
Diagnostic text:
warning: inline function A is not defined |
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
B has internal linkage but is not defined |
Diagnostic text:
warning: ISO C++ requires a definition in this translation unit for |
|
B because its type does not have linkage |
Diagnostic text:
warning: dereference of type B that was reinterpret_cast from type A has undefined behavior |
warning: reinterpret_cast from A to B has undefined behavior |
This diagnostic is enabled by default.
Diagnostic text:
warning: instantiation of variable A required here, but no definition is available |
This diagnostic is enabled by default.
Also controls -Wpotentially-evaluated-expression.
Diagnostic text:
warning: expression with side effects has no effect in an unevaluated context |
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wunguarded-availability-new.
Diagnostic text:
warning: A is only available on B C or newer |
This diagnostic is enabled by default.
Diagnostic text:
warning: A is only available on B C or newer |
This diagnostic is enabled by default.
Diagnostic text:
warning: incomplete universal character name; treating as ‘' followed by identifier |
warning: \A used with no following hex digits; 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++; treating as ‘' followed by identifier |
warning: universal character names are only valid in C99 or C++ |
This diagnostic is enabled by default.
Diagnostic text:
warning: treating Unicode character <U+A> as identifier character rather than as ‘B’ symbol |
This diagnostic is enabled by default.
Diagnostic text:
warning: treating Unicode character as whitespace |
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wsometimes-uninitialized, -Wstatic-self-init.
Diagnostic text:
warning: base class A is uninitialized when used here to access B |
warning: field A is uninitialized when used here |
warning: reference A is not yet bound to a value when used here |
warning: block pointer variable A is uninitialized when captured by block |
warning: variable A is uninitialized when used within its own initialization |
warning: reference A is not yet bound to a value when used within its own initialization |
warning: variable A is uninitialized when |
used here |
captured by block |
|
This diagnostic is enabled by default.
Diagnostic text:
warning: unknown argument ignored in clang-cl: ‘A’ |
This diagnostic is enabled by default.
Diagnostic text:
warning: unknown attribute A ignored |
This diagnostic is enabled by default.
Diagnostic text:
warning: unknown escape sequence ‘\A’ |
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: expected ‘ON’ or ‘OFF’ or ‘DEFAULT’ in pragma |
warning: expected end of directive in pragma |
warning: unknown pragma in STDC namespace |
warning: pragma diagnostic pop could not pop, no matching push |
warning: pragma diagnostic expected ‘error’, ‘warning’, ‘ignored’, ‘fatal’, ‘push’, or ‘pop’ |
warning: pragma diagnostic expected option name (e.g. “-Wundef”) |
warning: unexpected token in pragma diagnostic |
warning: unknown pragma ignored |
warning: pragma include_alias expected ‘A’ |
warning: pragma include_alias expected include filename |
warning: angle-bracketed include <A> cannot be aliased to double-quoted include “B” |
warning: double-quoted include “A” cannot be aliased to angle-bracketed include <B> |
warning: #pragma warning expected ‘A’ |
warning: #pragma warning expected a warning number |
warning: #pragma warning(push, level) requires a level between 0 and 4 |
warning: #pragma warning expected ‘push’, ‘pop’, ‘default’, ‘disable’, ‘error’, ‘once’, ‘suppress’, 1, 2, 3, or 4 |
warning: pragma STDC FENV_ACCESS ON is not supported, ignoring pragma |
This diagnostic is enabled by default.
Diagnostic text:
warning: unknown sanitizer ‘A’ ignored |
This diagnostic is enabled by default.
Diagnostic text:
warning: unknown warning group ‘A’, ignored |
warning: unknown |
|
option ‘B’ |
|
warning: unknown A warning specifier: ‘B’ |
Diagnostic text:
warning: |
|
B is not needed and will not be emitted |
warning: ‘static’ function A declared in header file should be declared ‘static inline’ |
Diagnostic text:
warning: member function A is not needed and will not be emitted |
Diagnostic text:
warning: ‘break’ will never be executed |
Diagnostic text:
warning: loop will run at most once (loop increment never executed) |
Diagnostic text:
warning: ‘return’ will never be executed |
This diagnostic is enabled by default.
Diagnostic text:
warning: multiple unsequenced modifications to A |
warning: unsequenced modification and access to A |
This diagnostic is enabled by default.
Diagnostic text:
warning: ignoring ‘-mabs=2008’ option because the ‘A’ architecture does not support it |
warning: ignoring ‘-mabs=legacy’ option because the ‘A’ architecture does not support it |
This diagnostic is enabled by default.
Diagnostic text:
warning: |
@available |
__builtin_available |
|
does not guard availability here; use if ( |
@available |
__builtin_available |
|
) instead |
This diagnostic is enabled by default.
Diagnostic text:
warning: ignoring ‘-mcompact-branches=’ option because the ‘A’ architecture does not support it |
Diagnostic text:
warning: propagating dll attribute to |
already instantiated |
explicitly specialized |
|
base class template without dll attribute is not supported |
This diagnostic is enabled by default.
Diagnostic text:
warning: dependent nested name specifier ‘A’ for friend template declaration is not supported; ignoring this friend declaration |
warning: dependent nested name specifier ‘A’ for friend class declaration is not supported; turning off access control for B |
This diagnostic is enabled by default.
Diagnostic text:
warning: ignoring ‘-mgpopt’ option as it cannot be used with |
|
-mabicalls |
This diagnostic is enabled by default.
Diagnostic text:
warning: ignoring ‘-mnan=2008’ option because the ‘A’ architecture does not support it |
warning: ignoring ‘-mnan=legacy’ option because the ‘A’ architecture does not support it |
This diagnostic is enabled by default.
Diagnostic text:
warning: target does not support ‘protected’ visibility; using ‘default’ |
This diagnostic is an error by default, but the flag -Wno-unusable-partial-specialization
can be used to disable the error.
Diagnostic text:
error: |
|
template partial specialization contains |
a template parameter |
template parameters |
|
that cannot be deduced; this partial specialization will never be used |
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
This diagnostic is enabled by default.
Diagnostic text:
warning: argument ‘A’ requires profile-guided optimization information |
warning: joined argument expects additional value: ‘A’ |
warning: A: ‘B’ input unused |
|
warning: A: ‘B’ input unused in cpp mode |
warning: A: previously preprocessed input |
unused when ‘C’ is present |
|
|
|
warning: argument unused during compilation: ‘A’ |
warning: the flag ‘A’ has been deprecated and will be ignored |
This diagnostic is enabled by default.
Diagnostic text:
warning: |
equality |
inequality |
relational |
three-way |
|
comparison result unused |
Diagnostic text:
warning: unused variable A |
Diagnostic text:
warning: unused exception parameter A |
This diagnostic is enabled by default.
Diagnostic text:
warning: property access result unused - getters should not be used for side effects |
Diagnostic text:
warning: lambda capture A is not |
used |
required to be captured for this use |
|
Diagnostic text:
warning: macro is not used |
Diagnostic text:
warning: unused parameter A |
Diagnostic text:
warning: private field A is not used |
Diagnostic text:
warning: ivar A which backs the property is not referenced in this property’s accessor |
This diagnostic is enabled by default.
Diagnostic text:
warning: ignoring return value of function declared with A attribute |
This diagnostic is enabled by default.
Also controls -Wunevaluated-expression, -Wunused-comparison, -Wunused-result.
Diagnostic text:
warning: ignoring return value of function declared with A attribute |
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’? |
This diagnostic is enabled by default.
Diagnostic text:
warning: expression result unused; assign into a variable to force a volatile load |
Diagnostic text:
warning: A was marked unused but was used |
This diagnostic is enabled by default.
Diagnostic text:
warning: user-defined literal suffixes not starting with ‘_’ are reserved |
; no literal will invoke this operator |
|
|
This diagnostic is enabled by default.
Diagnostic text:
The text of this diagnostic is not controlled by Clang.
This diagnostic is enabled by default.
Diagnostic text:
warning: second argument to ‘va_start’ is not the last named parameter |
warning: second argument to ‘va_arg’ is of promotable type A; this va_arg has undefined behavior because arguments will be promoted to B |
warning: passing |
an object that undergoes default argument promotion |
an object of reference type |
a parameter declared with the ‘register’ keyword |
|
to ‘va_start’ has undefined behavior |
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: named variadic macros are a GNU extension |
warning: __VA_OPT__ can only appear in the expansion of a variadic macro |
warning: variadic macros are a C99 feature |
This diagnostic is an error by default, but the flag -Wno-vec-elem-size
can be used to disable the error.
Diagnostic text:
error: vector operands do not have the same elements sizes (A and B) |
Diagnostic text:
warning: incompatible vector types |
assigning to different types |
passing to parameter of different type |
returning from function with different return type |
converting between types |
initializing with expression of different type |
sending to parameter of different type |
casting between types |
|
This diagnostic is enabled by default.
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 A |
This diagnostic is enabled by default.
Diagnostic text:
warning: declaration of A will not be visible outside of this function |
warning: redefinition of A will not be visible outside of this function |
Diagnostic text:
warning: variable length array used |
Diagnostic text:
warning: variable length arrays are a C99 feature |
This diagnostic is enabled by default.
Diagnostic text:
warning: ISO C++ does not allow indirection on operand of type A |
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
Diagnostic text:
warning: explicit template instantiation A will emit a vtable in every translation unit |
Diagnostic text:
warning: A has no out-of-line virtual method definitions; its vtable will be emitted in every translation unit |
This diagnostic is enabled by default.
Also controls -Wdeprecated-writable-strings.
Diagnostic text:
warning: ISO C++11 does not allow conversion from string literal to A |
Diagnostic text:
warning: zero as null pointer constant |
Diagnostic text:
warning: zero size arrays are an extension |