Diagnostic flags in Clang¶
Introduction¶
This page lists the diagnostic flags currently supported by Clang.
Diagnostic flags¶
-W#pragma-messages¶
This diagnostic is enabled by default.
Diagnostic text:
The text of this diagnostic is not controlled by Clang.
-W#warnings¶
This diagnostic is enabled by default.
Diagnostic text:
The text of this diagnostic is not controlled by Clang.
-WCFString-literal¶
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 |
-WIndependentClass-attribute¶
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 |
-WNSObject-attribute¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ‘NSObject’ attribute may be put on a typedef only; attribute is ignored |
-Wabsolute-value¶
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 |
|
absolute value function A when argument is of |
|
type |
-Wabstract-final-class¶
This diagnostic is enabled by default.
Diagnostic text:
warning: abstract class is marked ‘ |
|
‘ |
-Wabstract-vbase-init¶
Diagnostic text:
warning: initializer for virtual base class A of abstract class B will never be used |
-Waddress¶
This diagnostic is enabled by default.
Controls -Wpointer-bool-conversion, -Wstring-compare, -Wtautological-pointer-compare.
-Waddress-of-packed-member¶
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 |
-Waddress-of-temporary¶
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 |
-Waggregate-return¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wall¶
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wmisleading-indentation, -Wmost, -Wparentheses, -Wswitch, -Wswitch-bool.
-Walloca¶
Diagnostic text:
warning: use of function A is discouraged; there is no way to check for failure but failure may still occur, resulting in a possibly exploitable security vulnerability |
-Walloca-with-align-alignof¶
This diagnostic is enabled by default.
Diagnostic text:
warning: second argument to __builtin_alloca_with_align is supposed to be in bits |
-Wambiguous-delete¶
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 |
-Wambiguous-ellipsis¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ’…’ in this location creates a C-style varargs function |
|
-Wambiguous-macro¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ambiguous expansion of macro A |
-Wambiguous-member-template¶
This diagnostic is enabled by default.
Diagnostic text:
warning: lookup of A in member access expression is ambiguous; using member of B |
-Wambiguous-reversed-operator¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ISO C++20 considers use of overloaded operator ‘A’ (with operand types B and C) to be ambiguous despite there being a unique best viable function |
|
-Wanalyzer-incompatible-plugin¶
This diagnostic is enabled by default.
Diagnostic text:
warning: checker plugin ‘A’ is not compatible with this version of the analyzer |
-Wanon-enum-enum-conversion¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wdeprecated-anon-enum-enum-conversion.
Diagnostic text:
warning: |
|
different enumeration types |
-Wanonymous-pack-parens¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ISO C++11 requires a parenthesized pack declaration to have a name |
-Warc¶
This diagnostic is enabled by default.
Controls -Warc-non-pod-memaccess, -Warc-retain-cycles, -Warc-unsafe-retained-assign.
-Warc-bridge-casts-disallowed-in-nonarc¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ’A’ casts have no effect when not using ARC |
-Warc-maybe-repeated-use-of-weak¶
Diagnostic text:
warning: weak |
|
B may be accessed multiple times in this |
|
and may be unpredictably set to nil; assign to a strong variable to keep the object alive |
-Warc-non-pod-memaccess¶
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
this B call is a pointer to ownership-qualified type C |
-Warc-performSelector-leaks¶
This diagnostic is enabled by default.
Diagnostic text:
warning: performSelector may cause a leak because its selector is unknown |
-Warc-repeated-use-of-weak¶
Also controls -Warc-maybe-repeated-use-of-weak.
Diagnostic text:
warning: weak |
|
B is accessed multiple times in this |
|
but may be unpredictably set to nil; assign to a strong variable to keep the object alive |
-Warc-retain-cycles¶
This diagnostic is enabled by default.
Diagnostic text:
warning: capturing A strongly in this block is likely to lead to a retain cycle |
-Warc-unsafe-retained-assign¶
This diagnostic is enabled by default.
Diagnostic text:
warning: assigning |
|
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 |
-Wargument-outside-range¶
This diagnostic is an error by default, but the flag -Wno-argument-outside-range
can be used to disable the error.
Diagnostic text:
error: argument value A is outside the valid range [B, C] |
-Warray-bounds¶
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; |
|
, callee requires at least B |
-Warray-bounds-pointer-arithmetic¶
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 |
-Wasm¶
Synonym for -Wasm-operand-widths.
-Wasm-operand-widths¶
This diagnostic is enabled by default.
Diagnostic text:
warning: value size does not match register size specified by the constraint and modifier |
-Wassume¶
This diagnostic is enabled by default.
Diagnostic text:
warning: the argument to A has side effects that will be discarded |
-Wat-protocol¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Watimport-in-framework-header¶
This diagnostic is enabled by default.
Diagnostic text:
warning: use of ‘@import’ in framework header is discouraged, including this header requires -fmodules |
-Watomic-alignment¶
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
atomic operation may incur significant performance penalty |
-Watomic-implicit-seq-cst¶
Diagnostic text:
warning: implicit use of sequentially-consistent atomic may incur stronger memory barriers than necessary |
-Watomic-memory-ordering¶
This diagnostic is enabled by default.
Diagnostic text:
warning: memory order argument to atomic operation is invalid |
-Watomic-property-with-user-defined-accessor¶
This diagnostic is enabled by default.
Diagnostic text:
warning: writable atomic property A cannot pair a synthesized |
|
with a user defined |
|
-Wattribute-packed-for-bitfield¶
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 |
-Wattributes¶
This diagnostic is enabled by default.
Controls -Wignored-attributes, -Wunknown-attributes.
-Wauto-disable-vptr-sanitizer¶
This diagnostic is enabled by default.
Diagnostic text:
warning: implicitly disabling vptr sanitizer because rtti wasn’t enabled |
-Wauto-import¶
Diagnostic text:
warning: treating # |
|
as an import of module ‘B’ |
-Wauto-storage-class¶
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 |
-Wauto-var-id¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ‘auto’ deduced as ‘id’ in declaration of A |
-Wavailability¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ‘unavailable’ availability overrides all other availability information |
warning: ignoring availability attribute |
|
warning: only ‘unavailable’ and ‘deprecated’ are supported for Swift availability |
warning: unknown platform A in availability macro |
warning: feature cannot be |
|
in B version C before it was |
|
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 |
|
|
|
on B (C vs. D) |
warning: |
|
method cannot be unavailable on A when |
|
is available |
-Wavr-rtlib-linking-quirks¶
This diagnostic is enabled by default.
Diagnostic text:
warning: support for linking stdlibs for microcontroller ‘A’ is not implemented |
warning: no avr-gcc installation can be found on the system, cannot link standard libraries |
warning: no avr-libc installation can be found on the system, cannot link standard libraries |
warning: no target microcontroller specified on command line, cannot link standard libraries, please pass -mmcu=<mcu name> |
warning: standard library not linked and so no interrupt vector table or compiler runtime routines will be linked |
-Wbackend-plugin¶
This diagnostic is enabled by default.
Diagnostic text:
The text of this diagnostic is not controlled by Clang.
-Wbackslash-newline-escape¶
This diagnostic is enabled by default.
Diagnostic text:
warning: backslash and newline separated by space |
-Wbad-function-cast¶
Diagnostic text:
warning: cast from function call of type A to non-matching type B |
-Wbinary-literal¶
Controls -Wc++14-binary-literal, -Wc++98-c++11-compat-binary-literal, -Wgnu-binary-literal.
-Wbind-to-temporary-copy¶
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 |
|
of type B; C++98 requires a copy constructor when binding a reference to a temporary |
-Wbinding-in-condition¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ISO C++17 does not permit structured binding declaration in a condition |
-Wbitfield-constant-conversion¶
This diagnostic is enabled by default.
Diagnostic text:
warning: implicit truncation from C to bit-field changes value from A to B |
-Wbitfield-enum-conversion¶
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 |
-Wbitfield-width¶
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 |
|
-Wbitwise-conditional-parentheses¶
This diagnostic is enabled by default.
Diagnostic text:
warning: operator ‘?:’ has lower precedence than ‘A’; ‘A’ will be evaluated first |
-Wblock-capture-autoreleasing¶
This diagnostic is enabled by default.
Diagnostic text:
warning: block captures an autoreleasing out-parameter, which may result in use-after-free bugs |
-Wbool-conversion¶
This diagnostic is enabled by default.
Also controls -Wpointer-bool-conversion, -Wundefined-bool-conversion.
Diagnostic text:
warning: initialization of pointer of type A to null from a constant boolean expression |
-Wbool-conversions¶
Synonym for -Wbool-conversion.
-Wbool-operation¶
This diagnostic is enabled by default.
Diagnostic text:
warning: bitwise negation of a boolean expression |
|
did you mean logical negation? |
-Wbraced-scalar-init¶
This diagnostic is enabled by default.
Diagnostic text:
warning: braces around |
|
initializer |
-Wbridge-cast¶
This diagnostic is enabled by default.
Diagnostic text:
warning: A bridges to B, not C |
warning: A cannot bridge to B |
-Wbuiltin-assume-aligned-alignment¶
This diagnostic is enabled by default.
Diagnostic text:
warning: requested alignment must be A bytes or smaller; maximum alignment assumed |
-Wbuiltin-macro-redefined¶
This diagnostic is enabled by default.
Diagnostic text:
warning: redefining builtin macro |
warning: undefining builtin macro |
-Wbuiltin-memcpy-chk-size¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ’A’ will always overflow; destination buffer has size B, but size argument is C |
-Wbuiltin-requires-header¶
This diagnostic is enabled by default.
Diagnostic text:
warning: declaration of built-in function ‘B’ requires inclusion of the header <A> |
-Wc++-compat¶
Diagnostic text:
warning: |
|
|
has size 0 in C, |
|
in C++ |
-Wc++0x-compat¶
Synonym for -Wc++11-compat.
-Wc++0x-extensions¶
Synonym for -Wc++11-extensions.
-Wc++0x-narrowing¶
Synonym for -Wc++11-narrowing.
-Wc++11-compat¶
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 |
|
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 |
|
in C++11 onwards |
-Wc++11-compat-deprecated-writable-strings¶
This diagnostic is enabled by default.
Diagnostic text:
warning: conversion from string literal to A is deprecated |
-Wc++11-compat-pedantic¶
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wc++11-compat, -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++11-compat-reserved-user-defined-literal¶
Diagnostic text:
warning: identifier after literal will be treated as a reserved user-defined literal suffix in C++11 |
-Wc++11-extensions¶
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: ‘typename’ occurs outside of a template |
warning: unelaborated friend declaration is a C++11 extension; specify ‘ |
|
‘ to befriend B |
warning: variadic templates are a C++11 extension |
-Wc++11-inline-namespace¶
This diagnostic is enabled by default.
Diagnostic text:
warning: inline namespaces are a C++11 feature |
-Wc++11-narrowing¶
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
error: |
|
|
|
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 |
-Wc++14-compat-pedantic¶
Controls -Wc++14-compat, -Wc++98-c++11-c++14-c++17-compat-pedantic, -Wc++98-c++11-c++14-compat-pedantic.
-Wc++14-extensions¶
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 |
-Wc++17-compat¶
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wc++17-compat-mangling, -Wc++98-c++11-c++14-c++17-compat, -Wdeprecated-increment-bool, -Wdeprecated-register.
-Wc++17-compat-mangling¶
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 |
-Wc++17-compat-pedantic¶
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wc++17-compat, -Wc++98-c++11-c++14-c++17-compat-pedantic.
-Wc++17-extensions¶
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 |
|
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 |
-Wc++1y-extensions¶
Synonym for -Wc++14-extensions.
-Wc++1z-compat¶
Synonym for -Wc++17-compat.
-Wc++1z-compat-mangling¶
Synonym for -Wc++17-compat-mangling.
-Wc++1z-extensions¶
Synonym for -Wc++17-extensions.
-Wc++20-compat¶
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: aggregate initialization of type A with user-declared constructors is incompatible with C++20 |
warning: ‘consteval’ specifier is incompatible with C++ standards before C++20 |
warning: ‘constinit’ specifier is incompatible with C++ standards before C++20 |
warning: this expression will be parsed as explicit(bool) in C++20 |
warning: ’<=>’ is a single token in C++20; add a space to avoid a change in behavior |
warning: type of UTF-8 string literal will change from array of const char to array of const char8_t in C++20 |
warning: ’A’ is a keyword in C++20 |
-Wc++20-compat-pedantic¶
Synonym for -Wc++20-compat.
-Wc++20-extensions¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wc++20-designator.
Diagnostic text:
warning: use of function template name with no prior declaration in function call with explicit template arguments is a C++20 extension |
warning: default member initializer for bit-field is a C++20 extension |
warning: use of this statement in a constexpr |
|
is a C++20 extension |
warning: constexpr constructor that does not initialize all members is a C++20 extension |
warning: function try block in constexpr |
|
is a C++20 extension |
warning: uninitialized variable in a constexpr |
|
is a C++20 extension |
warning: constexpr union constructor that does not initialize any member is a C++20 extension |
warning: use of the A attribute is a C++20 extension |
warning: decomposition declaration declared |
|
is a C++20 extension |
warning: defaulted comparison operators are a C++20 extension |
warning: explicit capture of ‘this’ with a capture default of ‘=’ is a C++20 extension |
warning: explicit(bool) is a C++20 extension |
warning: range-based for loop initialization statements are a C++20 extension |
warning: initialized lambda pack captures are a C++20 extension |
warning: inline nested namespace definition is a C++20 extension |
warning: explicit template parameter list for lambdas is a C++20 extension |
warning: invoking a pointer to a ‘const &’ member function on an rvalue is a C++20 extension |
-Wc++2a-compat¶
Synonym for -Wc++20-compat.
-Wc++2a-compat-pedantic¶
Synonym for -Wc++20-compat-pedantic.
-Wc++2a-extensions¶
Synonym for -Wc++20-extensions.
-Wc++98-c++11-c++14-c++17-compat¶
Diagnostic text:
warning: use of function template name with no prior function template declaration in function call with explicit template arguments is incompatible with C++ standards before C++20 |
warning: default member initializer for bit-field is incompatible with C++ standards before C++20 |
warning: use of this statement in a constexpr |
|
is incompatible with C++ standards before C++20 |
warning: constexpr constructor that does not initialize all members is incompatible with C++ standards before C++20 |
warning: function try block in constexpr |
|
is incompatible with C++ standards before C++20 |
warning: uninitialized variable in a constexpr |
|
is incompatible with C++ standards before C++20 |
warning: constexpr union constructor that does not initialize any member is incompatible with C++ standards before C++20 |
warning: virtual constexpr functions are incompatible with C++ standards before C++20 |
warning: decomposition declaration declared |
|
is incompatible with C++ standards before C++20 |
warning: defaulted comparison operators are incompatible with C++ standards before C++20 |
warning: explicitly defaulting this |
|
with a type different from the implicit type is incompatible with C++ standards before C++20 |
warning: explicit capture of ‘this’ with a capture default of ‘=’ is incompatible with C++ standards before C++20 |
warning: explicit(bool) is incompatible with C++ standards before C++20 |
warning: range-based for loop initialization statements are incompatible with C++ standards before C++20 |
warning: initialized lambda capture packs are incompatible with C++ standards before C++20 |
warning: inline nested namespace definition is incompatible with C++ standards before C++20 |
warning: |
|
of lambda is incompatible with C++ standards before C++20 |
warning: explicit template parameter list for lambdas is incompatible with C++ standards before C++20 |
warning: ’<=>’ operator is incompatible with C++ standards before C++20 |
warning: ‘char8_t’ type specifier is incompatible with C++ standards before C++20 |
-Wc++98-c++11-c++14-c++17-compat-pedantic¶
Also controls -Wc++98-c++11-c++14-c++17-compat.
Diagnostic text:
warning: designated initializers are incompatible with C++ standards before C++20 |
warning: invoking a pointer to a ‘const &’ member function on an rvalue is incompatible with C++ standards before C++20 |
-Wc++98-c++11-c++14-compat¶
Diagnostic text:
warning: class template argument deduction is incompatible with C++ standards before C++17 |
|
warning: constexpr if is incompatible with C++ standards before C++17 |
warning: constexpr on lambda expressions is incompatible with C++ standards before C++17 |
warning: 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 |
-Wc++98-c++11-c++14-compat-pedantic¶
Also controls -Wc++98-c++11-c++14-compat.
Diagnostic text:
warning: attributes on |
|
declaration are incompatible with C++ standards before C++17 |
warning: hexadecimal floating literals are incompatible with C++ standards before C++17 |
-Wc++98-c++11-compat¶
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: return type deduction is incompatible with C++ standards before C++14 |
warning: digit separators are incompatible with C++ standards before C++14 |
warning: generic lambdas are incompatible with C++11 |
warning: initialized lambda captures are incompatible with C++ standards before C++14 |
warning: variable templates are incompatible with C++ standards before C++14 |
-Wc++98-c++11-compat-binary-literal¶
Diagnostic text:
warning: binary integer literals are incompatible with C++ standards before C++14 |
-Wc++98-compat¶
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: initializing A from an 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 |
|
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 |
|
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 |
|
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: 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 ‘ |
|
‘ 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 |
-Wc++98-compat-bind-to-temporary-copy¶
Diagnostic text:
warning: |
|
of type C when binding a reference to a temporary would |
|
in C++98 |
-Wc++98-compat-extra-semi¶
Diagnostic text:
warning: extra ‘;’ outside of a function is incompatible with C++98 |
-Wc++98-compat-local-type-template-args¶
Diagnostic text:
warning: local type A as template argument is incompatible with C++98 |
-Wc++98-compat-pedantic¶
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, -Wc++98-compat-extra-semi.
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: variadic macros are incompatible with C++98 |
-Wc++98-compat-unnamed-type-template-args¶
Diagnostic text:
warning: unnamed type as template argument is incompatible with C++98 |
-Wc11-extensions¶
Diagnostic text:
warning: anonymous unions are a C11 extension |
warning: anonymous structs are a C11 extension |
warning: ’A’ is a C11 extension |
warning: pointer comparisons before C11 need to be between two complete or two incomplete types; A is |
|
complete and B is |
|
complete |
-Wc2x-extensions¶
This diagnostic is enabled by default.
Diagnostic text:
warning: omitting the parameter name in a function definition is a C2x extension |
-Wc99-compat¶
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: |
|
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 |
|
in C99 onwards |
-Wc99-designator¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wc++20-designator.
Diagnostic text:
warning: designated initializers are a C99 feature |
warning: array designators are a C99 extension |
warning: mixture of designated and non-designated initializers in the same initializer list is a C99 extension |
warning: nested designators are a C99 extension |
-Wc99-extensions¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wc99-designator.
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: ’A’ is a C99 extension |
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: 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 |
-Wcall-to-pure-virtual-from-ctor-dtor¶
This diagnostic is enabled by default.
Diagnostic text:
warning: call to pure virtual member function A has undefined behavior; overrides of A in subclasses are not available in the |
|
of C |
-Wcast-calling-convention¶
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 |
-Wcast-of-sel-type¶
This diagnostic is enabled by default.
Diagnostic text:
warning: cast of type A to B is deprecated; use sel_getName instead |
-Wcast-qual¶
Diagnostic text:
warning: cast from A to B drops |
|
warning: cast from A to B must have all intermediate pointers const qualified to be safe |
-Wchar-align¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wchar-subscripts¶
Diagnostic text:
warning: array section |
|
is of type ‘char’ |
warning: array subscript is of type ‘char’ |
-Wclang-cl-pch¶
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: #pragma hdrstop filename not supported, /Fp can be used to specify precompiled header filename |
warning: definition of macro A does not match definition in precompiled header |
-Wclass-conversion¶
This diagnostic is enabled by default.
Diagnostic text:
warning: conversion function converting A to its base class B will never be used |
warning: conversion function converting A to itself will never be used |
warning: conversion function converting A to B will never be used |
-Wclass-varargs¶
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 |
|
|
-Wcmse-union-leak¶
This diagnostic is enabled by default.
Diagnostic text:
warning: passing union across security boundary via |
|
may leak information |
-Wcomment¶
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: escaped newline between */ characters at block comment end |
warning: // comments are not allowed in this language |
warning: multi-line // comment |
warning: ’/*’ within block comment |
-Wcomments¶
Synonym for -Wcomment.
-Wcompare-distinct-pointer-types¶
This diagnostic is enabled by default.
Diagnostic text:
warning: comparison of distinct pointer types |
-Wcomplex-component-init¶
Diagnostic text:
warning: complex initialization specifying real and imaginary components is an extension |
-Wconcepts-ts-compat¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ISO C++20 does not permit the ‘bool’ keyword after ‘concept’ |
-Wconditional-type-mismatch¶
This diagnostic is enabled by default.
Diagnostic text:
warning: pointer/integer type mismatch in conditional expression |
-Wconditional-uninitialized¶
Diagnostic text:
warning: variable A may be uninitialized when |
|
-Wconfig-macros¶
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 |
-Wconstant-conversion¶
This diagnostic is enabled by default.
Also controls -Wbitfield-constant-conversion, -Wobjc-bool-constant-conversion.
Diagnostic text:
warning: implicit conversion from C to D changes value from A to B |
-Wconstant-evaluated¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ’A’ will always evaluate to ‘true’ in a manifestly constant-evaluated expression |
-Wconstant-logical-operand¶
This diagnostic is enabled by default.
Diagnostic text:
warning: use of logical ‘A’ with constant operand |
-Wconstexpr-not-const¶
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 |
-Wconsumed¶
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 |
-Wconversion¶
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, -Wimplicit-float-conversion, -Wimplicit-int-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 turns vector to scalar: A to B |
warning: passing non-generic address space pointer to A may cause dynamic conversion affecting performance |
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 |
-Wconversion-null¶
Synonym for -Wnull-conversion.
-Wcoroutine¶
This diagnostic is enabled by default.
Also controls -Wcoroutine-missing-unhandled-exception.
Diagnostic text:
warning: return type of ‘coroutine_handle<>::address should be ‘void*’ (have A) in order to get capability with existing async C API. |
-Wcoroutine-missing-unhandled-exception¶
This diagnostic is enabled by default.
Diagnostic text:
warning: A is required to declare the member ‘unhandled_exception()’ when exceptions are enabled |
-Wcovered-switch-default¶
Diagnostic text:
warning: default label in switch which covers all enumeration values |
-Wcpp¶
Synonym for -W#warnings.
-Wcstring-format-directive¶
Diagnostic text:
warning: using A directive in |
|
which is being passed as a formatting argument to the formatting |
|
-Wctad-maybe-unsupported¶
Diagnostic text:
warning: A may not intend to support class template argument deduction |
-Wctor-dtor-privacy¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wctu¶
This diagnostic is enabled by default.
Diagnostic text:
warning: imported AST from ‘A’ had been generated for a different target, current: B, imported: C |
-Wcuda-compat¶
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++ |
-Wcustom-atomic-properties¶
Diagnostic text:
warning: atomic by default property A has a user defined |
|
(property should be marked ‘atomic’ if this is intended) |
-Wdangling¶
This diagnostic is enabled by default.
Also controls -Wdangling-field, -Wdangling-gsl, -Wdangling-initializer-list, -Wreturn-stack-address.
Diagnostic text:
warning: |
|
|
|
will be destroyed at the end of the full-expression |
warning: sorry, lifetime extension of |
|
created by aggregate initialization using default member initializer is not supported; lifetime of |
|
will end at the end of the full-expression |
-Wdangling-else¶
This diagnostic is enabled by default.
Diagnostic text:
warning: add explicit braces to avoid dangling else |
-Wdangling-field¶
This diagnostic is enabled by default.
Diagnostic text:
warning: binding reference member A to stack allocated |
|
B |
warning: |
|
|
|
member A |
|
a temporary object whose lifetime is shorter than the lifetime of the constructed object |
warning: initializing pointer member A with the stack address of |
|
B |
warning: temporary bound to reference member of allocated object will be destroyed at the end of the full-expression |
-Wdangling-gsl¶
This diagnostic is enabled by default.
Diagnostic text:
warning: object backing the pointer will be destroyed at the end of the full-expression |
warning: initializing pointer member A to point to a temporary object whose lifetime is shorter than the lifetime of the constructed object |
-Wdangling-initializer-list¶
This diagnostic is enabled by default.
Diagnostic text:
warning: array backing |
|
will be destroyed at the end of the full-expression |
-Wdarwin-sdk-settings¶
This diagnostic is enabled by default.
Diagnostic text:
warning: SDK settings were ignored as ‘SDKSettings.json’ could not be parsed |
-Wdealloc-in-category¶
This diagnostic is enabled by default.
Diagnostic text:
warning: -dealloc is being overridden in a category |
-Wdeclaration-after-statement¶
Diagnostic text:
warning: ISO C90 forbids mixing declarations and code |
-Wdefaulted-function-deleted¶
This diagnostic is enabled by default.
Diagnostic text:
warning: explicitly defaulted |
|
comparison operator is implicitly deleted |
warning: explicitly defaulted |
|
is implicitly deleted |
-Wdelegating-ctor-cycles¶
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 |
-Wdelete-abstract-non-virtual-dtor¶
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
called on B that is abstract but has non-virtual destructor |
-Wdelete-incomplete¶
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 |
-Wdelete-non-abstract-non-virtual-dtor¶
Diagnostic text:
warning: |
|
called on non-final B that has virtual functions but non-virtual destructor |
-Wdelete-non-virtual-dtor¶
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wdelete-abstract-non-virtual-dtor, -Wdelete-non-abstract-non-virtual-dtor.
-Wdeprecated¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wdeprecated-anon-enum-enum-conversion, -Wdeprecated-array-compare, -Wdeprecated-attributes, -Wdeprecated-comma-subscript, -Wdeprecated-copy, -Wdeprecated-copy-dtor, -Wdeprecated-declarations, -Wdeprecated-dynamic-exception-spec, -Wdeprecated-enum-compare, -Wdeprecated-enum-compare-conditional, -Wdeprecated-enum-enum-conversion, -Wdeprecated-enum-float-conversion, -Wdeprecated-increment-bool, -Wdeprecated-register, -Wdeprecated-this-capture, -Wdeprecated-volatile, -Wdeprecated-writable-strings.
Diagnostic text:
warning: -O4 is equivalent to -O3 |
warning: access declarations are deprecated; use using declarations instead |
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: -fconcepts-ts is deprecated - use ‘-std=c++20’ for Concepts support |
warning: OpenCL version A does not support the option ‘B’ |
warning: Use of ‘long’ with ‘__vector’ is deprecated |
-Wdeprecated-anon-enum-enum-conversion¶
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
different enumeration types is deprecated |
-Wdeprecated-array-compare¶
This diagnostic is enabled by default.
Diagnostic text:
warning: comparison between two arrays is deprecated; to compare array addresses, use unary ‘+’ to decay operands to pointers |
-Wdeprecated-attributes¶
This diagnostic is enabled by default.
Diagnostic text:
warning: specifying vector types with the ‘mode’ attribute is deprecated; use the ‘vector_size’ attribute instead |
-Wdeprecated-comma-subscript¶
This diagnostic is enabled by default.
Diagnostic text:
warning: top-level comma expression in array subscript is deprecated |
-Wdeprecated-copy¶
Diagnostic text:
warning: definition of implicit copy |
|
for A is deprecated because it has a user-declared copy |
|
-Wdeprecated-copy-dtor¶
Diagnostic text:
warning: definition of implicit copy |
|
for A is deprecated because it has a user-declared destructor |
-Wdeprecated-declarations¶
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 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 |
-Wdeprecated-dynamic-exception-spec¶
Diagnostic text:
warning: dynamic exception specifications are deprecated |
-Wdeprecated-enum-compare¶
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
different enumeration types is deprecated |
-Wdeprecated-enum-compare-conditional¶
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
different enumeration types is deprecated |
-Wdeprecated-enum-enum-conversion¶
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
different enumeration types is deprecated |
-Wdeprecated-enum-float-conversion¶
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
|
|
type C |
|
|
|
type D is deprecated |
-Wdeprecated-implementations¶
Diagnostic text:
warning: implementing deprecated |
|
warning: implementing unavailable method |
-Wdeprecated-increment-bool¶
This diagnostic is enabled by default.
Diagnostic text:
warning: incrementing expression of type bool is deprecated and incompatible with C++17 |
-Wdeprecated-objc-isa-usage¶
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() |
-Wdeprecated-objc-pointer-introspection¶
This diagnostic is enabled by default.
Also controls -Wdeprecated-objc-pointer-introspection-performSelector.
Diagnostic text:
warning: bitmasking for introspection of Objective-C object pointers is strongly discouraged |
-Wdeprecated-objc-pointer-introspection-performSelector¶
This diagnostic is enabled by default.
Diagnostic text:
warning: bitmasking for introspection of Objective-C object pointers is strongly discouraged |
-Wdeprecated-register¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ‘register’ storage class specifier is deprecated and incompatible with C++17 |
-Wdeprecated-this-capture¶
Diagnostic text:
warning: implicit capture of ‘this’ with a capture default of ‘=’ is deprecated |
-Wdeprecated-volatile¶
This diagnostic is enabled by default.
Diagnostic text:
warning: compound assignment to object of volatile-qualified type A is deprecated |
warning: |
|
of object of volatile-qualified type B is deprecated |
warning: use of result of assignment to object of volatile-qualified type A is deprecated |
warning: volatile-qualified parameter type A is deprecated |
warning: volatile-qualified return type A is deprecated |
warning: volatile qualifier in structured binding declaration is deprecated |
-Wdisabled-optimization¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wdiscard-qual¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wdistributed-object-modifiers¶
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 |
-Wdiv-by-zero¶
Synonym for -Wdivision-by-zero.
-Wdivision-by-zero¶
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
by zero is undefined |
-Wdll-attribute-on-redeclaration¶
This diagnostic is enabled by default.
Diagnostic text:
warning: redeclaration of A should not add B attribute |
-Wdllexport-explicit-instantiation-decl¶
This diagnostic is enabled by default.
Diagnostic text:
warning: explicit instantiation declaration should not be ‘dllexport’ |
-Wdllimport-static-field-def¶
This diagnostic is enabled by default.
Diagnostic text:
warning: definition of dllimport static field |
-Wdocumentation¶
Also controls -Wdocumentation-deprecated-sync, -Wdocumentation-html.
Diagnostic text:
warning: ’ |
|
|
‘ command should not be used in a comment attached to a non- |
|
declaration |
warning: duplicated command ‘ |
|
B’ |
warning: empty paragraph passed to ‘ |
|
B’ command |
warning: ’ |
|
|
‘ command should not be used in a comment attached to a non-container declaration |
warning: ’ |
|
|
‘ command should be used in a comment attached to |
|
declaration |
warning: HTML start tag prematurely ended, expected attribute name or ‘>’ |
warning: expected quoted string after equals sign |
warning: ’ |
|
B’ command does not have a valid word argument |
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 |
|
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 |
-Wdocumentation-deprecated-sync¶
Diagnostic text:
warning: declaration is marked with ‘ |
|
deprecated’ command but does not have a deprecation attribute |
-Wdocumentation-html¶
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’ |
-Wdocumentation-pedantic¶
Also controls -Wdocumentation-unknown-command.
Diagnostic text:
warning: whitespace is not allowed in parameter passing direction |
-Wdocumentation-unknown-command¶
Diagnostic text:
warning: unknown command tag name ‘A’; did you mean ‘B’? |
warning: unknown command tag name |
-Wdouble-promotion¶
Diagnostic text:
warning: implicit conversion increases floating-point precision: A to B |
-Wdtor-name¶
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: ISO C++ considers this destructor name lookup to be ambiguous |
warning: ISO C++ requires the name after ‘::~’ to be found in the same scope as the name before ‘::~’ |
warning: qualified destructor name only found in lexical scope; omit the qualifier to find this type name by unqualified lookup |
-Wdtor-typedef¶
This diagnostic is an error by default, but the flag -Wno-dtor-typedef
can be used to disable the error.
Diagnostic text:
error: destructor cannot be declared using a |
|
A of the class name |
-Wduplicate-decl-specifier¶
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: duplicate ‘A’ declaration specifier |
warning: duplicate ‘A’ declaration specifier |
warning: multiple identical address spaces specified for type |
warning: duplicate ‘A’ declaration specifier |
-Wduplicate-enum¶
Diagnostic text:
warning: element A has been implicitly assigned B which another element has been assigned |
-Wduplicate-method-match¶
Diagnostic text:
warning: multiple declarations of method A found and ignored |
-Wduplicate-protocol¶
This diagnostic is enabled by default.
Diagnostic text:
warning: duplicate protocol definition of A is ignored |
-Wdynamic-class-memaccess¶
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
this B call is a pointer to |
|
dynamic class D; vtable pointer will be |
|
-Wdynamic-exception-spec¶
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 |
-Weffc++¶
Synonym for -Wnon-virtual-dtor.
-Welaborated-enum-base¶
This diagnostic is an error by default, but the flag -Wno-elaborated-enum-base
can be used to disable the error.
Diagnostic text:
error: non-defining declaration of enumeration with a fixed underlying type is only permitted as a standalone declaration |
|
-Welaborated-enum-class¶
This diagnostic is an error by default, but the flag -Wno-elaborated-enum-class
can be used to disable the error.
Diagnostic text:
error: reference to enumeration must use ‘enum’ not ‘enum |
|
‘ |
-Wembedded-directive¶
Diagnostic text:
warning: embedding a directive within macro arguments has undefined behavior |
-Wempty-body¶
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 |
-Wempty-decomposition¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ISO C++17 does not allow a decomposition group to be empty |
-Wempty-init-stmt¶
Diagnostic text:
warning: empty initialization statement of ‘ |
|
‘ has no effect |
-Wempty-translation-unit¶
Diagnostic text:
warning: ISO C requires a translation unit to contain at least one declaration |
-Wencode-type¶
This diagnostic is enabled by default.
Diagnostic text:
warning: encoding of A type is incomplete because B component has unknown encoding |
-Wendif-labels¶
Synonym for -Wextra-tokens.
-Wenum-compare¶
This diagnostic is enabled by default.
Also controls -Wdeprecated-enum-compare, -Wenum-compare-switch.
Diagnostic text:
warning: |
|
different enumeration types |
-Wenum-compare-conditional¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wdeprecated-enum-compare-conditional.
Diagnostic text:
warning: |
|
different enumeration types |
-Wenum-compare-switch¶
This diagnostic is enabled by default.
Diagnostic text:
warning: comparison of different enumeration types in switch statement |
-Wenum-conversion¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wenum-compare-conditional, -Wenum-enum-conversion, -Wenum-float-conversion.
Diagnostic text:
warning: implicit conversion from enumeration type A to different enumeration type B |
-Wenum-enum-conversion¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wdeprecated-enum-enum-conversion.
Diagnostic text:
warning: |
|
different enumeration types |
-Wenum-float-conversion¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wdeprecated-enum-float-conversion.
Diagnostic text:
warning: |
|
|
|
type C |
|
|
|
type D |
-Wenum-too-large¶
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 |
-Wexceptions¶
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 |
-Wexcess-initializers¶
This diagnostic is enabled by default.
Diagnostic text:
warning: excess elements in |
|
initializer |
warning: excess elements in initializer for indivisible sizeless type A |
warning: excess elements in char array initializer |
warning: initializer-string for char array is too long |
-Wexpansion-to-defined¶
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 |
-Wexplicit-initialize-call¶
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 |
-Wexplicit-ownership-type¶
Diagnostic text:
warning: method parameter of type A with no explicit ownership |
-Wexport-unnamed¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ISO C++20 does not permit |
|
declaration to appear in an export block |
warning: ISO C++20 does not permit a declaration that does not introduce any names to be exported |
-Wexport-using-directive¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ISO C++20 does not permit using directive to be exported |
-Wextern-c-compat¶
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
|
has size 0 in C, |
|
in C++ |
-Wextern-initializer¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ‘extern’ variable has an initializer |
-Wextra¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wdeprecated-copy, -Wempty-init-stmt, -Wignored-qualifiers, -Winitializer-overrides, -Wmissing-field-initializers, -Wmissing-method-return-type, -Wnull-pointer-arithmetic, -Wsemicolon-before-method-body, -Wsign-compare, -Wunused-parameter.
Diagnostic text:
warning: call to function without interrupt attribute could clobber interruptee’s VFP registers |
-Wextra-qualification¶
This diagnostic is enabled by default.
Diagnostic text:
warning: extra qualification on member A |
-Wextra-semi¶
Also controls -Wc++11-extra-semi, -Wc++98-compat-extra-semi.
Diagnostic text:
warning: extra ‘;’ |
|
warning: extra ‘;’ after member function definition |
-Wextra-semi-stmt¶
Also controls -Wempty-init-stmt.
Diagnostic text:
warning: empty expression statement has no effect; remove unnecessary ‘;’ to silence this warning |
-Wextra-tokens¶
This diagnostic is enabled by default.
Diagnostic text:
warning: extra tokens at end of #A directive |
warning: extra tokens at the end of ‘#pragma omp A’ are ignored |
-Wfinal-dtor-non-final-class¶
This diagnostic is enabled by default.
Diagnostic text:
warning: class with destructor marked ‘ |
|
‘ cannot be inherited from |
-Wfixed-enum-extension¶
Diagnostic text:
warning: enumeration types with a fixed underlying type are a Clang extension |
-Wfixed-point-overflow¶
This diagnostic is enabled by default.
Diagnostic text:
warning: overflow in expression; result is A with type B |
-Wflag-enum¶
This diagnostic is enabled by default.
Diagnostic text:
warning: enumeration value A is out of range of flags in enumeration type B |
-Wflexible-array-extensions¶
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 |
-Wfloat-conversion¶
Also controls -Wfloat-overflow-conversion, -Wfloat-zero-conversion.
Diagnostic text:
warning: implicit conversion turns floating-point number into integer: A to B |
-Wfloat-overflow-conversion¶
Diagnostic text:
warning: implicit conversion from A to B changes value from C to D |
warning: implicit conversion of out of range value from A to B is undefined |
-Wfloat-zero-conversion¶
Diagnostic text:
warning: implicit conversion from A to B changes non-zero value from C to D |
-Wfor-loop-analysis¶
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 |
-Wformat¶
This diagnostic is enabled by default.
Also controls -Wformat-extra-args, -Wformat-invalid-specifier, -Wformat-security, -Wformat-y2k, -Wformat-zero-length, -Wnonnull.
Diagnostic text:
warning: using ‘%%P’ format specifier without precision |
warning: |
|
’A’ should not be used as format arguments; add an explicit cast to B instead |
warning: using ‘A’ format specifier, but argument has boolean value |
warning: format specifies type A but the argument has |
|
B |
warning: using ‘A’ format specifier annotation outside of os_log()/os_trace() |
warning: invalid position specified for |
|
warning: cannot mix positional and non-positional arguments in format string |
warning: length modifier ‘A’ results in undefined behavior or no effect with ‘B’ conversion specifier |
warning: format string should not be a wide string |
warning: position arguments in format strings start counting at 1 (not 0) |
warning: format string missing |
warning: object format flags cannot be used with ‘A’ conversion specifier |
warning: ’ |
|
‘ specified field |
|
is missing a matching ‘int’ argument |
warning: field |
|
should have type B, but argument has type C |
warning: missing object format flag |
warning: format string contains ‘\0’ within the string body |
warning: format string is not null-terminated |
warning: flag ‘A’ is ignored when flag ‘B’ is present |
warning: incomplete format specifier |
warning: more ‘%%’ conversions than data arguments |
warning: ’A’ is not a valid object format flag |
warning: flag ‘A’ results in undefined behavior with ‘B’ conversion specifier |
warning: |
|
used with ‘B’ conversion specifier, resulting in undefined behavior |
warning: data argument position ‘A’ exceeds the number of data arguments (B) |
warning: zero field width in scanf format string is unused |
warning: no closing ‘]’ for ‘%%[‘ in scanf format string |
-Wformat-extra-args¶
This diagnostic is enabled by default.
Diagnostic text:
warning: data argument not used by format string |
-Wformat-invalid-specifier¶
This diagnostic is enabled by default.
Diagnostic text:
warning: invalid conversion specifier ‘A’ |
-Wformat-non-iso¶
Diagnostic text:
warning: ’A’ |
|
is not supported by ISO C |
warning: using length modifier ‘A’ with conversion specifier ‘B’ is not supported by ISO C |
warning: positional arguments are not supported by ISO C |
-Wformat-pedantic¶
Diagnostic text:
warning: |
|
’A’ should not be used as format arguments; add an explicit cast to B instead |
warning: format specifies type A but the argument has |
|
B |
-Wformat-security¶
This diagnostic is enabled by default.
Diagnostic text:
warning: format string is not a string literal (potentially insecure) |
-Wformat-type-confusion¶
Diagnostic text:
warning: format specifies type A but the argument has |
|
B |
-Wformat-y2k¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wformat-zero-length¶
This diagnostic is enabled by default.
Diagnostic text:
warning: format string is empty |
-Wformat=2¶
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wformat-nonliteral, -Wformat-security, -Wformat-y2k.
-Wfortify-source¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ’A’ will always overflow; destination buffer has size B, but format string expands to at least C |
warning: ’A’ will always overflow; destination buffer has size B, but size argument is C |
warning: ’A’ size argument is too large; destination buffer has size B, but size argument is C |
-Wframe-larger-than=¶
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 |
-Wframework-include-private-from-public¶
This diagnostic is enabled by default.
Diagnostic text:
warning: public framework header includes private framework header ‘A’ |
-Wfunction-def-in-objc-container¶
This diagnostic is enabled by default.
Diagnostic text:
warning: function definition inside an Objective-C container is deprecated |
-Wfunction-multiversion¶
This diagnostic is enabled by default.
Diagnostic text:
warning: body of cpu_dispatch function will be ignored |
warning: CPU list contains duplicate entries; attribute ignored |
-Wfuture-compat¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wgcc-compat¶
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: GCC does not allow the A attribute to be written on a type |
warning: GCC does not allow variable declarations in for loop initializers before C99 |
warning: ’A’ is bound to current loop, GCC binds it to the enclosing loop |
-Wglobal-constructors¶
Diagnostic text:
warning: declaration requires a global constructor |
warning: declaration requires a global destructor |
-Wglobal-isel¶
This diagnostic is enabled by default.
Diagnostic text:
warning: -fglobal-isel support for the ‘A’ architecture is incomplete |
warning: -fglobal-isel support is incomplete for this architecture at the current optimization level |
-Wgnu¶
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.
-Wgnu-alignof-expression¶
This diagnostic is enabled by default.
Diagnostic text:
warning: A applied to an expression is a GNU extension |
-Wgnu-array-member-paren-init¶
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 |
-Wgnu-compound-literal-initializer¶
Diagnostic text:
warning: initialization of an array from a compound literal is a GNU extension |
-Wgnu-conditional-omitted-operand¶
Diagnostic text:
warning: use of GNU ?: conditional expression extension, omitting middle operand |
-Wgnu-designator¶
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 |
-Wgnu-empty-struct¶
Diagnostic text:
warning: empty |
|
is a GNU extension |
warning: flexible array member A in otherwise empty |
|
is a GNU extension |
warning: |
|
without named members is a GNU extension |
-Wgnu-flexible-array-initializer¶
Diagnostic text:
warning: flexible array initialization is a GNU extension |
-Wgnu-flexible-array-union-member¶
Diagnostic text:
warning: flexible array member A in a union is a GNU extension |
-Wgnu-folding-constant¶
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 |
-Wgnu-inline-cpp-without-extern¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ‘gnu_inline’ attribute without ‘extern’ in C++ treated as externally available, this changed in Clang 10 |
-Wgnu-label-as-value¶
Diagnostic text:
warning: use of GNU address-of-label extension |
warning: use of GNU indirect-goto extension |
-Wgnu-redeclared-enum¶
Diagnostic text:
warning: redeclaration of already-defined enum A is a GNU extension |
-Wgnu-static-float-init¶
This diagnostic is enabled by default.
Diagnostic text:
warning: in-class initializer for static data member of type A is a GNU extension |
-Wgnu-string-literal-operator-template¶
This diagnostic is enabled by default.
Diagnostic text:
warning: string literal operator templates are a GNU extension |
-Wgnu-variable-sized-type-not-at-end¶
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 |
-Wgnu-zero-line-directive¶
Diagnostic text:
warning: #line directive with zero argument is a GNU extension |
-Wgnu-zero-variadic-macro-arguments¶
Diagnostic text:
warning: must specify at least one argument for ‘…’ parameter of variadic macro |
warning: token pasting of ‘,’ and __VA_ARGS__ is a GNU extension |
-Wheader-guard¶
This diagnostic is enabled by default.
Diagnostic text:
warning: A is used as a header guard here, followed by #define of a different macro |
-Whip-only¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ’A’ is ignored since it is only supported for HIP |
-Widiomatic-parentheses¶
Diagnostic text:
warning: using the result of an assignment as a condition without parentheses |
-Wignored-attributes¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ‘trivial_abi’ cannot be applied to A |
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: ‘cmse_nonsecure_entry’ cannot be applied to functions with internal linkage |
warning: ‘dllexport’ attribute ignored on explicit instantiation definition |
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 |
|
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 |
|
warning: A attribute only applies to B |
warning: attribute A ignored, because it cannot be applied to omitted return type |
warning: A calling convention is not supported |
|
warning: attribute A ignored, because it cannot be applied to a type |
warning: ignoring __declspec(allocator) because the function return type A is not a pointer or reference type |
warning: attribute A is ignored, place it after “ |
|
” 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 |
|
warning: ‘objc_externally_retained’ can only be applied to local variables |
|
warning: import |
|
cannot be applied to a function with a definition |
warning: ‘internal_linkage’ attribute on a non-static local variable is ignored |
warning: |
|
‘interrupt’ attribute only applies to functions that have |
|
warning: qualifiers after comma in declarator list are ignored |
warning: ‘mig_server_routine’ attribute only applies to routines that return a kern_return_t |
warning: import |
|
(B) does not match the import |
|
(C) of the previous declaration |
warning: unknown attribute ‘A’ |
warning: ‘nocf_check’ attribute ignored; use -fcf-protection to enable the attribute |
warning: ‘noderef’ can only be used on an array or pointer type |
warning: A attribute is ignored because there exists no call expression inside the statement |
warning: ‘nothrow’ attribute conflicts with exception specification; attribute ignored |
warning: A attribute only applies to |
|
parameters |
warning: A attribute only applies to |
|
that return |
|
warning: A attribute isn’t implemented by this Objective-C runtime |
warning: direct attribute on property A ignored (not implemented by this Objective-C runtime) |
warning: A attribute is deprecated and ignored in OpenCL version B |
warning: ‘require_constant_initialization’ attribute added after initialization of variable |
warning: repeated RISC-V ‘interrupt’ attribute |
warning: template parameter of a function template with the ‘sycl_kernel’ attribute cannot be a non-type template parameter |
warning: function template with ‘sycl_kernel’ attribute must have a single parameter |
warning: ‘sycl_kernel’ attribute only applies to a function template with at least two template parameters |
warning: function template with ‘sycl_kernel’ attribute must have a ‘void’ return type |
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 |
|
types; type here is C |
warning: __declspec attribute A is not supported |
warning: |
|
|
’C’ in the ‘target’ attribute string; ‘target’ attribute ignored |
warning: ‘__clang__’ is a predefined macro name, not an attribute scope specifier; did you mean ‘_Clang’ instead? |
-Wignored-optimization-argument¶
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 |
-Wignored-pragma-intrinsic¶
This diagnostic is enabled by default.
Diagnostic text:
warning: A is not a recognized builtin |
|
-Wignored-pragma-optimize¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ’#pragma optimize’ is not supported |
-Wignored-pragmas¶
This diagnostic is enabled by default.
Also controls -Wignored-pragma-intrinsic, -Wignored-pragma-optimize.
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: unknown module ‘A’ |
warning: expected action or ‘)’ in ‘#pragma A’ - ignored |
warning: missing ‘:’ after A - ignoring |
warning: missing ‘:’ or ‘)’ after A - ignoring |
warning: expected ‘,’ in ‘#pragma A’ |
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 |
|
- 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: expected string literal in ‘#pragma A’ - ignoring |
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: unexpected argument ‘A’ to ‘#pragma B’ |
|
warning: unknown action ‘B’ for ‘#pragma A’ - ignored |
warning: missing argument to ‘#pragma A’ |
|
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’ |
-Wignored-qualifiers¶
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: ARC |
|
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 |
-Wimplicit¶
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wimplicit-function-declaration, -Wimplicit-int.
-Wimplicit-atomic-properties¶
Diagnostic text:
warning: property is assumed atomic when auto-synthesizing the property |
warning: property is assumed atomic by default |
-Wimplicit-const-int-float-conversion¶
This diagnostic is enabled by default.
Diagnostic text:
warning: implicit conversion from C to D changes value from A to B |
-Wimplicit-conversion-floating-point-to-bool¶
This diagnostic is enabled by default.
Diagnostic text:
warning: implicit conversion turns floating-point number into bool: A to B |
-Wimplicit-exception-spec-mismatch¶
This diagnostic is enabled by default.
Diagnostic text:
warning: function previously declared with an |
|
exception specification redeclared with an |
|
exception specification |
-Wimplicit-fallthrough¶
Also controls -Wimplicit-fallthrough-per-function.
Diagnostic text:
warning: fallthrough annotation in unreachable code |
warning: unannotated fall-through between switch labels |
-Wimplicit-fallthrough-per-function¶
Diagnostic text:
warning: unannotated fall-through between switch labels in partly-annotated function |
-Wimplicit-fixed-point-conversion¶
This diagnostic is enabled by default.
Diagnostic text:
warning: implicit conversion from A cannot fit within the range of values for B |
-Wimplicit-float-conversion¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wimplicit-int-float-conversion, -Wobjc-signed-char-bool-implicit-float-conversion.
Diagnostic text:
warning: implicit conversion loses floating-point precision: A to B |
warning: implicit conversion when assigning computation result loses floating-point precision: A to B |
-Wimplicit-function-declaration¶
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: implicit declaration of function A is invalid in C99 |
warning: implicitly declaring library function ‘A’ with type B |
error: use of unknown builtin A |
warning: implicit declaration of function A |
-Wimplicit-int¶
This diagnostic is enabled by default.
Diagnostic text:
warning: type specifier missing, defaults to ‘int’ |
-Wimplicit-int-conversion¶
Also controls -Wobjc-signed-char-bool-implicit-int-conversion.
Diagnostic text:
warning: higher order bits are zeroes after implicit conversion |
warning: implicit conversion loses integer precision: A to B |
-Wimplicit-int-float-conversion¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wimplicit-const-int-float-conversion.
Diagnostic text:
warning: implicit conversion from A to B may lose precision |
-Wimplicit-retain-self¶
Diagnostic text:
warning: block implicitly retains ‘self’; explicitly mention ‘self’ to indicate this is intended behavior |
-Wimplicitly-unsigned-literal¶
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 |
-Winaccessible-base¶
This diagnostic is enabled by default.
Diagnostic text:
warning: direct base A is inaccessible due to ambiguity:B |
-Winclude-next-absolute-path¶
This diagnostic is enabled by default.
Diagnostic text:
warning: #include_next in file found relative to primary source file or found by absolute path; will search from start of include path |
-Winclude-next-outside-header¶
This diagnostic is enabled by default.
Diagnostic text:
warning: #include_next in primary source file; will search from start of include path |
-Wincompatible-exception-spec¶
This diagnostic is enabled by default.
Diagnostic text:
warning: exception specifications of |
|
types differ |
warning: target exception specification is not superset of source |
-Wincompatible-function-pointer-types¶
This diagnostic is enabled by default.
Diagnostic text:
warning: incompatible function pointer types |
|
|
-Wincompatible-library-redeclaration¶
This diagnostic is enabled by default.
Diagnostic text:
warning: incompatible redeclaration of library function A |
-Wincompatible-ms-struct¶
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 |
error: ms_struct may not produce Microsoft-compatible layouts with fundamental data types with sizes that aren’t a power of two |
-Wincompatible-pointer-types¶
This diagnostic is enabled by default.
Also controls -Wincompatible-function-pointer-types, -Wincompatible-pointer-types-discards-qualifiers.
Diagnostic text:
warning: incompatible pointer types |
|
|
-Wincompatible-pointer-types-discards-qualifiers¶
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
discards qualifiers in nested pointer types |
warning: |
|
discards qualifiers |
warning: |
|
from B to C changes address space of nested pointers |
-Wincompatible-property-type¶
This diagnostic is enabled by default.
Diagnostic text:
warning: property type A is incompatible with type B inherited from C |
-Wincompatible-sysroot¶
This diagnostic is enabled by default.
Diagnostic text:
warning: using sysroot for ‘A’ but targeting ‘B’ |
-Wincomplete-framework-module-declaration¶
This diagnostic is enabled by default.
Diagnostic text:
warning: skipping ‘A’ because module declaration of ‘B’ lacks the ‘framework’ qualifier |
-Wincomplete-implementation¶
This diagnostic is enabled by default.
Diagnostic text:
warning: method definition for A not found |
-Wincomplete-module¶
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wincomplete-umbrella, -Wnon-modular-include-in-module.
-Wincomplete-setjmp-declaration¶
This diagnostic is enabled by default.
Diagnostic text:
warning: declaration of built-in function ‘A’ requires the declaration of the ‘jmp_buf’ type, commonly provided in the header <setjmp.h>. |
-Wincomplete-umbrella¶
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’ |
-Winconsistent-dllimport¶
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 |
-Winconsistent-missing-destructor-override¶
Diagnostic text:
warning: A overrides a destructor but is not marked ‘override’ |
-Winconsistent-missing-override¶
This diagnostic is enabled by default.
Diagnostic text:
warning: A overrides a member function but is not marked ‘override’ |
-Wincrement-bool¶
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 |
-Winit-self¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Winitializer-overrides¶
This diagnostic is enabled by default.
Diagnostic text:
warning: initializer |
|
overrides prior initialization of this subobject |
warning: initializer |
|
overrides prior initialization of this subobject |
-Winjected-class-name¶
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 |
-Winline-asm¶
This diagnostic is enabled by default.
Diagnostic text:
The text of this diagnostic is not controlled by Clang.
-Winline-namespace-reopened-noninline¶
This diagnostic is enabled by default.
Diagnostic text:
warning: inline namespace reopened as a non-inline namespace |
-Winline-new-delete¶
This diagnostic is enabled by default.
Diagnostic text:
warning: replacement function A cannot be declared ‘inline’ |
-Winstantiation-after-specialization¶
This diagnostic is enabled by default.
Diagnostic text:
warning: explicit instantiation of A that occurs after an explicit specialization has no effect |
-Wint-conversion¶
This diagnostic is enabled by default.
Diagnostic text:
warning: incompatible integer to pointer conversion |
|
|
warning: incompatible pointer to integer conversion |
|
|
-Wint-conversions¶
Synonym for -Wint-conversion.
-Wint-in-bool-context¶
Diagnostic text:
warning: converting the enum constant to a boolean |
warning: converting the result of ‘<<’ to a boolean; did you mean ‘(A) != 0’? |
-Wint-to-pointer-cast¶
This diagnostic is enabled by default.
Also controls -Wint-to-void-pointer-cast.
Diagnostic text:
warning: cast to B from smaller integer type A |
-Wint-to-void-pointer-cast¶
This diagnostic is enabled by default.
Diagnostic text:
warning: cast to B from smaller integer type A |
-Winteger-overflow¶
This diagnostic is enabled by default.
Diagnostic text:
warning: overflow in expression; result is A with type B |
-Winvalid-command-line-argument¶
This diagnostic is enabled by default.
Also controls -Wignored-optimization-argument.
Diagnostic text:
warning: the given MCU supports A hardware multiply, but -mhwmult is set to B. |
warning: no MCU device specified, but ‘-mhwmult’ is set to ‘auto’, assuming no hardware multiply. Use -mmcu to specify a MSP430 device, or -mhwmult to set hardware multiply type explicitly. |
warning: the given MCU does not support hardware multiply, but -mhwmult is set to A. |
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 |
warning: ignoring extension ‘A’ because the ‘B’ architecture does not support it |
-Winvalid-constexpr¶
This diagnostic is an error by default, but the flag -Wno-invalid-constexpr
can be used to disable the error.
Diagnostic text:
error: |
|
|
|
never produces a constant expression |
-Winvalid-iboutlet¶
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
with A attribute must be an object type (invalid B) |
warning: IBOutletCollection properties should be copy/strong and not assign |
-Winvalid-initializer-from-system-header¶
This diagnostic is enabled by default.
Diagnostic text:
warning: invalid constructor form class in system header, should not be explicit |
-Winvalid-ios-deployment-target¶
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 |
-Winvalid-no-builtin-names¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ’A’ is not a valid builtin name for B |
-Winvalid-noreturn¶
This diagnostic is enabled by default.
Diagnostic text:
warning: function declared ‘noreturn’ should not return |
warning: function A declared ‘noreturn’ should not return |
-Winvalid-offsetof¶
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 |
-Winvalid-or-nonexistent-directory¶
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’ |
-Winvalid-partial-specialization¶
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 |
-Winvalid-pch¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Winvalid-pp-token¶
This diagnostic is enabled by default.
Diagnostic text:
warning: empty character constant |
warning: missing terminating |
|
character |
-Winvalid-source-encoding¶
This diagnostic is enabled by default.
Diagnostic text:
warning: illegal character encoding in character literal |
warning: illegal character encoding in string literal |
-Winvalid-token-paste¶
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 |
-Wjump-seh-finally¶
This diagnostic is enabled by default.
Diagnostic text:
warning: jump out of __finally block has undefined behavior |
-Wkeyword-compat¶
This diagnostic is enabled by default.
Diagnostic text:
warning: keyword ‘A’ will be made available as an identifier |
|
-Wknr-promoted-parameter¶
This diagnostic is enabled by default.
Diagnostic text:
warning: promoted type of K&R function parameter is not compatible with parameter type declared in a previous prototype |
-Wlarge-by-value-copy¶
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 ? |
-Wliteral-conversion¶
This diagnostic is enabled by default.
Diagnostic text:
warning: implicit conversion from A to B changes value from C to D |
warning: implicit conversion of out of range value from A to B is undefined |
-Wliteral-range¶
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 |
-Wlocal-type-template-args¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wc++98-compat-local-type-template-args.
Diagnostic text:
warning: template argument uses local type A |
-Wlogical-not-parentheses¶
This diagnostic is enabled by default.
Diagnostic text:
warning: logical not is only applied to the left hand side of this |
|
-Wlong-long¶
Also controls -Wc++11-long-long.
Diagnostic text:
warning: ‘long long’ is an extension when C99 mode is not enabled |
-Wmacro-redefined¶
This diagnostic is enabled by default.
Diagnostic text:
warning: A macro redefined |
-Wmain¶
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 |
-Wmain-return-type¶
This diagnostic is enabled by default.
Diagnostic text:
warning: return type of ‘main’ is not ‘int’ |
-Wmalformed-warning-check¶
This diagnostic is enabled by default.
Diagnostic text:
warning: __has_warning expected option name (e.g. “-Wundef”) |
-Wmany-braces-around-scalar-init¶
This diagnostic is enabled by default.
Diagnostic text:
warning: too many braces around |
|
initializer |
-Wmax-tokens¶
Diagnostic text:
warning: the number of preprocessor source tokens (A) exceeds this token limit (B) |
warning: the total number of preprocessor source tokens (A) exceeds the token limit (B) |
The warning is issued if the number of pre-processor tokens exceeds the token limit, which can be set in three ways:
As a limit at a specific point in a file, using the
clang max_tokens_here
pragma:As a per-translation unit limit, using the
-fmax-tokens=
command-line flag:As a per-translation unit limit using the
clang max_tokens_total
pragma, which works like and overrides the-fmax-tokens=
flag:
These limits can be helpful in limiting code growth through included files.
Setting a token limit of zero means no limit.
Note that the warning is disabled by default, so -Wmax-tokens must be used in addition with the pragmas or -fmax-tokens flag to get any warnings.
-Wmax-unsigned-zero¶
This diagnostic is enabled by default.
Diagnostic text:
warning: taking the max of |
|
is always equal to the other value |
-Wmemset-transposed-args¶
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
; did you mean to transpose the last two arguments? |
-Wmemsize-comparison¶
This diagnostic is enabled by default.
Diagnostic text:
warning: size argument in A call is a comparison |
-Wmethod-signatures¶
Diagnostic text:
warning: conflicting parameter types in implementation of A: B vs C |
warning: conflicting return type in implementation of A: B vs C |
-Wmicrosoft¶
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-drectve-section, -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.
-Wmicrosoft-anon-tag¶
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 |
-Wmicrosoft-cast¶
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 |
-Wmicrosoft-comment-paste¶
Diagnostic text:
warning: pasting two ‘/’ tokens into a ‘//’ comment is a Microsoft extension |
-Wmicrosoft-const-init¶
This diagnostic is enabled by default.
Diagnostic text:
warning: default initialization of an object of const type A |
|
is a Microsoft extension |
-Wmicrosoft-default-arg-redefinition¶
This diagnostic is enabled by default.
Diagnostic text:
warning: redefinition of default argument |
-Wmicrosoft-drectve-section¶
This diagnostic is enabled by default.
Diagnostic text:
warning: #pragma A(“.drectve”) has undefined behavior, use #pragma comment(linker, …) instead |
-Wmicrosoft-end-of-file¶
Diagnostic text:
warning: treating Ctrl-Z as end-of-file is a Microsoft extension |
-Wmicrosoft-enum-forward-reference¶
This diagnostic is enabled by default.
Diagnostic text:
warning: forward references to ‘enum’ types are a Microsoft extension |
-Wmicrosoft-enum-value¶
Diagnostic text:
warning: enumerator value is not representable in the underlying type A |
-Wmicrosoft-exception-spec¶
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 |
-Wmicrosoft-exists¶
This diagnostic is enabled by default.
Diagnostic text:
warning: dependent |
|
declarations are ignored |
-Wmicrosoft-explicit-constructor-call¶
This diagnostic is enabled by default.
Diagnostic text:
warning: explicit constructor calls are a Microsoft extension |
-Wmicrosoft-extra-qualification¶
This diagnostic is enabled by default.
Diagnostic text:
warning: extra qualification on member A |
-Wmicrosoft-fixed-enum¶
Diagnostic text:
warning: enumeration types with a fixed underlying type are a Microsoft extension |
-Wmicrosoft-flexible-array¶
Diagnostic text:
warning: flexible array member A in otherwise empty |
|
is a Microsoft extension |
warning: flexible array member A in a union is a Microsoft extension |
-Wmicrosoft-goto¶
This diagnostic is enabled by default.
Diagnostic text:
warning: jump from this goto statement to its label is a Microsoft extension |
-Wmicrosoft-inaccessible-base¶
This diagnostic is enabled by default.
Diagnostic text:
warning: accessing inaccessible direct base A of B is a Microsoft extension |
-Wmicrosoft-include¶
This diagnostic is enabled by default.
Diagnostic text:
warning: #include resolved using non-portable Microsoft search rules as: A |
-Wmicrosoft-mutable-reference¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ‘mutable’ on a reference type is a Microsoft extension |
-Wmicrosoft-pure-definition¶
This diagnostic is enabled by default.
Diagnostic text:
warning: function definition with pure-specifier is a Microsoft extension |
-Wmicrosoft-redeclare-static¶
Diagnostic text:
warning: redeclaring non-static A as static is a Microsoft extension |
-Wmicrosoft-sealed¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ‘sealed’ keyword is a Microsoft extension |
-Wmicrosoft-template¶
This diagnostic is enabled by default.
Also controls -Wmicrosoft-template-shadow.
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: 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: |
|
specialization of B not in |
|
is a Microsoft extension |
warning: template argument for template type parameter must be a type; omitted ‘typename’ is a Microsoft extension |
warning: ‘static’ can only be specified inside the class definition |
warning: use of undeclared identifier A; unqualified lookup into dependent bases of class template B is a Microsoft extension |
-Wmicrosoft-template-shadow¶
This diagnostic is enabled by default.
Diagnostic text:
warning: declaration of A shadows template parameter |
-Wmicrosoft-union-member-reference¶
This diagnostic is enabled by default.
Diagnostic text:
warning: union member A has reference type B, which is a Microsoft extension |
-Wmicrosoft-unqualified-friend¶
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 |
-Wmicrosoft-using-decl¶
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 |
-Wmicrosoft-void-pseudo-dtor¶
This diagnostic is enabled by default.
Diagnostic text:
warning: pseudo-destructors on type void are a Microsoft extension |
-Wmisexpect¶
Diagnostic text:
warning: Potential performance regression from use of __builtin_expect(): Annotation was correct on A of profiled executions. |
-Wmisleading-indentation¶
Diagnostic text:
warning: misleading indentation; statement is not part of the previous ‘ |
|
‘ |
-Wmismatched-new-delete¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ‘delete |
|
‘ applied to a pointer that was allocated with ‘new |
|
‘; did you mean ‘delete |
|
‘? |
-Wmismatched-parameter-types¶
This diagnostic is enabled by default.
Diagnostic text:
warning: conflicting parameter types in implementation of A |
-Wmismatched-return-types¶
This diagnostic is enabled by default.
Diagnostic text:
warning: conflicting return type in implementation of A |
-Wmismatched-tags¶
Diagnostic text:
warning: C defined as |
|
|
here but previously declared as |
|
|
; this is valid, but may result in linker errors under the Microsoft C++ ABI |
warning: |
|
|
C was previously declared as a |
|
|
; this is valid, but may result in linker errors under the Microsoft C++ ABI |
-Wmissing-constinit¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ‘constinit’ specifier missing on initializing declaration of A |
-Wmissing-declarations¶
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 |
-Wmissing-exception-spec¶
This diagnostic is enabled by default.
Diagnostic text:
warning: A is missing exception specification ‘B’ |
-Wmissing-format-attribute¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wmissing-include-dirs¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wmissing-method-return-type¶
Diagnostic text:
warning: method has no return type specified; defaults to ‘id’ |
-Wmissing-noescape¶
This diagnostic is enabled by default.
Diagnostic text:
warning: parameter of overriding method should be annotated with __attribute__((noescape)) |
-Wmissing-noreturn¶
Diagnostic text:
warning: block could be declared with attribute ‘noreturn’ |
warning: |
|
B could be declared with attribute ‘noreturn’ |
-Wmissing-prototype-for-cc¶
This diagnostic is enabled by default.
Diagnostic text:
warning: function with no prototype cannot use the A calling convention |
-Wmissing-selector-name¶
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 |
-Wmissing-sysroot¶
This diagnostic is enabled by default.
Diagnostic text:
warning: no such sysroot directory: ‘A’ |
-Wmissing-variable-declarations¶
Diagnostic text:
warning: no previous extern declaration for non-static variable A |
-Rmodule-build¶
Diagnostic text:
remark: building module ‘A’ as ‘B’ |
remark: finished building module ‘A’ |
remark: could not acquire lock file for module ‘A’: B |
remark: timed out waiting to acquire lock file for module ‘A’ |
-Wmodule-conflict¶
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 |
-Wmodule-file-config-mismatch¶
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 |
-Wmodule-file-extension¶
This diagnostic is enabled by default.
Diagnostic text:
warning: duplicate module file extension block name ‘A’ |
-Wmodule-import-in-extern-c¶
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 |
-Wmodules-ambiguous-internal-linkage¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ambiguous use of internal linkage declaration A defined in multiple modules |
-Wmodules-import-nested-redundant¶
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 |
-Wmost¶
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, -Wframe-address, -Wimplicit, -Winfinite-recursion, -Wint-in-bool-context, -Wmismatched-tags, -Wmissing-braces, -Wmove, -Wmultichar, -Wobjc-designated-initializers, -Wobjc-flexible-array, -Wobjc-missing-super-calls, -Woverloaded-virtual, -Wprivate-extern, -Wrange-loop-construct, -Wreorder, -Wreturn-type, -Wself-assign, -Wself-move, -Wsizeof-array-argument, -Wsizeof-array-decay, -Wstring-plus-int, -Wtautological-compare, -Wtrigraphs, -Wuninitialized, -Wunknown-pragmas, -Wunused, -Wuser-defined-warnings, -Wvolatile-register-var.
-Wmsvc-include¶
Synonym for -Wmicrosoft-include.
-Wmsvc-not-found¶
This diagnostic is enabled by default.
Diagnostic text:
warning: unable to find a Visual Studio installation; try running Clang from a developer command prompt |
-Wmultichar¶
This diagnostic is enabled by default.
Diagnostic text:
warning: multi-character character constant |
-Wmultiple-move-vbase¶
This diagnostic is enabled by default.
Diagnostic text:
warning: defaulted move assignment operator of A will move assign virtual base class B multiple times |
-Wnarrowing¶
Synonym for -Wc++11-narrowing.
-Wnested-anon-types¶
Diagnostic text:
warning: anonymous types declared in an anonymous |
|
are an extension |
-Wnested-externs¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wnew-returns-null¶
This diagnostic is enabled by default.
Diagnostic text:
warning: A should not return a null pointer unless it is declared ‘throw()’ |
|
-Wnewline-eof¶
Diagnostic text:
warning: no newline at end of file |
warning: no newline at end of file |
-Wnoderef¶
This diagnostic is enabled by default.
Diagnostic text:
warning: dereferencing A; was declared with a ‘noderef’ type |
warning: dereferencing expression marked as ‘noderef’ |
warning: casting to dereferenceable pointer removes ‘noderef’ attribute |
-Wnoexcept-type¶
Synonym for -Wc++17-compat-mangling.
-Wnon-c-typedef-for-linkage¶
This diagnostic is enabled by default.
Diagnostic text:
warning: anonymous non-C-compatible type given name for linkage purposes by |
|
declaration; add a tag name here |
-Wnon-gcc¶
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wconversion, -Wliteral-range, -Wsign-compare.
-Wnon-literal-null-conversion¶
This diagnostic is enabled by default.
Diagnostic text:
warning: expression which evaluates to zero treated as a null pointer constant of type A |
-Wnon-modular-include-in-framework-module¶
Diagnostic text:
warning: include of non-modular header inside framework module ‘A’: ‘B’ |
-Wnon-modular-include-in-module¶
Also controls -Wnon-modular-include-in-framework-module.
Diagnostic text:
warning: include of non-modular header inside module ‘A’: ‘B’ |
-Wnon-pod-varargs¶
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 |
|
; call will abort at runtime |
error: cannot pass |
|
object of type B to variadic |
|
; 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 |
-Wnon-power-of-two-alignment¶
This diagnostic is enabled by default.
Diagnostic text:
warning: requested alignment is not a power of 2 |
-Wnonnull¶
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 |
-Wnonportable-cfstrings¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wnonportable-include-path¶
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 |
-Wnonportable-system-include-path¶
Diagnostic text:
warning: non-portable path to file ‘A’; specified path differs in case from file name on disk |
-Wnonportable-vector-initialization¶
This diagnostic is enabled by default.
Diagnostic text:
warning: vector initializers are not compatible with NEON intrinsics in big endian mode |
-Wnontrivial-memaccess¶
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
this B call is a pointer to record C that is not trivial to |
|
-Wnsconsumed-mismatch¶
This diagnostic is enabled by default.
Diagnostic text:
warning: overriding method has mismatched ns_consumed attribute on its parameter |
-Wnsreturns-mismatch¶
This diagnostic is enabled by default.
Diagnostic text:
warning: overriding method has mismatched ns_returns_ |
|
attributes |
-Wnull-arithmetic¶
This diagnostic is enabled by default.
Diagnostic text:
warning: use of NULL in arithmetic operation |
warning: comparison between NULL and non-pointer |
|
-Wnull-character¶
This diagnostic is enabled by default.
Diagnostic text:
warning: null character(s) preserved in |
|
literal |
warning: null character ignored |
-Wnull-conversion¶
This diagnostic is enabled by default.
Diagnostic text:
warning: implicit conversion of |
|
constant to B |
-Wnull-dereference¶
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 |
-Wnull-pointer-arithmetic¶
Diagnostic text:
warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension |
warning: performing pointer arithmetic on a null pointer has undefined behavior |
|
-Wnullability¶
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 |
-Wnullability-completeness¶
This diagnostic is enabled by default.
Also controls -Wnullability-completeness-on-arrays.
Diagnostic text:
warning: |
|
is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) |
-Wnullability-completeness-on-arrays¶
This diagnostic is enabled by default.
Diagnostic text:
warning: array parameter is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) |
-Wnullability-declspec¶
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 |
|
? |
-Wnullability-extension¶
Diagnostic text:
warning: type nullability specifier A is a Clang extension |
-Wnullability-inferred-on-nested-type¶
This diagnostic is enabled by default.
Diagnostic text:
warning: inferring ‘_Nonnull’ for pointer type within |
|
is deprecated |
-Wnullable-to-nonnull-conversion¶
Diagnostic text:
warning: implicit conversion from nullable pointer A to non-nullable pointer type B |
-Wobjc-autosynthesis-property-ivar-name-match¶
This diagnostic is enabled by default.
Diagnostic text:
warning: autosynthesized property A will use |
|
instance variable C, not existing instance variable D |
-Wobjc-bool-constant-conversion¶
This diagnostic is enabled by default.
Diagnostic text:
warning: implicit conversion from constant value A to ‘BOOL’; the only well defined values for ‘BOOL’ are YES and NO |
-Wobjc-boxing¶
This diagnostic is enabled by default.
Diagnostic text:
warning: string is ill-formed as UTF-8 and will become a null A when boxed |
-Wobjc-circular-container¶
This diagnostic is enabled by default.
Diagnostic text:
warning: adding A to B might cause circular dependency in container |
-Wobjc-cocoa-api¶
Synonym for -Wobjc-redundant-api-use.
-Wobjc-designated-initializers¶
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’ |
-Wobjc-dictionary-duplicate-keys¶
This diagnostic is enabled by default.
Diagnostic text:
warning: duplicate key in dictionary literal |
-Wobjc-flexible-array¶
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 |
-Wobjc-forward-class-redefinition¶
This diagnostic is enabled by default.
Diagnostic text:
warning: redefinition of forward class A of a typedef name of an object type is ignored |
-Wobjc-interface-ivars¶
Diagnostic text:
warning: declaration of instance variables in the interface is deprecated |
-Wobjc-literal-compare¶
This diagnostic is enabled by default.
Also controls -Wobjc-string-compare.
Diagnostic text:
warning: direct comparison of |
|
has undefined behavior |
-Wobjc-literal-conversion¶
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 |
|
C |
-Wobjc-macro-redefinition¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ignoring redefinition of Objective-C qualifier macro |
-Wobjc-method-access¶
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 |
-Wobjc-missing-property-synthesis¶
Diagnostic text:
warning: auto property synthesis is synthesizing property not explicitly synthesized |
-Wobjc-missing-super-calls¶
This diagnostic is enabled by default.
Diagnostic text:
warning: method possibly missing a [super A] call |
-Wobjc-multiple-method-names¶
This diagnostic is enabled by default.
Diagnostic text:
warning: multiple methods named A found |
-Wobjc-noncopy-retain-block-property¶
This diagnostic is enabled by default.
Diagnostic text:
warning: retain’ed block property does not copy the block - use copy attribute instead |
-Wobjc-nonunified-exceptions¶
This diagnostic is enabled by default.
Diagnostic text:
warning: cannot catch an exception thrown with @throw in C++ in the non-unified exception model |
-Wobjc-property-assign-on-object-type¶
Diagnostic text:
warning: ‘assign’ property of object type may become a dangling reference; consider using ‘unsafe_unretained’ |
-Wobjc-property-implementation¶
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 |
-Wobjc-property-implicit-mismatch¶
This diagnostic is enabled by default.
Diagnostic text:
warning: primary property declaration is implicitly strong while redeclaration in class extension is weak |
-Wobjc-property-matches-cocoa-ownership-rule¶
This diagnostic is enabled by default.
Diagnostic text:
warning: property follows Cocoa naming convention for returning ‘owned’ objects |
-Wobjc-property-no-attribute¶
This diagnostic is enabled by default.
Diagnostic text:
warning: default property attribute ‘assign’ not appropriate for object |
warning: no ‘assign’, ‘retain’, or ‘copy’ attribute is specified - ‘assign’ is assumed |
-Wobjc-property-synthesis¶
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 |
-Wobjc-protocol-method-implementation¶
This diagnostic is enabled by default.
Diagnostic text:
warning: category is implementing a method which will also be implemented by its primary class |
-Wobjc-protocol-property-synthesis¶
This diagnostic is enabled by default.
Diagnostic text:
warning: auto property synthesis will not synthesize property A declared in protocol B |
-Wobjc-protocol-qualifiers¶
This diagnostic is enabled by default.
Diagnostic text:
warning: parameterized class A already conforms to the protocols listed; did you forget a ‘*’? |
-Wobjc-readonly-with-setter-property¶
This diagnostic is enabled by default.
Diagnostic text:
warning: setter cannot be specified for a readonly property |
-Wobjc-redundant-api-use¶
Synonym for -Wobjc-redundant-literal-use.
-Wobjc-redundant-literal-use¶
This diagnostic is enabled by default.
Diagnostic text:
warning: using A with a literal is redundant |
-Wobjc-root-class¶
This diagnostic is enabled by default.
Diagnostic text:
warning: class A defined without specifying a base class |
-Wobjc-signed-char-bool¶
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wobjc-bool-constant-conversion, -Wobjc-signed-char-bool-implicit-float-conversion, -Wobjc-signed-char-bool-implicit-int-conversion, -Wtautological-objc-bool-compare.
-Wobjc-signed-char-bool-implicit-float-conversion¶
This diagnostic is enabled by default.
Diagnostic text:
warning: implicit conversion from floating-point type A to ‘BOOL’ |
-Wobjc-signed-char-bool-implicit-int-conversion¶
Diagnostic text:
warning: implicit conversion from integral type A to ‘BOOL’ |
-Wobjc-string-compare¶
This diagnostic is enabled by default.
Diagnostic text:
warning: direct comparison of a string literal has undefined behavior |
-Wobjc-string-concatenation¶
This diagnostic is enabled by default.
Diagnostic text:
warning: concatenated NSString literal for an NSArray expression - possibly missing a comma |
-Wobjc-unsafe-perform-selector¶
This diagnostic is enabled by default.
Diagnostic text:
warning: A is incompatible with selectors that return a |
|
type |
-Wodr¶
This diagnostic is enabled by default.
Diagnostic text:
warning: template parameter lists have a different number of parameters (A vs B) |
warning: template parameter has different kinds in different translation units |
warning: field A declared with incompatible types in different translation units (B vs. C) |
warning: external function A declared with incompatible types in different translation units (B vs. C) |
warning: instance variable A declared with incompatible types in different translation units (B vs. C) |
warning: non-type template parameter declared with incompatible types in different translation units (A vs. B) |
warning: |
|
method B has a different number of parameters in different translation units (C vs. D) |
warning: |
|
method B has a parameter with a different types in different translation units (C vs. D) |
warning: |
|
method B has incompatible result types in different translation units (C vs. D) |
warning: |
|
method B is variadic in one translation unit and not variadic in another |
warning: property A is implemented with |
|
in one translation but |
|
in another translation unit |
warning: property A declared with incompatible types in different translation units (B vs. C) |
warning: class A has incompatible superclasses |
warning: property A is synthesized to different ivars in different translation units (B vs. C) |
warning: parameter kind mismatch; parameter is |
|
parameter pack |
warning: type A has incompatible definitions in different translation units |
warning: external variable A defined in multiple translation units |
warning: external variable A declared with incompatible types in different translation units (B vs. C) |
-Wold-style-definition¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wopencl-unsupported-rgba¶
This diagnostic is enabled by default.
Diagnostic text:
warning: vector component name ‘A’ is an OpenCL version 2.2 feature |
-Wopenmp¶
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wopenmp-clauses, -Wopenmp-loop-form, -Wopenmp-mapping, -Wopenmp-target, -Wsource-uses-openmp.
-Wopenmp-clauses¶
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: allocator with the ‘thread’ trait access has unspecified behavior on ‘A’ directive |
warning: the context property ‘A’ is not valid for the context selector ‘B’ and the context set ‘C’; property ignored |
warning: the context selector ‘A’ in the context set ‘B’ cannot have a score (‘C’); score ignored |
warning: the context selector ‘A’ is not valid for the context set ‘B’; selector ignored |
warning: the context selector ‘A’ in context set ‘B’ requires a context property defined in parentheses; selector ignored |
warning: the context |
|
’B’ was used already in the same ‘omp declare variant’ directive; |
|
ignored |
warning: ’A’ is not a valid context property for the context selector ‘B’ and the context set ‘C’; property ignored |
warning: ’A’ is not a valid context selector for the context set ‘B’; selector ignored |
warning: ’A’ is not a valid context set in a `declare variant`; set ignored |
warning: expected ‘A’ after the B; ‘A’ assumed |
warning: expected identifier or string literal describing a context |
|
; |
|
skipped |
warning: zero linear step (A |
|
should probably be const) |
warning: more than one ‘device_type’ clause is specified |
warning: allocate directive specifies |
|
allocator while previously used |
|
-Wopenmp-loop-form¶
This diagnostic is enabled by default.
Diagnostic text:
warning: initialization clause of OpenMP for loop is not in canonical form (‘var = init’ or ‘T var = init’) |
warning: OpenMP loop iteration variable cannot have more than 64 bits size and will be narrowed |
-Wopenmp-mapping¶
This diagnostic is enabled by default.
Diagnostic text:
warning: Type A is not trivially copyable and not guaranteed to be mapped correctly |
-Wopenmp-target¶
This diagnostic is enabled by default.
Also controls -Wopenmp-mapping.
Diagnostic text:
warning: The OpenMP offloading target ‘A’ is similar to target ‘B’ already specified - will be ignored. |
warning: No library ‘A’ found in the default clang lib directory or in LIBRARY_PATH. Expect degraded performance due to no inlining of runtime functions on target devices. |
warning: declaration marked as declare target after first use, it may lead to incorrect results |
warning: declaration is not declared in any declare target region |
-Woption-ignored¶
This diagnostic is enabled by default.
Diagnostic text:
warning: option ‘-ffine-grained-bitfield-accesses’ cannot be enabled together with a sanitizer; flag ignored |
warning: The ‘A’ architecture does not support -moutline; flag ignored |
warning: option ‘A’ was ignored by the PS4 toolchain, using ‘-fPIC’ |
warning: ignoring ‘-mlong-calls’ option as it is not currently supported with |
|
-mabicalls |
warning: ignoring ‘A’ option as it cannot be used with |
|
-mabicalls and the N64 ABI |
warning: ignoring ‘-msmall-data-limit=’ with -mcmodel=large for -fpic or RV64 |
warning: auto-vectorization requires HVX, use -mhvx to enable it |
-Wordered-compare-function-pointers¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ordered comparison of function pointers (A and B) |
-Wout-of-line-declaration¶
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 |
-Wout-of-scope-function¶
This diagnostic is enabled by default.
Diagnostic text:
warning: use of out-of-scope declaration of A |
|
-Wover-aligned¶
Diagnostic text:
warning: type A requires B bytes of alignment and the default allocator only guarantees C bytes |
-Woverflow¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Woverlength-strings¶
Diagnostic text:
warning: string literal of length A exceeds maximum length B that |
|
compilers are required to support |
-Woverloaded-shift-op-parentheses¶
This diagnostic is enabled by default.
Diagnostic text:
warning: overloaded operator |
|
has higher precedence than comparison operator |
-Woverride-init¶
Synonym for -Winitializer-overrides.
-Woverride-module¶
This diagnostic is enabled by default.
Diagnostic text:
warning: overriding the module target triple with A |
-Woverriding-method-mismatch¶
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 |
-Woverriding-t-option¶
This diagnostic is enabled by default.
Diagnostic text:
warning: overriding ‘A’ option with ‘B’ |
-Wpadded¶
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 |
-Wparentheses¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wbitwise-conditional-parentheses, -Wbitwise-op-parentheses, -Wdangling-else, -Wlogical-not-parentheses, -Wlogical-op-parentheses, -Woverloaded-shift-op-parentheses, -Wparentheses-equality, -Wshift-op-parentheses.
Diagnostic text:
warning: using the result of an assignment as a condition without parentheses |
warning: A has lower precedence than B; B will be evaluated first |
warning: operator ‘?:’ has lower precedence than ‘A’; ‘A’ will be evaluated first |
-Wparentheses-equality¶
This diagnostic is enabled by default.
Diagnostic text:
warning: equality comparison with extraneous parentheses |
-Wpartial-availability¶
Synonym for -Wunguarded-availability.
-Rpass-analysis¶
Diagnostic text:
The text of this diagnostic is not controlled by Clang.
remark: 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! |
remark: A; allow reordering by specifying ‘#pragma clang loop vectorize(enable)’ before the loop or by providing the compiler option ‘-ffast-math’. |
-Wpass-failed¶
This diagnostic is enabled by default.
Diagnostic text:
The text of this diagnostic is not controlled by Clang.
-Wpch-date-time¶
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
uses __DATE__ or __TIME__ |
-Wpedantic¶
Also controls -Wc++11-extra-semi, -Wc++11-long-long, -Wc++14-binary-literal, -Wc++20-designator, -Wc11-extensions, -Wcomplex-component-init, -Wdeclaration-after-statement, -Wdollar-in-identifier-extension, -Wembedded-directive, -Wempty-translation-unit, -Wfixed-enum-extension, -Wflexible-array-extensions, -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: duplicate ‘A’ declaration specifier |
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: ISO C++ requires the name after ‘::~’ to be found in the same scope as the name before ‘::~’ |
warning: ISO C++ considers this destructor name lookup to be ambiguous |
warning: no viable constructor |
|
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++20 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 ‘A’ to a function type |
warning: invalid application of ‘A’ 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: |
|
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: use of the A attribute is a C++20 extension |
warning: types declared in an anonymous |
|
are a Microsoft extension |
warning: format specifies type A but the argument has |
|
B |
warning: void |
|
A should not return void expression |
warning: |
|
array size |
|
is a C99 feature |
warning: extra ‘;’ |
|
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: ’A’ is a C99 extension |
warning: use of GNU array range extension |
warning: exception specification of ‘…’ is a Microsoft extension |
warning: attributes on |
|
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: variadic macros are a Clang extension in OpenCL |
warning: C requires #line number to be less than A, allowed as extension |
warning: macro expansion producing ‘defined’ has undefined behavior |
-Wpedantic-core-features¶
Diagnostic text:
warning: OpenCL extension A is core feature or supported optional core feature - ignoring |
-Wpessimizing-move¶
Diagnostic text:
warning: moving a temporary object prevents copy elision |
warning: moving a local object in a return statement prevents copy elision |
-Wpointer-arith¶
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 ‘A’ to a function type |
warning: invalid application of ‘A’ to a void type |
warning: subtraction of pointers to type A of zero size has undefined behavior |
-Wpointer-bool-conversion¶
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’ |
-Wpointer-compare¶
This diagnostic is enabled by default.
Diagnostic text:
warning: comparing a pointer to a null character constant; did you mean to compare to |
|
? |
-Wpointer-integer-compare¶
This diagnostic is enabled by default.
Diagnostic text:
warning: comparison between pointer and integer (A and B) |
-Wpointer-sign¶
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
converts between pointers to integer types with different sign |
-Wpointer-to-enum-cast¶
This diagnostic is enabled by default.
Also controls -Wvoid-pointer-to-enum-cast.
Diagnostic text:
warning: cast to smaller integer type B from A |
-Wpointer-to-int-cast¶
This diagnostic is enabled by default.
Also controls -Wpointer-to-enum-cast, -Wvoid-pointer-to-int-cast.
Diagnostic text:
warning: cast to smaller integer type B from A |
-Wpointer-to-int-cast¶
This diagnostic is enabled by default.
Also controls -Wpointer-to-enum-cast, -Wvoid-pointer-to-int-cast.
Diagnostic text:
warning: cast to smaller integer type B from A |
-Wpointer-type-mismatch¶
This diagnostic is enabled by default.
Diagnostic text:
warning: pointer type mismatch |
-Wpoison-system-directories¶
Diagnostic text:
warning: include location ‘A’ is unsafe for cross-compilation |
-Wpotentially-direct-selector¶
This diagnostic is enabled by default.
Diagnostic text:
warning: @selector expression formed with potentially direct selector A |
-Wpotentially-evaluated-expression¶
This diagnostic is enabled by default.
Diagnostic text:
warning: expression with side effects will be evaluated despite being used as an operand to ‘typeid’ |
-Wpragma-clang-attribute¶
This diagnostic is enabled by default.
Diagnostic text:
warning: unused attribute A in ‘#pragma clang attribute push’ region |
-Wpragma-once-outside-header¶
This diagnostic is enabled by default.
Diagnostic text:
warning: #pragma once in main file |
-Wpragma-pack¶
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 alignment value is modified in the included file |
warning: unterminated ‘#pragma pack (push, …)’ at end of file |
-Wpragma-pack-suspicious-include¶
Diagnostic text:
warning: non-default #pragma pack value changes the alignment of struct or union members in the included file |
-Wpragma-system-header-outside-header¶
This diagnostic is enabled by default.
Diagnostic text:
warning: #pragma system_header ignored in main file |
-Wpragmas¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wignored-pragmas, -Wpragma-clang-attribute, -Wpragma-pack, -Wunknown-pragmas.
Diagnostic text:
warning: #pragma redefine_extname is applicable to external C declarations only; not applied to |
|
B |
-Wpredefined-identifier-outside-function¶
This diagnostic is enabled by default.
Diagnostic text:
warning: predefined identifier is only valid inside function |
-Wprivate-extern¶
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 |
-Wprivate-header¶
This diagnostic is an error by default, but the flag -Wno-private-header
can be used to disable the error.
Diagnostic text:
error: use of private header from outside its module: ‘A’ |
-Wprivate-module¶
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’ |
-Wprofile-instr-missing¶
Diagnostic text:
warning: profile data may be incomplete: of A function |
|
, B |
|
no data |
-Wprofile-instr-out-of-date¶
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 |
-Wprofile-instr-unprofiled¶
This diagnostic is enabled by default.
Diagnostic text:
warning: no profile data available for file “A” |
-Wproperty-access-dot-syntax¶
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? |
-Wproperty-attribute-mismatch¶
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 |
-Wprotocol¶
This diagnostic is enabled by default.
Diagnostic text:
warning: method A in protocol B not implemented |
-Wprotocol-property-synthesis-ambiguity¶
This diagnostic is enabled by default.
Diagnostic text:
warning: property |
|
was selected for synthesis |
-Wpsabi¶
This diagnostic is enabled by default.
Diagnostic text:
warning: AVX vector |
|
of type B without ‘C’ enabled changes the ABI |
-Wqualified-void-return-type¶
This diagnostic is enabled by default.
Diagnostic text:
warning: function cannot return qualified void type A |
-Wquoted-include-in-framework-header¶
Diagnostic text:
warning: double-quoted include “A” in framework header, expected angle-bracketed instead |
-Wrange-loop-bind-reference¶
Diagnostic text:
warning: loop variable A binds to a temporary value produced by a range of type B |
-Wrange-loop-construct¶
Diagnostic text:
warning: loop variable A binds to a temporary constructed from a different type |
warning: loop variable A creates a copy from type B |
-Wreadonly-iboutlet-property¶
This diagnostic is enabled by default.
Diagnostic text:
warning: readonly IBOutlet property A when auto-synthesized may not work correctly with ‘nib’ loader |
-Wreceiver-expr¶
This diagnostic is enabled by default.
Diagnostic text:
warning: receiver type A is not ‘id’ or interface pointer, consider casting it to ‘id’ |
-Wreceiver-forward-class¶
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 |
-Wredeclared-class-member¶
This diagnostic is enabled by default.
Diagnostic text:
warning: class member cannot be redeclared |
-Wredundant-decls¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wregister¶
This diagnostic is enabled by default.
Also controls -Wdeprecated-register.
Diagnostic text:
error: ISO C++17 does not allow ‘register’ storage class specifier |
-Wreinterpret-base-class¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ‘reinterpret_cast’ |
|
class A |
|
its |
|
B behaves differently from ‘static_cast’ |
-Wreorder¶
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wreorder-ctor, -Wreorder-init-list.
-Wreorder-init-list¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ISO C++ requires field designators to be specified in declaration order; field B will be initialized after field A |
-Wrequires-expression¶
This diagnostic is enabled by default.
Diagnostic text:
warning: this requires expression will only be checked for syntactic validity; did you intend to place it in a nested requirement? (add another ‘requires’ before the expression) |
-Wrequires-super-attribute¶
This diagnostic is enabled by default.
Diagnostic text:
warning: A attribute cannot be applied to |
|
-Wreserved-user-defined-literal¶
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 |
-Wretained-language-linkage¶
Diagnostic text:
warning: friend function A retaining previous language linkage is an extension |
-Wreturn-stack-address¶
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 |
|
B returned |
-Wreturn-std-move¶
Diagnostic text:
warning: local variable A will be copied despite being |
|
by name |
-Wreturn-std-move-in-c++11¶
Diagnostic text:
warning: prior to the resolution of a defect report against ISO C++11, local variable A would have been copied despite being returned by name, due to its not matching the function return type |
-Wreturn-type¶
This diagnostic is enabled by default.
Also controls -Wreturn-type-c-linkage.
Diagnostic text:
error: |
|
A should not return a value |
error: non-void |
|
A should return a value |
warning: non-void coroutine does not return a value |
warning: non-void function does not return a value |
warning: non-void lambda does not return a value |
warning: non-void coroutine does not return a value in all control paths |
warning: non-void function does not return a value in all control paths |
warning: non-void lambda does not return a value in all control paths |
error: non-void |
|
A should return a value |
-Wreturn-type-c-linkage¶
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 |
-Wrewrite-not-bool¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ISO C++20 requires return type of selected ‘operator==’ function for rewritten ‘B’ comparison to be ‘bool’, not A |
-Rsanitize-address¶
Diagnostic text:
remark: -fsanitize-address-field-padding applied to A |
remark: -fsanitize-address-field-padding ignored for A because it |
|
-Wsection¶
This diagnostic is enabled by default.
Diagnostic text:
warning: section attribute is specified on redeclared variable |
warning: duplicate code segment specifiers |
warning: |
|
does not match previous declaration |
-Wselector¶
Also controls -Wselector-type-mismatch.
Diagnostic text:
warning: no method with selector A is implemented in this translation unit |
-Wselector-type-mismatch¶
Diagnostic text:
warning: several methods with selector A of mismatched types are found for the @selector expression |
-Wself-assign¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wself-assign-field, -Wself-assign-overloaded.
Diagnostic text:
warning: explicitly assigning value of variable of type A to itself |
-Wself-assign-field¶
This diagnostic is enabled by default.
Diagnostic text:
warning: assigning |
|
to itself |
-Wself-assign-overloaded¶
Diagnostic text:
warning: explicitly assigning value of variable of type A to itself |
-Wsentinel¶
This diagnostic is enabled by default.
Diagnostic text:
warning: missing sentinel in |
|
warning: not enough variable arguments in A declaration to fit a sentinel |
-Wsequence-point¶
Synonym for -Wunsequenced.
-Wserialized-diagnostics¶
This diagnostic is enabled by default.
Diagnostic text:
warning: unable to open file A for serializing diagnostics (B) |
warning: Received warning after diagnostic serialization teardown was underway: A |
warning: unable to merge a subprocess’s serialized diagnostics |
-Wshadow¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wshadow-field-in-constructor-modified, -Wshadow-ivar.
Diagnostic text:
warning: declaration shadows a |
|
-Wshadow-all¶
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wshadow, -Wshadow-field, -Wshadow-field-in-constructor, -Wshadow-uncaptured-local.
-Wshadow-field¶
Diagnostic text:
warning: |
|
A |
|
shadows member inherited from type C |
-Wshadow-field-in-constructor¶
Also controls -Wshadow-field-in-constructor-modified.
Diagnostic text:
warning: constructor parameter A shadows the field B of C |
-Wshadow-field-in-constructor-modified¶
Diagnostic text:
warning: modifying constructor parameter A that shadows a field of B |
-Wshadow-ivar¶
This diagnostic is enabled by default.
Diagnostic text:
warning: local declaration of A hides instance variable |
-Wshadow-uncaptured-local¶
Diagnostic text:
warning: declaration shadows a |
|
-Wshift-count-negative¶
This diagnostic is enabled by default.
Diagnostic text:
warning: shift count is negative |
-Wshift-count-overflow¶
This diagnostic is enabled by default.
Diagnostic text:
warning: shift count >= width of type |
-Wshift-negative-value¶
This diagnostic is enabled by default.
Diagnostic text:
warning: shifting a negative signed value is undefined |
-Wshift-op-parentheses¶
This diagnostic is enabled by default.
Diagnostic text:
warning: operator ‘A’ has lower precedence than ‘B’; ‘B’ will be evaluated first |
-Wshift-overflow¶
This diagnostic is enabled by default.
Diagnostic text:
warning: signed shift result (A) requires B bits to represent, but C only has D bits |
-Wshift-sign-overflow¶
Diagnostic text:
warning: signed shift result (A) sets the sign bit of the shift expression’s type (B) and becomes negative |
-Wsign-conversion¶
Diagnostic text:
warning: implicit conversion changes signedness: A to B |
warning: operand of ? changes signedness: A to B |
warning: the resulting value is always non-negative after implicit conversion |
-Wsign-promo¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wsigned-enum-bitfield¶
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 |
-Wsigned-unsigned-wchar¶
This diagnostic is an error by default, but the flag -Wno-signed-unsigned-wchar
can be used to disable the error.
Diagnostic text:
error: ’A’ cannot be signed or unsigned |
-Wsizeof-array-argument¶
This diagnostic is enabled by default.
Diagnostic text:
warning: sizeof on array function parameter will return size of A instead of B |
-Wsizeof-array-decay¶
This diagnostic is enabled by default.
Diagnostic text:
warning: sizeof on pointer operation will return size of A instead of B |
-Wsizeof-array-div¶
This diagnostic is enabled by default.
Diagnostic text:
warning: expression does not compute the number of elements in this array; element type is A, not B |
-Wsizeof-pointer-div¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ’A’ will return the size of the pointer, not the array itself |
-Wsizeof-pointer-memaccess¶
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 |
-Wslash-u-filename¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ’/UA’ treated as the ‘/U’ option |
-Wslh-asm-goto¶
This diagnostic is enabled by default.
Diagnostic text:
warning: Speculative load hardening does not protect functions with asm goto |
-Wsometimes-uninitialized¶
Diagnostic text:
warning: variable A is |
|
uninitialized whenever |
|
-Wsource-uses-openmp¶
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: nesting `omp begin/end declare variant` is not supported yet; nested context ignored |
warning: ’#pragma omp declare variant’ cannot be applied to the function that was defined already; the original function might be used |
warning: ’#pragma omp declare variant’ cannot be applied for function after first usage; the original function might be used |
warning: variant function in ‘#pragma omp declare variant’ is itself marked as ‘#pragma omp declare variant’ |
warning: score expressions in the OpenMP context selector need to be constant; A is not and will be ignored |
warning: OpenMP only allows an ordered construct with the simd clause nested in a simd construct |
warning: unexpected ‘#pragma omp …’ in program |
-Wstack-exhausted¶
This diagnostic is enabled by default.
Diagnostic text:
warning: stack nearly exhausted; compilation time may suffer, and crashes due to stack overflow are likely |
-Wstack-protector¶
This diagnostic is enabled by default.
Diagnostic text:
warning: Unable to protect inline asm that clobbers stack pointer against stack clash |
-Wstack-protector¶
This diagnostic is enabled by default.
Diagnostic text:
warning: Unable to protect inline asm that clobbers stack pointer against stack clash |
-Wstatic-float-init¶
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 |
-Wstatic-in-inline¶
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 |
-Wstatic-inline-explicit-instantiation¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ignoring ‘ |
|
‘ keyword on explicit template instantiation |
-Wstatic-local-in-inline¶
This diagnostic is enabled by default.
Diagnostic text:
warning: non-constant static local variable in inline function may be different in different files |
-Wstatic-self-init¶
This diagnostic is enabled by default.
Diagnostic text:
warning: static variable A is suspiciously used within its own initialization |
-Wstdlibcxx-not-found¶
This diagnostic is enabled by default.
Diagnostic text:
warning: include path for libstdc++ headers not found; pass ‘-stdlib=libc++’ on the command line to use the libc++ standard library instead |
-Wstrict-aliasing¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wstrict-aliasing=0¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wstrict-aliasing=1¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wstrict-aliasing=2¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wstrict-overflow¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wstrict-overflow=0¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wstrict-overflow=1¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wstrict-overflow=2¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wstrict-overflow=3¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wstrict-overflow=4¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wstrict-overflow=5¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wstrict-potentially-direct-selector¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wpotentially-direct-selector.
Diagnostic text:
warning: @selector expression formed with potentially direct selector A |
-Wstrict-prototypes¶
Diagnostic text:
warning: this |
|
a prototype |
-Wstrict-prototypes¶
Diagnostic text:
warning: this |
|
a prototype |
-Wstring-compare¶
This diagnostic is enabled by default.
Diagnostic text:
warning: result of comparison against |
|
is unspecified (use an explicit string comparison function instead) |
-Wstring-conversion¶
Diagnostic text:
warning: implicit conversion turns string literal into bool: A to B |
-Wstring-plus-char¶
This diagnostic is enabled by default.
Diagnostic text:
warning: adding A to a string pointer does not append to the string |
-Wstring-plus-int¶
This diagnostic is enabled by default.
Diagnostic text:
warning: adding A to a string does not append to the string |
-Wstrlcpy-strlcat-size¶
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 |
-Wstrncat-size¶
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 |
-Wsuggest-destructor-override¶
Diagnostic text:
warning: A overrides a destructor but is not marked ‘override’ |
-Wsuggest-override¶
Diagnostic text:
warning: A overrides a member function but is not marked ‘override’ |
-Wsuper-class-method-mismatch¶
Diagnostic text:
warning: method parameter type does not match super class method parameter type |
-Wsuspicious-bzero¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ‘size’ argument to bzero is ‘0’ |
-Wsuspicious-memaccess¶
This diagnostic is enabled by default.
Controls -Wdynamic-class-memaccess, -Wmemset-transposed-args, -Wnontrivial-memaccess, -Wsizeof-pointer-memaccess, -Wsuspicious-bzero.
-Wswitch¶
This diagnostic is enabled by default.
Diagnostic text:
warning: overflow converting case value to switch condition type (A to B) |
warning: |
|
warning: case value not in enumerated type A |
-Wswitch-bool¶
This diagnostic is enabled by default.
Diagnostic text:
warning: switch condition has boolean value |
-Wswitch-default¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wswitch-enum¶
Diagnostic text:
warning: |
|
-Wsync-fetch-and-nand-semantics-changed¶
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 |
-Wtautological-bitwise-compare¶
Diagnostic text:
warning: bitwise comparison always evaluates to |
|
warning: bitwise or with non-zero value always evaluates to true |
-Wtautological-compare¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wtautological-bitwise-compare, -Wtautological-constant-compare, -Wtautological-objc-bool-compare, -Wtautological-overlap-compare, -Wtautological-pointer-compare, -Wtautological-undefined-compare.
Diagnostic text:
warning: |
|
to 1 byte is |
|
warning: |
|
comparison always evaluates to |
|
-Wtautological-constant-compare¶
This diagnostic is enabled by default.
Also controls -Wtautological-constant-out-of-range-compare.
Diagnostic text:
warning: converting the result of ‘?:’ with integer constants to a boolean always evaluates to ‘true’ |
warning: converting the result of ‘<<’ to a boolean always evaluates to |
|
warning: result of comparison of |
|
with |
|
is always E |
-Wtautological-constant-in-range-compare¶
Controls -Wtautological-type-limit-compare, -Wtautological-unsigned-enum-zero-compare, -Wtautological-unsigned-zero-compare.
-Wtautological-constant-out-of-range-compare¶
This diagnostic is enabled by default.
Diagnostic text:
warning: result of comparison of |
|
with |
|
is always E |
-Wtautological-objc-bool-compare¶
This diagnostic is enabled by default.
Diagnostic text:
warning: result of comparison of constant A with expression of type ‘BOOL’ is always B, as the only well defined values for ‘BOOL’ are YES and NO |
-Wtautological-overlap-compare¶
Diagnostic text:
warning: overlapping comparisons always evaluate to |
|
-Wtautological-pointer-compare¶
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 |
|
’B’ |
|
equal to a null pointer is always |
|
-Wtautological-type-limit-compare¶
Diagnostic text:
warning: result of comparison |
|
C |
|
is always E |
-Wtautological-undefined-compare¶
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 |
|
-Wtautological-unsigned-enum-zero-compare¶
Diagnostic text:
warning: result of comparison of |
|
C |
|
is always E |
-Wtautological-unsigned-zero-compare¶
Diagnostic text:
warning: result of comparison of |
|
C |
|
is always E |
-Wtentative-definition-incomplete-type¶
This diagnostic is enabled by default.
Diagnostic text:
warning: tentative definition of variable with internal linkage has incomplete non-array type A |
-Wthread-safety¶
Controls -Wthread-safety-analysis, -Wthread-safety-attributes, -Wthread-safety-precise, -Wthread-safety-reference.
-Wthread-safety-analysis¶
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 |
|
warning: |
|
the value pointed to by B requires holding A |
|
warning: |
|
variable A requires holding |
|
warning: |
|
variable B requires holding A |
|
-Wthread-safety-attributes¶
Diagnostic text:
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’ attribute |
warning: A only applies to |