Diagnostic flags in Clang¶
Introduction¶
This page lists the diagnostic flags currently supported by Clang.
Diagnostic flags¶
-W¶
Synonym for -Wextra.
-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 |
-WCL4¶
Some of the diagnostics controlled by this flag are enabled by default.
-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 |
-Wabi¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-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.
-Waix-compat¶
This diagnostic is enabled by default.
Diagnostic text:
warning: alignment of 16 bytes for a struct member is not binary compatible with IBM XL C/C++ for AIX 16.1.0 or older |
warning: #pragma align(packed) may not be compatible with objects generated with AIX XL C/C++ |
-Walign-mismatch¶
This diagnostic is enabled by default.
Diagnostic text:
warning: passing A-byte aligned argument to B-byte aligned parameter C |
|
may result in an unaligned pointer access |
-Wall¶
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wmisleading-indentation, -Wmost, -Wpacked-non-pod, -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 |
-Walways-inline-coroutine¶
This diagnostic is enabled by default.
Diagnostic text:
warning: this coroutine may be split into pieces; not every piece is guaranteed to be inlined |
-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] |
-Wargument-undefined-behaviour¶
This diagnostic is enabled by default.
Diagnostic text:
warning: argument value A will result in undefined behaviour |
-Warray-bounds¶
This diagnostic is enabled by default.
Diagnostic text:
warning: array index A is past the end of the array (that has type B |
|
) |
warning: array index A refers past the last possible element for an array in B-bit address space containing C-bit (D-byte) elements (max possible E element |
|
) |
warning: array index A is before the beginning of the array |
warning: the pointer incremented by A refers past the last possible element for an array in B-bit address space containing C-bit (D-byte) elements (max possible E element |
|
) |
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 has type B) |
warning: the pointer decremented by A refers before the beginning of the array |
-Warray-parameter¶
Diagnostic text:
warning: argument A of type B with mismatched bound |
-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 |
-Wassign-enum¶
Diagnostic text:
warning: integer constant not in range of enumerated type A |
-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-access¶
This diagnostic is an error by default, but the flag -Wno-atomic-access
can be used to disable the error.
Diagnostic text:
error: accessing a member of an atomic structure or union is undefined behavior |
-Watomic-alignment¶
This diagnostic is enabled by default.
Diagnostic text:
warning: misaligned atomic operation may incur significant performance penalty; the expected alignment (A bytes) exceeds the actual alignment (B bytes) |
warning: large atomic operation may incur significant performance penalty; the access size (A bytes) exceeds the max lock-free size (B bytes) |
-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-properties¶
Controls -Wcustom-atomic-properties, -Wimplicit-atomic-properties.
-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 |
-Wattribute-warning¶
This diagnostic is enabled by default.
Diagnostic text:
warning: call to ‘A’ declared with ‘warning’ attribute: B |
-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¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-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: Fuchsia API Level prohibits specifying a minor or sub-minor version |
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-libc installation can be found on the system, cannot link standard libraries |
warning: support for passing the data section address to the linker for microcontroller ‘A’ is not implemented |
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.
warning: A (B) exceeds limit (C) in ‘D’ |
-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 |
-Wbit-int-extension¶
Diagnostic text:
warning: ‘_BitInt’ in |
|
is a Clang extension |
-Wbitfield-constant-conversion¶
This diagnostic is enabled by default.
Also controls -Wsingle-bit-bitfield-constant-conversion.
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 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 |
-Wbitwise-instead-of-logical¶
Diagnostic text:
warning: use of bitwise ‘A’ with boolean operands |
-Wbitwise-op-parentheses¶
Diagnostic text:
warning: ‘A’ within ‘B’ |
-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¶
Also controls -Wbitwise-instead-of-logical.
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 |
-Wbranch-protection¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ‘-mbranch-protection=’ option is incompatible with the ‘A’ architecture |
warning: ignoring the ‘branch-protection’ attribute because the ‘A’ architecture does not support it |
warning: invalid branch protection option ‘A’ in ‘B’ |
warning: unsupported branch protection specification ‘A’ |
-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, -Wpre-c++14-compat, -Wpre-c++17-compat, -Wpre-c++20-compat, -Wpre-c++23-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, -Wpre-c++14-compat-pedantic, -Wpre-c++17-compat-pedantic, -Wpre-c++20-compat-pedantic, -Wpre-c++23-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: default member initializer for 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 |
warning: [[]] attributes are a C++11 extension |
-Wc++11-extra-semi¶
Diagnostic text:
warning: extra ‘;’ outside of a function is 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-long-long¶
Diagnostic text:
warning: ‘long long’ is a C++11 extension |
-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-attribute-extensions¶
Diagnostic text:
warning: use of the A attribute is a C++14 extension |
-Wc++14-binary-literal¶
Diagnostic text:
warning: binary integer literals are a C++14 extension |
-Wc++14-compat¶
Controls -Wpre-c++17-compat, -Wpre-c++20-compat, -Wpre-c++23-compat.
-Wc++14-compat-pedantic¶
Controls -Wc++14-compat, -Wpre-c++17-compat-pedantic, -Wpre-c++20-compat-pedantic, -Wpre-c++23-compat-pedantic.
-Wc++14-extensions¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wc++14-attribute-extensions, -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: ‘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-attribute-extensions¶
Diagnostic text:
warning: use of the A attribute is a C++17 extension |
-Wc++17-compat¶
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wc++17-compat-mangling, -Wdeprecated-increment-bool, -Wdeprecated-register, -Wpre-c++20-compat, -Wpre-c++23-compat.
-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, -Wpre-c++20-compat-pedantic, -Wpre-c++23-compat-pedantic.
-Wc++17-extensions¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wc++17-attribute-extensions.
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: ‘static_assert’ with no message 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: 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-attribute-extensions¶
Diagnostic text:
warning: use of the A attribute is a C++20 extension |
-Wc++20-compat¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wpre-c++23-compat.
Diagnostic text:
warning: use of implicit ‘typename’ is incompatible with C++ standards before C++20 |
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: taking address of non-addressable standard library function is incompatible with C++20 |
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¶
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wc++20-compat, -Wpre-c++23-compat-pedantic.
-Wc++20-designator¶
Diagnostic text:
warning: designated initializers are a C++20 extension |
-Wc++20-extensions¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wc++20-attribute-extensions, -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: captured structured bindings are 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: 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: missing ‘typename’ prior to dependent type name AB; implicit ‘typename’ is 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 |
warning: using declaration naming a scoped enumerator is a C++20 extension |
warning: using enum declaration is a C++20 extension |
warning: aggregate initialization of type A from a parenthesized list of values is a C++20 extension |
-Wc++23-default-comp-relaxed-constexpr¶
Diagnostic text:
warning: defaulted definition of |
|
that is declared |
|
but |
|
invokes a non-constexpr comparison function is a C++23 extension |
-Wc++23-extensions¶
This diagnostic is enabled by default.
Diagnostic text:
warning: static lambdas are a C++23 extension |
warning: alias declaration in this context is a C++23 extension |
warning: consteval if is a C++23 extension |
warning: use of this statement in a constexpr |
|
is a C++23 extension |
warning: definition of a |
|
variable in a constexpr |
|
is a C++23 extension |
warning: use of a ‘# |
|
‘ directive is a C++23 extension |
warning: ‘size_t’ suffix for literals is a C++23 extension |
warning: label at end of compound statement is a C++23 extension |
warning: |
|
in this position is a C++23 extension |
warning: lambda without a parameter clause is a C++23 extension |
warning: declaring overloaded A as ‘static’ is a C++23 extension |
-Wc++26-extensions¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-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++2b-extensions¶
Synonym for -Wc++23-extensions.
-Wc++2c-extensions¶
Synonym for -Wc++26-extensions.
-Wc++98-c++11-c++14-c++17-compat¶
Synonym for -Wpre-c++20-compat.
-Wc++98-c++11-c++14-c++17-compat-pedantic¶
Synonym for -Wpre-c++20-compat-pedantic.
-Wc++98-c++11-c++14-compat¶
Synonym for -Wpre-c++17-compat.
-Wc++98-c++11-c++14-compat-pedantic¶
Synonym for -Wpre-c++17-compat-pedantic.
-Wc++98-c++11-compat¶
Synonym for -Wpre-c++14-compat.
-Wc++98-c++11-compat-binary-literal¶
Diagnostic text:
warning: binary integer literals are incompatible with C++ standards before C++14 |
-Wc++98-c++11-compat-pedantic¶
Synonym for -Wpre-c++14-compat-pedantic.
-Wc++98-compat¶
Also controls -Wc++98-compat-local-type-template-args, -Wc++98-compat-unnamed-type-template-args, -Wpre-c++14-compat, -Wpre-c++17-compat, -Wpre-c++20-compat, -Wpre-c++23-compat.
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: [[]] attributes are incompatible with C++ standards before C++11 |
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: default member initializer for 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: 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-compat, -Wc++98-compat-bind-to-temporary-copy, -Wc++98-compat-extra-semi, -Wpre-c++14-compat-pedantic, -Wpre-c++17-compat-pedantic, -Wpre-c++20-compat-pedantic, -Wpre-c++23-compat-pedantic.
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-compat¶
Diagnostic text:
warning: ‘A’ is a keyword in C2x |
-Wc2x-extensions¶
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: ‘_BitInt’ suffix for literals is a C2x extension |
warning: use of a ‘# |
|
‘ directive is a C2x extension |
warning: use of an empty initializer is a C2x extension |
warning: label at end of compound statement is a C2x extension |
warning: ‘nullptr’ is a C2x extension |
warning: ‘_Static_assert’ with no message is a C2x extension |
warning: omitting the parameter name in a function definition is a C2x extension |
warning: [[]] attributes are 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: ‘A’ is a keyword in 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: brace elision for designated initializer is 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 |
-Wcalled-once-parameter¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wcompletion-handler.
Diagnostic text:
warning: A parameter marked ‘called_once’ is called twice |
warning: |
|
A parameter marked ‘called_once’ is never called |
warning: A parameter marked ‘called_once’ is never |
|
when |
|
-Wcast-align¶
Diagnostic text:
warning: cast from A to B increases required alignment from C to D |
-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-function-type¶
Also controls -Wcast-function-type-strict.
Diagnostic text:
warning: cast |
|
converts to incompatible function type |
-Wcast-function-type-strict¶
Diagnostic text:
warning: cast |
|
converts to incompatible function type |
-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 |
-Wcomma¶
Diagnostic text:
warning: possible misuse of comma operator here |
-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 |
|
-Wcompletion-handler¶
Diagnostic text:
warning: completion handler is called twice |
warning: |
|
completion handler is never called |
warning: completion handler is never |
|
when |
|
-Wcomplex-component-init¶
Diagnostic text:
warning: complex initialization specifying real and imaginary components is an extension |
-Wcompound-token-split¶
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wcompound-token-split-by-macro, -Wcompound-token-split-by-space.
-Wcompound-token-split-by-macro¶
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
C tokens |
|
appear in different macro expansion contexts |
-Wcompound-token-split-by-space¶
Diagnostic text:
warning: |
|
C tokens |
|
are separated by whitespace |
-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.
-Wcoro-non-aligned-allocation-function¶
This diagnostic is enabled by default.
Diagnostic text:
warning: under -fcoro-aligned-allocation, the non-aligned allocation function for the promise type A has higher precedence than the global aligned allocation function |
-Wcoroutine¶
This diagnostic is enabled by default.
Also controls -Walways-inline-coroutine, -Wcoro-non-aligned-allocation-function, -Wcoroutine-missing-unhandled-exception, -Wdeprecated-coroutine.
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 the parameter list 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) |
-Wcxx-attribute-extension¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ISO C++ does not allow |
|
to appear here |
-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 |
-Wdate-time¶
Diagnostic text:
warning: expansion of date or time macro is not reproducible |
-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: mixing declarations and code is a C99 extension |
warning: mixing declarations and code is incompatible with standards before C99 |
-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.
-Wdelimited-escape-sequence-extension¶
Diagnostic text:
warning: |
|
escape sequences are a |
|
extension |
-Wdeprecate-lax-vec-conv-all¶
This diagnostic is enabled by default.
Diagnostic text:
warning: Implicit conversion between vector types (’A’ and ‘B’) is deprecated. In the future, the behavior implied by ‘-fno-lax-vector-conversions’ will be the default. |
-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-builtins, -Wdeprecated-comma-subscript, -Wdeprecated-copy, -Wdeprecated-copy-with-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-literal-operator, -Wdeprecated-pragma, -Wdeprecated-redundant-constexpr-static-def, -Wdeprecated-register, -Wdeprecated-this-capture, -Wdeprecated-type, -Wdeprecated-volatile, -Wdeprecated-writable-strings.
Diagnostic text:
warning: -O4 is equivalent to -O3 |
warning: access declarations are deprecated; use using declarations instead |
warning: argument ‘A’ is deprecated, use ‘B’ instead |
warning: treating ‘A’ input as ‘B’ when in C++ mode, this behavior is deprecated |
warning: ‘depend’ clause for ‘ordered’ is deprecated; use ‘doacross’ instead |
warning: minus(-) operator for reductions is deprecated; use + or user defined reduction instead |
warning: A does not support the option ‘B’ |
warning: Use of ‘long’ with ‘__vector’ is deprecated |
-Wdeprecated-altivec-src-compat¶
This diagnostic is enabled by default.
Diagnostic text:
warning: Current handling of vector bool and vector pixel types in this context are deprecated. The default behaviour will soon change to that implied by the ‘-altivec-compat=xl’ option |
-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: the ‘[[_Noreturn]]’ attribute spelling is deprecated in C2x; use ‘[[noreturn]]’ instead |
warning: applying attribute A to a declaration is deprecated; apply it to the type instead |
warning: specifying vector types with the ‘mode’ attribute is deprecated; use the ‘vector_size’ attribute instead |
-Wdeprecated-builtins¶
This diagnostic is enabled by default.
Diagnostic text:
warning: builtin A is deprecated; use B instead |
-Wdeprecated-comma-subscript¶
This diagnostic is enabled by default.
Diagnostic text:
warning: top-level comma expression in array subscript is deprecated in C++20 and unsupported in C++23 |
-Wdeprecated-copy¶
Also controls -Wdeprecated-copy-with-user-provided-copy.
Diagnostic text:
warning: definition of implicit copy |
|
for A is deprecated because it has a user-declared copy |
|
-Wdeprecated-copy-dtor¶
Synonym for -Wdeprecated-copy-with-dtor.
-Wdeprecated-copy-with-dtor¶
Also controls -Wdeprecated-copy-with-user-provided-dtor.
Diagnostic text:
warning: definition of implicit copy |
|
for A is deprecated because it has a user-declared destructor |
-Wdeprecated-copy-with-user-provided-copy¶
Diagnostic text:
warning: definition of implicit copy |
|
for A is deprecated because it has a user-provided copy |
|
-Wdeprecated-copy-with-user-provided-dtor¶
Diagnostic text:
warning: definition of implicit copy |
|
for A is deprecated because it has a user-provided destructor |
-Wdeprecated-coroutine¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ‘for co_await’ belongs to CoroutineTS instead of C++20, which is deprecated |
-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-literal-operator¶
Diagnostic text:
warning: identifier A preceded by whitespace in a literal operator declaration is deprecated |
-Wdeprecated-non-prototype¶
This diagnostic is enabled by default.
Diagnostic text:
warning: a function |
|
without a prototype is deprecated in all versions of C |
|
warning: passing arguments to |
|
without a prototype is deprecated in all versions of C and is not supported in C2x |
-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-pragma¶
This diagnostic is enabled by default.
Diagnostic text:
warning: macro A has been marked as deprecated |
|
-Wdeprecated-redundant-constexpr-static-def¶
Diagnostic text:
warning: out-of-line definition of constexpr static data member is redundant in C++17 and is deprecated |
-Wdeprecated-register¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ‘register’ storage class specifier is deprecated and incompatible with C++17 |
-Wdeprecated-static-analyzer-flag¶
This diagnostic is enabled by default.
Diagnostic text:
warning: analyzer option ‘A’ is deprecated. This flag will be removed in B, and passing this option will be an error. |
warning: analyzer option ‘A’ is deprecated. This flag will be removed in B, and passing this option will be an error. Use ‘C’ instead. |
-Wdeprecated-this-capture¶
This diagnostic is enabled by default.
Diagnostic text:
warning: implicit capture of ‘this’ with a capture default of ‘=’ is deprecated |
-Wdeprecated-type¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ‘_ExtInt’ is deprecated; use ‘_BitInt’ instead |
-Wdeprecated-volatile¶
This diagnostic is enabled by default.
Diagnostic text:
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 |
-Wdeprecated-writable-strings¶
Synonym for -Wc++11-compat-deprecated-writable-strings.
-Wdirect-ivar-access¶
Diagnostic text:
warning: instance variable A is being directly accessed |
-Wdisabled-macro-expansion¶
Diagnostic text:
warning: disabled expansion of recursive macro |
-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 has |
|
word argument |
|
, expected D |
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: line splicing in Doxygen comments are not supported |
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 |
-Wdollar-in-identifier-extension¶
Diagnostic text:
warning: ‘$’ in identifier |
-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-arg¶
Diagnostic text:
warning: redeclaration of method parameter A |
-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 |
-Wdxil-validation¶
This diagnostic is enabled by default.
Diagnostic text:
warning: dxv not found. Resulting DXIL will not be validated or signed for use in release environments. |
-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 |
-Weager-load-cxx-named-modules¶
This diagnostic is enabled by default.
Diagnostic text:
warning: the form ‘-fmodule-file=<BMI-path>’ is deprecated for standard C++ named modules;consider to use ‘-fmodule-file=<module-name>=<BMI-path>’ instead |
-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-constexpr-conversion¶
This diagnostic is an error by default, but the flag -Wno-enum-constexpr-conversion
can be used to disable the error.
Diagnostic text:
error: integer value A is outside the valid range of values [B, C] for the enumeration type D |
-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 |
-Wexit-time-destructors¶
Diagnostic text:
warning: declaration requires an exit-time destructor |
-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 |
-Wexperimental-header-units¶
This diagnostic is enabled by default.
Diagnostic text:
warning: the implementation of header units is in an experimental phase |
-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 flag exists for GCC compatibility, and has no effect in Clang.
-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, -Wfuse-ld-path, -Wignored-qualifiers, -Winitializer-overrides, -Wmissing-field-initializers, -Wmissing-method-return-type, -Wnull-pointer-arithmetic, -Wnull-pointer-subtraction, -Wsemicolon-before-method-body, -Wsign-compare, -Wstring-concatenation, -Wunused-but-set-parameter, -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 |
-Wfinal-macro¶
This diagnostic is enabled by default.
Diagnostic text:
warning: macro A has been marked as final and should not be |
|
-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-equal¶
Diagnostic text:
warning: comparing floating point with == or != is unsafe |
-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-insufficient-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: ‘A’ is not a valid object format flag |
warning: ‘%%n’ specifier not supported on this platform |
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-insufficient-args¶
This diagnostic is enabled by default.
Diagnostic text:
warning: more ‘%%’ conversions than data arguments |
-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-nonliteral¶
Diagnostic text:
warning: format string is not a string literal |
-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’ may overflow; destination buffer in argument B has size C, but the corresponding specifier may require size D |
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 |
warning: ‘A’ will always overflow; destination buffer has size B, but the source string has length C (including NUL byte) |
-Wfour-char-constants¶
Diagnostic text:
warning: multi-character character constant |
-Wframe-address¶
Diagnostic text:
warning: calling ‘A’ with a nonzero argument is unsafe |
-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 (A) exceeds limit (B) in ‘C’ |
More fine grained information about the stack layout is available by adding the -Rpass-analysis=stack-frame-layout command-line flag to the compiler invocation.
The diagnostic information can be saved to a file in a machine readable format, like YAML by adding the -foptimization-record-file=<file> command-line flag.
Results can be filtered by function name by passing -mllvm -filter-print-funcs=foo, where foo is the target function’s name.
-Wframe-larger-than=¶
Synonym for -Wframe-larger-than.
-Wframework-include-private-from-public¶
This diagnostic is enabled by default.
Diagnostic text:
warning: public framework header includes private framework header ‘A’ |
-Wfree-nonheap-object¶
This diagnostic is enabled by default.
Diagnostic text:
warning: attempt to call A on non-heap |
|
-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.
Also controls -Wtarget-clones-mixed-specifiers.
Diagnostic text:
warning: body of cpu_dispatch function will be ignored |
warning: CPU list contains duplicate entries; attribute ignored |
warning: version list contains duplicate entries |
warning: version list contains entries that don’t impact code generation |
-Wfuse-ld-path¶
Diagnostic text:
warning: ‘-fuse-ld=’ taking a path is deprecated; use ‘–ld-path=’ instead |
-Wfuture-attribute-extensions¶
Controls -Wc++14-attribute-extensions, -Wc++17-attribute-extensions, -Wc++20-attribute-extensions.
-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 requires a function with the A attribute to be variadic |
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 |
-Wgeneric-type-extension¶
Diagnostic text:
warning: passing a type argument as the first operand to ‘_Generic’ is a Clang extension |
-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-struct, -Wgnu-flexible-array-initializer, -Wgnu-flexible-array-union-member, -Wgnu-folding-constant, -Wgnu-imaginary-constant, -Wgnu-include-next, -Wgnu-label-as-value, -Wgnu-line-marker, -Wgnu-null-pointer-arithmetic, -Wgnu-offsetof-extensions, -Wgnu-pointer-arith, -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-anonymous-struct¶
Diagnostic text:
warning: anonymous structs are 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-auto-type¶
Diagnostic text:
warning: ‘__auto_type’ is a GNU extension |
-Wgnu-binary-literal¶
Diagnostic text:
warning: binary integer literals are a GNU extension |
-Wgnu-case-range¶
Diagnostic text:
warning: use of GNU case range extension |
-Wgnu-complex-integer¶
Diagnostic text:
warning: complex integer types are a GNU extension |
-Wgnu-compound-literal-initializer¶
Diagnostic text:
warning: initialization of an array |
|
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-initializer¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-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¶
Some of the diagnostics controlled by this flag are enabled by default.
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-imaginary-constant¶
Diagnostic text:
warning: imaginary constants are a GNU extension |
-Wgnu-include-next¶
Diagnostic text:
warning: #include_next is a language 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-line-marker¶
Diagnostic text:
warning: this style of line directive is a GNU extension |
-Wgnu-null-pointer-arithmetic¶
Diagnostic text:
warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension |
-Wgnu-offsetof-extensions¶
Diagnostic text:
warning: defining a type within ‘ |
|
‘ is a Clang extension |
-Wgnu-pointer-arith¶
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 |
-Wgnu-redeclared-enum¶
Diagnostic text:
warning: redeclaration of already-defined enum A is a GNU extension |
-Wgnu-statement-expression¶
Also controls -Wgnu-statement-expression-from-macro-expansion.
Diagnostic text:
warning: use of GNU statement expression extension |
-Wgnu-statement-expression-from-macro-expansion¶
Diagnostic text:
warning: use of GNU statement expression extension from macro expansion |
-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-union-cast¶
Diagnostic text:
warning: cast to union type is 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 |
-Wgpu-maybe-wrong-side¶
This diagnostic is enabled by default.
Diagnostic text:
warning: capture host side class data member by this pointer in device or host device lambda function may result in invalid memory access if this pointer is not accessible on device side |
-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 |
-Wheader-hygiene¶
Diagnostic text:
warning: using namespace directive in global context in header |
-Whip-omp-target-directives¶
This diagnostic is an error by default, but the flag -Wno-hip-omp-target-directives
can be used to disable the error.
Diagnostic text:
error: HIP does not support OpenMP target directives; directive has been ignored |
-Whip-only¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ‘A’ is ignored since it is only supported for HIP |
-Whlsl-extensions¶
This diagnostic is enabled by default.
Diagnostic text:
warning: access specifiers are a clang HLSL extension |
-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: requested alignment is less than minimum alignment of B for type A |
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: attribute A has no effect when annotating an ‘if |
|
‘ statement |
warning: attribute A has no effect when annotating an infinite loop |
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 is ignored because there exists no call expression inside the statement |
warning: A attribute is ignored because B is not a function pointer |
warning: A attribute ignored on inline function |
warning: A attribute ignored on a non-definition declaration |
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: A attribute argument ‘B’ not supported on a global variable |
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 |
|
only applies to |
|
warning: A |
|
only applies to C |
warning: conflicting attributes A are ignored |
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 currently has no effect on a using declaration |
warning: A redeclared inline; B attribute ignored |
warning: attribute A is already applied with different arguments |
warning: attribute A is already applied |
warning: attribute is ignored on this statement as it only applies to functions; use ‘A’ on statements |
warning: statement attribute A has higher precedence than function attribute ‘ |
|
‘ |
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: ‘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 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 ‘ |
|
‘ attribute string; ‘ |
|
‘ attribute ignored |
warning: ‘[[ |
|
]]’ attribute ignored when applied to a typedef; consider using ‘__attribute__((warn_unused_result))’ or ‘[[clang::warn_unused_result]]’ instead |
warning: ‘__clang__’ is a predefined macro name, not an attribute scope specifier; did you mean ‘_Clang’ instead? |
-Wignored-availability-without-sdk-settings¶
This diagnostic is enabled by default.
Diagnostic text:
warning: A availability is ignored without a valid ‘SDKSettings.json’ in the SDK |
-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 flag exists for GCC compatibility, and has no effect in Clang.
-Wignored-pragmas¶
This diagnostic is enabled by default.
Also controls -Wignored-pragma-intrinsic, -Wignored-pragma-optimize.
Diagnostic text:
warning: expected string literal in ‘clause A’ - ignoring |
warning: expected ‘=’ following ‘#pragma |
|
‘ - ignored |
warning: invalid alignment option in ‘#pragma |
|
‘ - ignored |
warning: ‘#pragma comment A’ ignored |
warning: |
|
-dependent expression passed as an argument to debug command |
warning: missing argument to debug command ‘A’ |
warning: missing debug command |
warning: unexpected argument to debug command |
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 A’ is not supported on this target - ignored |
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 fenv_access (on|off)’ - ignored |
warning: incorrect use of ‘#pragma ms_struct on|off’ - ignored |
warning: #pragma options align=reset failed: A |
warning: expected ‘align’ following ‘#pragma options’ - ignored |
warning: expected #pragma pack parameter to be ‘1’, ‘2’, ‘4’, ‘8’, or ‘16’ |
warning: expected integer or identifier in ‘#pragma pack’ - ignored |
warning: #pragma A(pop, …) failed: B |
warning: pragma pop_macro could not pop ‘A’, no matching push_macro |
warning: OpenCL extension A unknown or does not require pragma - 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’ |
warning: invalid or unsupported rounding mode in ‘#pragma STDC FENV_ROUND’ - ignored |
-Wignored-qualifiers¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wignored-reference-qualifiers.
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 |
-Wignored-reference-qualifiers¶
This diagnostic is enabled by default.
Diagnostic text:
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: 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:
error: call to undeclared function A; ISO C99 and later do not support implicit function declarations |
warning: implicitly declaring library function ‘A’ with type B |
error: call to undeclared library function ‘A’ with type B; ISO C99 and later do not support implicit function declarations |
error: use of unknown builtin A |
warning: implicit declaration of function A |
-Wimplicit-int¶
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
error: type specifier missing, defaults to ‘int’; ISO C99 and later do not support implicit int |
error: parameter A was not declared, defaults to ‘int’; ISO C99 and later do not support implicit int |
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 |
-Wimport¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wimport-preprocessor-directive-pedantic¶
Diagnostic text:
warning: #import is a language extension |
-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 an error by default, but the flag -Wno-incompatible-function-pointer-types
can be used to disable the error.
Diagnostic text:
error: incompatible function pointer types |
|
|
-Wincompatible-function-pointer-types-strict¶
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 |
-Winfinite-recursion¶
Diagnostic text:
warning: all paths through this function will call itself |
-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 |
error: 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¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-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 an error by default, but the flag -Wno-int-conversion
can be used to disable the error.
Diagnostic text:
error: incompatible integer to pointer conversion |
|
|
error: 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 |
-Winterrupt-service-routine¶
This diagnostic is enabled by default.
Diagnostic text:
warning: interrupt service routine should only call a function with attribute ‘no_caller_saved_registers’ |
-Winvalid-command-line-argument¶
This diagnostic is enabled by default.
Also controls -Wignored-optimization-argument.
Diagnostic text:
warning: missing plugin argument for plugin A in B |
warning: missing plugin name in A |
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 an MSP430 device, or ‘-mhwmult’ to set the 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: feature flag ‘A’ must start with either ‘+’ to enable the feature or ‘-’ to disable it; flag ignored |
warning: feature flag ‘A’ is ignored since the feature is read only |
warning: mismatch between architecture and environment in target triple ‘A’; did you mean ‘B’? |
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 from 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¶
Diagnostic text:
warning: unable to find A directory, expected to be in ‘B’ found via C |
-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-static-assert-message¶
This diagnostic is an error by default, but the flag -Wno-invalid-static-assert-message
can be used to disable the error.
Diagnostic text:
error: the message in this static assertion is not a constant expression |
-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 |
-Winvalid-unevaluated-string¶
This diagnostic is enabled by default.
Diagnostic text:
warning: encoding prefix ‘A’ on an unevaluated string literal has no effect |
|
-Winvalid-utf8¶
Diagnostic text:
warning: invalid UTF-8 in comment |
-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 |
|
-Wkeyword-macro¶
Diagnostic text:
warning: keyword is hidden by macro definition |
-Wknr-promoted-parameter¶
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
declared in a previous prototype |
-Wlanguage-extension-token¶
Diagnostic text:
warning: extension used |
-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 ? |
-Wliblto¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wlinker-warnings¶
This diagnostic is enabled by default.
Diagnostic text:
warning: linking module ‘A’: B |
-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: floating-point comparison is always |
|
; constant cannot be represented exactly in type B |
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 |
|
-Wlogical-op-parentheses¶
Diagnostic text:
warning: ‘&&’ within ‘||’ |
-Wlong-long¶
Also controls -Wc++11-long-long.
Diagnostic text:
warning: ‘long long’ is an extension when C99 mode is not enabled |
-Wloop-analysis¶
Controls -Wfor-loop-analysis, -Wrange-loop-analysis.
-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 |
-Wmathematical-notation-identifier-extension¶
This diagnostic is enabled by default.
Diagnostic text:
warning: mathematical notation character <U+A> in an identifier is a Clang extension |
-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-abstract, -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-init-from-predefined, -Wmicrosoft-mutable-reference, -Wmicrosoft-pure-definition, -Wmicrosoft-redeclare-static, -Wmicrosoft-sealed, -Wmicrosoft-static-assert, -Wmicrosoft-template, -Wmicrosoft-union-member-reference, -Wmicrosoft-unqualified-friend, -Wmicrosoft-using-decl, -Wmicrosoft-void-pseudo-dtor.
-Wmicrosoft-abstract¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ‘abstract’ keyword is a Microsoft extension |
-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-charize¶
Diagnostic text:
warning: charizing operator #@ 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-cpp-macro¶
Diagnostic text:
warning: C++ operator A (aka B) used as a macro name |
-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: 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-init-from-predefined¶
This diagnostic is enabled by default.
Diagnostic text:
warning: initializing an array from a ‘A’ predefined identifier is a Microsoft extension |
-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-static-assert¶
This diagnostic is enabled by default.
Diagnostic text:
warning: use of ‘static_assert’ without inclusion of <assert.h> 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 member A found via unqualified lookup into dependent bases of class templates is a Microsoft extension |
warning: use of member A before its declaration 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 |
warning: unqualified base initializer of class templates 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¶
This diagnostic is enabled by default.
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 |
|
-Wmissing-braces¶
Diagnostic text:
warning: suggest braces around initialization of subobject |
-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-field-initializers¶
Diagnostic text:
warning: missing field A initializer |
-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-multilib¶
This diagnostic is enabled by default.
Diagnostic text:
warning: no multilib found matching flags: A |
-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-prototypes¶
Diagnostic text:
warning: no previous prototype for function A |
-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 |
-Wmisspelled-assumption¶
This diagnostic is enabled by default.
Diagnostic text:
warning: unknown assumption string ‘A’ may be misspelled; attribute is potentially ignored, did you mean ‘B’? |
-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’ |
-Rmodule-import¶
Diagnostic text:
remark: importing module ‘A’ |
|
from ‘B’ |
-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 |
-Rmodule-include-translation¶
Diagnostic text:
remark: treating # |
|
as an import of module ‘B’ |
-Rmodule-lock¶
Diagnostic text:
remark: locking ‘A’ to build module ‘B’ |
-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 -Warray-parameter, -Wbool-operation, -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.
-Wmove¶
Controls -Wpessimizing-move, -Wredundant-move, -Wreturn-std-move, -Wself-move.
-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 |
-Wmulti-gpu¶
This diagnostic is enabled by default.
Diagnostic text:
warning: multiple A architectures are detected: B; only the first one is used for ‘C’ |
-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 |
-Wnon-virtual-dtor¶
Diagnostic text:
warning: A has virtual functions but non-virtual destructor |
-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¶
Also controls -Wgnu-null-pointer-arithmetic.
Diagnostic text:
warning: performing pointer arithmetic on a null pointer has undefined behavior |
|
-Wnull-pointer-subtraction¶
Diagnostic text:
warning: performing pointer subtraction with a null pointer |
|
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-duplicate-category-definition¶
This diagnostic is enabled by default.
Diagnostic text:
warning: duplicate definition of category B on interface A |
-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-messaging-id¶
Diagnostic text:
warning: messaging unqualified id |
-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-cast¶
Diagnostic text:
warning: use of old-style cast |
-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 a feature from OpenCL version 3.0 onwards |
-Wopenmp¶
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wopenmp-51-extensions, -Wopenmp-clauses, -Wopenmp-loop-form, -Wopenmp-mapping, -Wopenmp-target, -Wsource-uses-openmp.
-Wopenmp-51-extensions¶
This diagnostic is enabled by default.
Diagnostic text:
warning: specifying OpenMP directives with [[]] is an OpenMP 5.1 extension |
-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: interop type ‘A’ cannot be specified more than once |
warning: reserved locator ‘omp_all_memory’ cannot be specified more than once |
warning: valid A clauses start with B; |
|
will be ignored |
warning: A clause should not be followed by arguments; tokens will be ignored |
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: OpenMP offloading target ‘A’ is similar to target ‘B’ already specified; will be ignored |
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: -fjmc works only for ELF; option ignored |
warning: A requires debug info. Use B or debug options that enable debugger’s stepping function; option ignored |
warning: ignoring ‘A’ as it conflicts with that implied by ‘B’ (C) |
warning: ‘A’ does not support ‘-B’; flag ignored |
warning: ‘A’ does not support ‘-moutline’; flag ignored |
warning: A requires HVX, use -mhvx/-mhvx= to enable it |
warning: option ‘A’ was ignored by the B toolchain, using ‘-fPIC’ |
warning: The warning option ‘-A’ is not supported |
warning: ignoring ‘-mlong-calls’ option as it is not currently supported with |
|
-mabicalls |
warning: the argument ‘A’ is not supported for option ‘B’. Mapping to ‘BC’ |
warning: ignoring ‘A’ option for offload arch ‘B’ as it is not currently supported there. Use it with an offload arch containing ‘C’ instead |
warning: ignoring ‘A’ option as it is not currently supported for processor ‘B’ |
warning: ignoring ‘A’ option as it is not currently supported for target ‘B’ |
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: /arm64EC has been overridden by specified target: A; option ignored |
-Wordered-compare-function-pointers¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ordered comparison of function pointers (A and B) |
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 |
-Woverloaded-virtual¶
Diagnostic text:
warning: A hides overloaded virtual |
|
-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’ |
-Wpacked¶
Also controls -Wpacked-non-pod.
Diagnostic text:
warning: packed attribute is unnecessary for A |
-Wpacked-non-pod¶
Diagnostic text:
warning: not packing field A as it is non-POD for the purposes of layout |
-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¶
Diagnostic text:
The text of this diagnostic is not controlled by Clang.
-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.
-Rpass-missed¶
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 -Wbit-int-extension, -Wc++11-extra-semi, -Wc++11-long-long, -Wc++14-attribute-extensions, -Wc++14-binary-literal, -Wc++17-attribute-extensions, -Wc++20-attribute-extensions, -Wc++20-designator, -Wc++23-default-comp-relaxed-constexpr, -Wc11-extensions, -Wcomplex-component-init, -Wdelimited-escape-sequence-extension, -Wdollar-in-identifier-extension, -Wembedded-directive, -Wempty-translation-unit, -Wfixed-enum-extension, -Wflexible-array-extensions, -Wfuture-attribute-extensions, -Wgeneric-type-extension, -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-struct, -Wgnu-flexible-array-initializer, -Wgnu-flexible-array-union-member, -Wgnu-imaginary-constant, -Wgnu-include-next, -Wgnu-label-as-value, -Wgnu-line-marker, -Wgnu-null-pointer-arithmetic, -Wgnu-offsetof-extensions, -Wgnu-pointer-arith, -Wgnu-redeclared-enum, -Wgnu-statement-expression, -Wgnu-union-cast, -Wgnu-zero-line-directive, -Wgnu-zero-variadic-macro-arguments, -Wimport-preprocessor-directive-pedantic, -Winvalid-utf8, -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: expression is not an |
|
constant expression; folding it to a constant is a GNU 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: 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: a |
|
declaration without a prototype is deprecated |
|
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: 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: 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: 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: in-class initializer for static data member is not a constant expression; folding it to a constant is a GNU 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: mixing declarations and code is a C99 extension |
warning: |
|
array size |
|
is a C99 feature |
warning: Clang permits use of type ‘double’ regardless pragma if ‘cl_khr_fp64’ is supported |
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: ‘nullptr’ is a C2x extension |
warning: attributes on |
|
declaration are a C++17 extension |
warning: [[]] attributes are a C++11 extension |
warning: [[]] attributes are a C2x 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 |
|
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 |
warning: use of an empty initializer is a C2x extension |
warning: duplicate ‘A’ declaration specifier |
warning: ‘enable_if’ is a clang extension |
warning: ‘diagnose_if’ is a clang extension |
-Wpedantic-core-features¶
Diagnostic text:
warning: A is a core feature in |
|
version C but not supported on this target |
warning: OpenCL extension A is core feature or supported optional core feature - ignoring |
-Wpedantic-macros¶
This diagnostic is enabled by default.
Controls -Wbuiltin-macro-redefined, -Wdeprecated-pragma, -Wfinal-macro, -Wmacro-redefined, -Wrestrict-expansion.
-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.
Also controls -Wgnu-pointer-arith.
Diagnostic text:
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 |
|
-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-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: Setting the floating point evaluation method to `source` on a target without SSE is not supported. |
warning: #pragma redefine_extname is applicable to external C declarations only; not applied to |
|
B |
-Wpre-c++14-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 |
-Wpre-c++14-compat-pedantic¶
Controls -Wc++98-c++11-compat-binary-literal, -Wpre-c++14-compat.
-Wpre-c++17-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 |
-Wpre-c++17-compat-pedantic¶
Also controls -Wpre-c++17-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 |
-Wpre-c++20-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: captured structured bindings are 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: passing no argument for the ‘…’ parameter of a variadic macro is incompatible with C++ standards before C++20 |
warning: ‘<=>’ operator is incompatible with C++ standards before C++20 |
warning: non-type template parameter of type A is incompatible with C++ standards before C++20 |
warning: ‘char8_t’ type specifier is incompatible with C++ standards before C++20 |
warning: member using declaration naming a non-member enumerator is incompatible with C++ standards before C++20 |
warning: member using declaration naming non-class ‘A’ enumerator is incompatible with C++ standards before C++20 |
warning: using declaration naming a scoped enumerator is incompatible with C++ standards before C++20 |
warning: using enum declaration is incompatible with C++ standards before C++20 |
-Wpre-c++20-compat-pedantic¶
Also controls -Wpre-c++20-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 |
-Wpre-c++23-compat¶
Diagnostic text:
warning: overloaded A with |
|
parameter is a C++23 extension |
warning: alias declaration in this context is incompatible with C++ standards before C++23 |
warning: ‘auto’ as a functional-style cast is incompatible with C++ standards before C++23 |
warning: consteval if is incompatible with C++ standards before C++23 |
warning: use of this statement in a constexpr |
|
is incompatible with C++ standards before C++23 |
warning: definition of a |
|
in a constexpr |
|
is incompatible with C++ standards before C++23 |
warning: |
|
in this position is incompatible with C++ standards before C++23 |
warning: label at end of compound statement is incompatible with C++ standards before C++23 |
warning: declaring overloaded A as ‘static’ is incompatible with C++ standards before C++23 |
warning: ‘size_t’ suffix for literals is incompatible with C++ standards before C++23 |
warning: static lambdas are incompatible with C++ standards before C++23 |
warning: defaulted definition of |
|
that is declared |
|
but |
|
invokes a non-constexpr comparison function is incompatible with C++ standards before C++23 |
warning: use of a ‘# |
|
‘ directive is incompatible with C++ standards before C++23 |
warning: #warning is incompatible with C++ standards before C++23 |
warning: |
|
escape sequences are incompatible with C++ standards before C++23 |
-Wpre-c++23-compat-pedantic¶
Synonym for -Wpre-c++23-compat.
-Wpre-c++26-compat¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wpre-c++26-compat-pedantic¶
Synonym for -Wpre-c++26-compat.
-Wpre-c++2c-compat¶
Synonym for -Wpre-c++26-compat.
-Wpre-c++2c-compat-pedantic¶
Synonym for -Wpre-c++26-compat-pedantic.
-Wpre-c2x-compat¶
Diagnostic text:
warning: ‘_BitInt’ suffix for literals is incompatible with C standards before C2x |
warning: digit separators are incompatible with C standards before C2x |
warning: use of an empty initializer is incompatible with C standards before C2x |
warning: ‘A’ is incompatible with C standards before C2x |
warning: label at end of compound statement is incompatible with C standards before C2x |
warning: universal character name referring to a control character is incompatible with C standards before C2x |
warning: specifying character ‘A’ with a universal character name is incompatible with C standards before C2x |
warning: use of a ‘# |
|
‘ directive is incompatible with C standards before C2x |
warning: #warning is incompatible with C standards before C2x |
warning: ‘…’ as the only parameter of a function is incompatible with C standards before C2x |
warning: ‘_Static_assert’ with no message is incompatible with C standards before C2x |
warning: [[]] attributes are incompatible with C standards before C2x |
-Wpre-c2x-compat-pedantic¶
Synonym for -Wpre-c2x-compat.
-Wpre-openmp-51-compat¶
Diagnostic text:
warning: specifying OpenMP directives with [[]] is incompatible with OpenMP standards before OpenMP 5.1 |
-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-analysis¶
Controls -Wrange-loop-bind-reference, -Wrange-loop-construct.
-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 |
|
warning: loop variable A creates a copy from type B |
-Wread-modules-implicitly¶
This diagnostic is enabled by default.
Diagnostic text:
warning: it is deprecated to read module ‘A’ implicitly; it is going to be removed in clang 18; consider to specify the dependencies explicitly |
-Wread-only-types¶
This diagnostic is enabled by default.
Diagnostic text:
warning: object of type A cannot be placed in read-only memory |
-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-consteval-if¶
This diagnostic is enabled by default.
Diagnostic text:
warning: consteval if is always true in an |
|
context |
-Wredundant-decls¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wredundant-move¶
Diagnostic text:
warning: redundant move in return statement |
-Wredundant-parens¶
Diagnostic text:
warning: redundant parentheses surrounding declarator |
-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’ |
-Rremark-backend-plugin¶
Diagnostic text:
The text of this diagnostic is not controlled by Clang.
-Wreorder¶
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wreorder-ctor, -Wreorder-init-list.
-Wreorder-ctor¶
Diagnostic text:
warning: |
|
B will be initialized after |
|
D |
warning: initializer order does not match the declaration order |
-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-super-attribute¶
This diagnostic is enabled by default.
Diagnostic text:
warning: A attribute cannot be applied to |
|
-Wreserved-id-macro¶
Synonym for -Wreserved-macro-identifier.
-Wreserved-identifier¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wreserved-macro-identifier, -Wreserved-module-identifier, -Wuser-defined-literals.
Diagnostic text:
warning: identifier A is reserved because |
|
-Wreserved-macro-identifier¶
Diagnostic text:
warning: macro name is a reserved identifier |
-Wreserved-module-identifier¶
This diagnostic is enabled by default.
Diagnostic text:
warning: A is a reserved name for a module |
-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 |
-Wrestrict-expansion¶
This diagnostic is enabled by default.
Diagnostic text:
warning: macro A has been marked as unsafe for use in headers |
|
-Wretained-language-linkage¶
Diagnostic text:
warning: friend function A retaining previous language linkage is an extension |
-Wreturn-local-addr¶
Synonym for -Wreturn-stack-address.
-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¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-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 |
-Rround-trip-cc1-args¶
Diagnostic text:
remark: generated arguments #A in round-trip: B |
-Wrtti¶
This diagnostic is enabled by default.
Diagnostic text:
warning: dynamic_cast will not work since RTTI data is disabled by |
|
warning: typeid will not work since RTTI data is disabled by |
|
-Rsanitize-address¶
Diagnostic text:
remark: -fsanitize-address-field-padding applied to A |
remark: -fsanitize-address-field-padding ignored for A because it |
|
-Wsarif-format-unstable¶
This diagnostic is enabled by default.
Diagnostic text:
warning: diagnostic formatting in SARIF mode is currently unstable |
-Rsearch-path-usage¶
Diagnostic text:
remark: search path used: ‘A’ |
-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 |
|
-Wself-move¶
Diagnostic text:
warning: explicitly moving variable of type A to itself |
|
-Wsemicolon-before-method-body¶
Diagnostic text:
warning: semicolon before method body is ignored |
-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 |
-Wshorten-64-to-32¶
Diagnostic text:
warning: implicit conversion loses integer precision: A to B |
-Wsign-compare¶
Diagnostic text:
warning: comparison of integers of different signs: A and B |
-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 |
-Wsingle-bit-bitfield-constant-conversion¶
This diagnostic is enabled by default.
Diagnostic text:
warning: implicit truncation from C to a one-bit wide bit-field changes value from A to B |
-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 |
-Rsloc-usage¶
This diagnostic is enabled by default.
Diagnostic text:
remark: source manager location address space usage: |
-Wsometimes-uninitialized¶
Diagnostic text:
warning: variable A is |
|
uninitialized whenever |
|
-Wsource-mgr¶
This diagnostic is enabled by default.
Diagnostic text:
The text of this diagnostic is not controlled by Clang.
-Wsource-uses-openmp¶
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
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: expected ‘#pragma omp end declare target’ at end of file to match ‘#pragma omp A’ |
warning: unexpected ‘#pragma omp …’ in program |
warning: isa trait ‘A’ is not known to the current target; verify the spelling or consider restricting the context selector with the ‘arch’ selector further |
-Wspir-compat¶
Diagnostic text:
warning: sampler initializer has invalid A bits |
-Wspirv-compat¶
Synonym for -Wspir-compat.
-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 |
-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¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wdeprecated-non-prototype.
Diagnostic text:
warning: a |
|
declaration without a prototype is deprecated |
|
-Wstrict-selector-match¶
Diagnostic text:
warning: multiple methods named A found |
-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-concatenation¶
Diagnostic text:
warning: suspicious concatenation of string literals in an array initialization; did you mean to separate the elements with a comma? |
-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 |
|
-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.
-Wswift-name-attribute¶
This diagnostic is enabled by default.
Diagnostic text:
warning: A attribute cannot be applied to this declaration |
warning: A attribute cannot be applied to a |
|
with no parameters |
warning: A attribute argument must be a string literal specifying a Swift function name |
warning: A attribute for getter must not have any parameters besides ‘self:’ |
warning: A attribute has invalid identifier for the |
|
name |
warning: A attribute is missing parameter label clause |
warning: A attribute cannot specify more than one ‘self:’ parameter |
warning: too |
|
parameters in the signature specified by the B attribute (expected C; got D) |
warning: A attribute for setter must have one parameter for new value |
warning: A attribute for ‘subscript’ getter cannot have a ‘newValue:’ parameter |
warning: A attribute for ‘subscript’ must |
|
warning: A attribute for ‘subscript’ setter cannot have multiple ‘newValue:’ parameters |
warning: A attribute for ‘subscript’ setter must have a ‘newValue:’ parameter |
-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-alignment¶
This diagnostic is enabled by default.
Diagnostic text:
warning: __sync builtin operation MUST have natural alignment (consider using __atomic). |
-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 |
-Wsynth¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wtarget-clones-mixed-specifiers¶
This diagnostic is enabled by default.
Diagnostic text:
warning: mixing ‘target_clones’ specifier mechanisms is permitted for GCC compatibility; use a comma separated sequence of string literals, or a string literal containing a comma-separated list of versions |
-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-value-range-compare, -Wtype-limits.
-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-char-zero-compare¶
Diagnostic text:
warning: result of comparison of |
|
C |
|
is always E, since char is interpreted as unsigned |
-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 |
-Wtautological-value-range-compare¶
Diagnostic text:
warning: result of comparison of |
|
D |
|
is always F |
-Wtcb-enforcement¶
This diagnostic is enabled by default.
Diagnostic text:
warning: calling A is a violation of trusted computing base ‘B’ |
-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: calling function A requires negative capability ‘B’ |
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 pointer types; type here is B |
warning: ignoring A attribute because its argument is invalid |
warning: A attribute without capability arguments refers to ‘this’, but B isn’t annotated with ‘capability’ or ‘scoped_lockable’ attribute |
warning: A attribute without capability arguments can only be applied to non-static methods of a class |
-Wthread-safety-beta¶
Diagnostic text:
warning: thread safety beta warning |
-Wthread-safety-negative¶
Diagnostic text:
warning: acquiring A ‘B’ requires negative capability ‘C’ |
-Wthread-safety-precise¶
Diagnostic text:
warning: calling function B requires holding A |
|
warning: |
|
the value pointed to by B requires holding A |
|
warning: |
|
variable B requires holding A |
|
-Wthread-safety-reference¶
Diagnostic text:
warning: passing variable B by reference requires holding A |
|
warning: passing the value that B points to by reference requires holding A |
|
-Wthread-safety-verbose¶
Diagnostic text:
warning: thread safety verbose warning |
-Wtrigraphs¶
This diagnostic is enabled by default.
Diagnostic text:
warning: trigraph converted to ‘A’ character |
warning: trigraph ends block comment |
warning: trigraph ignored |
warning: ignored trigraph would end block comment |
-Wtype-limits¶
Controls -Wtautological-type-limit-compare, -Wtautological-unsigned-char-zero-compare, -Wtautological-unsigned-enum-zero-compare, -Wtautological-unsigned-zero-compare.
-Wtype-safety¶
This diagnostic is enabled by default.
Diagnostic text:
warning: specified A type tag requires a null pointer |
warning: argument type A doesn’t match specified B type tag |
|
warning: this type tag was not designed to be used with this function |
-Wtypedef-redefinition¶
This diagnostic is enabled by default.
Diagnostic text:
warning: redefinition of typedef A is a C11 feature |
-Wtypename-missing¶
This diagnostic is enabled by default.
Diagnostic text:
warning: missing ‘typename’ prior to dependent type name ‘AB’ |
-Wunable-to-open-stats-file¶
This diagnostic is enabled by default.
Diagnostic text:
warning: unable to open statistics output file ‘A’: ‘B’ |
-Wunaligned-access¶
Diagnostic text:
warning: field B within A is less aligned than C and is usually due to A being packed, which can lead to unaligned accesses |
-Wunaligned-qualifier-implicit-cast¶
This diagnostic is enabled by default.
Diagnostic text:
warning: implicit cast from type A to type B drops __unaligned qualifier |
-Wundeclared-selector¶
Diagnostic text:
warning: undeclared selector A |
warning: undeclared selector A; did you mean B? |
-Wundef¶
Diagnostic text:
warning: A is not defined, evaluates to 0 |
-Wundef-prefix¶
Diagnostic text:
warning: A is not defined, evaluates to 0 |
-Wundefined-bool-conversion¶
This diagnostic is enabled by default.
Diagnostic text:
warning: reference cannot be bound to dereferenced null pointer in well-defined C++ code; pointer may be assumed to always convert to true |
warning: ‘this’ pointer cannot be null in well-defined C++ code; pointer may be assumed to always convert to true |
-Wundefined-func-template¶
Diagnostic text:
warning: instantiation of function A required here, but no definition is available |
-Wundefined-inline¶
This diagnostic is enabled by default.
Diagnostic text:
warning: inline function A is not defined |
-Wundefined-internal¶
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
B has internal linkage but is not defined |
-Wundefined-internal-type¶
Diagnostic text:
warning: ISO C++ requires a definition in this translation unit for |
|
B because its type does not have linkage |
-Wundefined-reinterpret-cast¶
Diagnostic text:
warning: dereference of type B that was reinterpret_cast from type A has undefined behavior |
warning: reinterpret_cast from A to B has undefined behavior |
-Wundefined-var-template¶
This diagnostic is enabled by default.
Diagnostic text:
warning: instantiation of variable A required here, but no definition is available |
-Wunderaligned-exception-object¶
This diagnostic is enabled by default.
Diagnostic text:
warning: underaligned exception object thrown |
-Wunevaluated-expression¶
This diagnostic is enabled by default.
Also controls -Wpotentially-evaluated-expression.
Diagnostic text:
warning: expression with side effects has no effect in an unevaluated context |
-Wunguarded-availability¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wunguarded-availability-new.
Diagnostic text:
warning: A is only available on B C or newer |
-Wunguarded-availability-new¶
This diagnostic is enabled by default.
Diagnostic text:
warning: A is only available on B C or newer |
-Wunicode¶
This diagnostic is enabled by default.
Diagnostic text:
warning: empty delimited universal character name; treating as ‘\’ ‘A’ ‘{’ ‘}’ |
warning: incomplete delimited universal character name; treating as ‘\’ ‘A’ ‘{’ identifier |
warning: incomplete universal character name; treating as ‘\’ followed by identifier |
warning: \A used with no following hex digits; treating as ‘\’ followed by identifier |
warning: universal character name refers to a surrogate character |
warning: universal character names are only valid in C99 or C++; treating as ‘\’ followed by identifier |
warning: universal character names are only valid in C99 or C++ |
-Wunicode-homoglyph¶
This diagnostic is enabled by default.
Diagnostic text:
warning: treating Unicode character <U+A> as an identifier character rather than as ‘B’ symbol |
-Wunicode-whitespace¶
This diagnostic is enabled by default.
Diagnostic text:
warning: treating Unicode character as whitespace |
-Wunicode-zero-width¶
This diagnostic is enabled by default.
Diagnostic text:
warning: identifier contains Unicode character <U+A> that is invisible in some environments |
-Wuninitialized¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wsometimes-uninitialized, -Wstatic-self-init, -Wuninitialized-const-reference.
Diagnostic text:
warning: base class A is uninitialized when used here to access B |
warning: field A is uninitialized when used here |
warning: reference A is not yet bound to a value when used here |
warning: block pointer variable A is |
|
when captured by block |
warning: variable A is uninitialized when used within its own initialization |
warning: reference A is not yet bound to a value when used within its own initialization |
warning: variable A is uninitialized when |
|
-Wuninitialized-const-reference¶
Diagnostic text:
warning: variable A is uninitialized when passed as a const reference argument here |
-Wunknown-argument¶
This diagnostic is enabled by default.
Diagnostic text:
warning: joined argument treated as ‘A’; did you mean ‘B’? |
warning: unknown argument ignored in clang-cl: ‘A’ |
warning: unknown argument ignored in clang-cl ‘A’; did you mean ‘B’? |
-Wunknown-assumption¶
This diagnostic is enabled by default.
Diagnostic text:
warning: unknown assumption string ‘A’; attribute is potentially ignored |
-Wunknown-attributes¶
This diagnostic is enabled by default.
Diagnostic text:
warning: unknown attribute A ignored |
-Wunknown-cuda-version¶
This diagnostic is enabled by default.
Diagnostic text:
warning: CUDA versionA is newer than the latest |
|
supported version C |
warning: CUDA version A is only partially supported |
-Wunknown-directives¶
This diagnostic is enabled by default.
Diagnostic text:
warning: invalid preprocessing directive |
|
-Wunknown-escape-sequence¶
This diagnostic is enabled by default.
Diagnostic text:
warning: unknown escape sequence ‘\A’ |
-Wunknown-pragmas¶
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: expected ‘ON’ or ‘OFF’ or ‘DEFAULT’ in pragma |
warning: expected end of directive in pragma |
warning: unknown pragma in STDC namespace |
warning: pragma diagnostic pop could not pop, no matching push |
warning: pragma diagnostic expected ‘error’, ‘warning’, ‘ignored’, ‘fatal’, ‘push’, or ‘pop’ |
warning: pragma diagnostic expected option name (e.g. “-Wundef”) |
warning: unexpected token in pragma diagnostic |
warning: #pragma execution_character_set expected ‘A’ |
warning: #pragma execution_character_set invalid value ‘A’, only ‘UTF-8’ is supported |
warning: #pragma execution_character_set expected ‘push’ or ‘pop’ |
warning: unknown pragma ignored |
warning: pragma include_alias expected ‘A’ |
warning: pragma include_alias expected include filename |
warning: angle-bracketed include <A> cannot be aliased to double-quoted include “B” |
warning: double-quoted include “A” cannot be aliased to angle-bracketed include <B> |
warning: #pragma warning expected ‘A’ |
warning: #pragma warning expected a warning number |
warning: #pragma warning(push, level) requires a level between 0 and 4 |
warning: #pragma warning expected ‘push’, ‘pop’, ‘default’, ‘disable’, ‘error’, ‘once’, ‘suppress’, 1, 2, 3, or 4 |
warning: pragma STDC FENV_ROUND is not supported |
-Wunknown-sanitizers¶
This diagnostic is enabled by default.
Diagnostic text:
warning: unknown sanitizer ‘A’ ignored |
-Wunknown-warning-option¶
This diagnostic is enabled by default.
Diagnostic text:
warning: unknown warning group ‘A’, ignored |
warning: unknown |
|
option ‘B’ |
|
warning: unknown A warning specifier: ‘B’ |
-Wunnamed-type-template-args¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wc++98-compat-unnamed-type-template-args.
Diagnostic text:
warning: template argument uses unnamed type |
-Wunneeded-internal-declaration¶
Diagnostic text:
warning: |
|
B is not needed and will not be emitted |
warning: ‘static’ function A declared in header file should be declared ‘static inline’ |
-Wunneeded-member-function¶
Diagnostic text:
warning: member function A is not needed and will not be emitted |
-Wunqualified-std-cast-call¶
This diagnostic is enabled by default.
Diagnostic text:
warning: unqualified call to ‘A’ |
-Wunreachable-code¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wunreachable-code-fallthrough, -Wunreachable-code-generic-assoc, -Wunreachable-code-loop-increment.
Diagnostic text:
warning: code will never be executed |
-Wunreachable-code-aggressive¶
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wunreachable-code, -Wunreachable-code-break, -Wunreachable-code-return.
-Wunreachable-code-break¶
Diagnostic text:
warning: ‘break’ will never be executed |
-Wunreachable-code-fallthrough¶
Diagnostic text:
warning: fallthrough annotation in unreachable code |
-Wunreachable-code-generic-assoc¶
This diagnostic is enabled by default.
Diagnostic text:
warning: due to lvalue conversion of the controlling expression, association of type A will never be selected because it is |
|
-Wunreachable-code-loop-increment¶
Diagnostic text:
warning: loop will run at most once (loop increment never executed) |
-Wunreachable-code-return¶
Diagnostic text:
warning: ‘return’ will never be executed |
-Wunsafe-buffer-usage¶
Diagnostic text:
warning: |
|
warning: A is an |
|
-Wunsequenced¶
This diagnostic is enabled by default.
Diagnostic text:
warning: multiple unsequenced modifications to A |
warning: unsequenced modification and access to A |
-Wunsupported-abi¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ‘A’: selected processor lacks floating point registers |
warning: float ABI ‘A’ is not supported by current library |
-Wunsupported-abs¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ignoring ‘-mabs=2008’ option because the ‘A’ architecture does not support it |
warning: ignoring ‘-mabs=legacy’ option because the ‘A’ architecture does not support it |
-Wunsupported-availability-guard¶
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
does not guard availability here; use if ( |
|
) instead |
-Wunsupported-cb¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ignoring ‘-mcompact-branches=’ option because the ‘A’ architecture does not support it |
-Wunsupported-dll-base-class-template¶
Diagnostic text:
warning: propagating dll attribute to |
|
base class template without dll attribute is not supported |
-Wunsupported-floating-point-opt¶
This diagnostic is enabled by default.
Diagnostic text:
warning: overriding currently unsupported use of floating point exceptions on this target |
warning: overriding currently unsupported rounding mode on this target |
-Wunsupported-friend¶
This diagnostic is enabled by default.
Diagnostic text:
warning: dependent nested name specifier ‘A’ for friend template declaration is not supported; ignoring this friend declaration |
warning: dependent nested name specifier ‘A’ for friend class declaration is not supported; turning off access control for B |
-Wunsupported-gpopt¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ignoring ‘-mgpopt’ option as it cannot be used with |
|
-mabicalls |
-Wunsupported-nan¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ignoring ‘-mnan=2008’ option because the ‘A’ architecture does not support it |
warning: ignoring ‘-mnan=legacy’ option because the ‘A’ architecture does not support it |
-Wunsupported-target-opt¶
This diagnostic is enabled by default.
Diagnostic text:
warning: debug information option ‘A’ is not supported; requires DWARF-C but target ‘B’ only provides DWARF-D |
warning: debug information option ‘A’ is not supported for target ‘B’ |
-Wunsupported-visibility¶
This diagnostic is enabled by default.
Diagnostic text:
warning: target does not support ‘protected’ visibility; using ‘default’ |
-Wunusable-partial-specialization¶
This diagnostic is an error by default, but the flag -Wno-unusable-partial-specialization
can be used to disable the error.
Diagnostic text:
error: |
|
template partial specialization contains |
|
that cannot be deduced; this partial specialization will never be used |
-Wunused¶
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wunused-argument, -Wunused-but-set-variable, -Wunused-function, -Wunused-label, -Wunused-lambda-capture, -Wunused-local-typedef, -Wunused-private-field, -Wunused-property-ivar, -Wunused-value, -Wunused-variable.
-Wunused-argument¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wunused-but-set-parameter¶
Diagnostic text:
warning: parameter A set but not used |
-Wunused-but-set-variable¶
Diagnostic text:
warning: variable A set but not used |
-Wunused-command-line-argument¶
This diagnostic is enabled by default.
Diagnostic text:
warning: argument ‘A’ requires profile-guided optimization information |
warning: argument ‘A’ requires profile-guided optimization information |
warning: joined argument expects additional value: ‘A’ |
warning: A: ‘B’ input unused |
|
warning: A: ‘B’ input unused in cpp mode |
warning: ignoring invalid /arch: argument ‘A’; for |
|
-bit expected one of C |
warning: A: previously preprocessed input |
|
warning: argument unused during compilation: ‘A’ |
warning: ‘-x A’ after last input file has no effect |
warning: the flag ‘A’ has been deprecated and will be ignored |
warning: ignoring -fdiscard-value-names for LLVM Bitcode |
warning: ignoring -fverify-debuginfo-preserve-export=A because -fverify-debuginfo-preserve wasn’t enabled |
-Wunused-comparison¶
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
comparison result unused |
-Wunused-const-variable¶
Diagnostic text:
warning: unused variable A |
-Wunused-exception-parameter¶
Diagnostic text:
warning: unused exception parameter A |
-Wunused-function¶
Also controls -Wunneeded-internal-declaration.
Diagnostic text:
warning: unused function A |
-Wunused-getter-return-value¶
This diagnostic is enabled by default.
Diagnostic text:
warning: property access result unused - getters should not be used for side effects |
-Wunused-label¶
Diagnostic text:
warning: unused label A |
-Wunused-lambda-capture¶
Diagnostic text:
warning: lambda capture A is not |
|
-Wunused-local-typedef¶
Diagnostic text:
warning: unused |
|
B |
-Wunused-local-typedefs¶
Synonym for -Wunused-local-typedef.
-Wunused-macros¶
Diagnostic text:
warning: macro is not used |
-Wunused-member-function¶
Also controls -Wunneeded-member-function.
Diagnostic text:
warning: unused member function A |
-Wunused-parameter¶
Diagnostic text:
warning: unused parameter A |
-Wunused-private-field¶
Diagnostic text:
warning: private field A is not used |
-Wunused-property-ivar¶
Diagnostic text:
warning: ivar A which backs the property is not referenced in this property’s accessor |
-Wunused-result¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ignoring return value of function declared with A attribute |
warning: ignoring return value of function declared with A attribute: B |
-Wunused-template¶
Also controls -Wunneeded-internal-declaration.
Diagnostic text:
warning: unused |
|
template B |
-Wunused-value¶
This diagnostic is enabled by default.
Also controls -Wunevaluated-expression, -Wunused-comparison, -Wunused-result.
Diagnostic text:
warning: ignoring return value of function declared with A attribute |
warning: left operand of comma operator has no effect |
warning: ignoring temporary created by a constructor declared with A attribute |
warning: ignoring temporary created by a constructor declared with A attribute: B |
warning: container access result unused - container access should not be used for side effects |
warning: expression result unused |
warning: expression result unused; should this cast be to ‘void’? |
-Wunused-variable¶
Also controls -Wunused-const-variable.
Diagnostic text:
warning: unused variable A |
-Wunused-volatile-lvalue¶
This diagnostic is enabled by default.
Diagnostic text:
warning: expression result unused; assign into a variable to force a volatile load |
-Wused-but-marked-unused¶
Diagnostic text:
warning: A was marked unused but was used |
-Wuser-defined-literals¶
This diagnostic is enabled by default.
Diagnostic text:
warning: user-defined literal suffixes |
|
are reserved |
|
-Wuser-defined-warnings¶
This diagnostic is enabled by default.
Diagnostic text:
The text of this diagnostic is not controlled by Clang.
-Wvarargs¶
This diagnostic is enabled by default.
Diagnostic text:
warning: second argument to ‘va_start’ is not the last named parameter |
warning: second argument to ‘va_arg’ is of promotable type A; this va_arg has undefined behavior because arguments will be promoted to B |
warning: passing |
|
to ‘va_start’ has undefined behavior |
-Wvariadic-macros¶
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: named variadic macros are a GNU extension |
warning: __VA_OPT__ can only appear in the expansion of a variadic macro |
warning: variadic macros are a C99 feature |
-Wvec-elem-size¶
This diagnostic is an error by default, but the flag -Wno-vec-elem-size
can be used to disable the error.
Diagnostic text:
error: vector operands do not have the same elements sizes (A and B) |
-Wvector-conversion¶
Diagnostic text:
warning: incompatible vector types |
|
-Wvector-conversions¶
Synonym for -Wvector-conversion.
-Wvexing-parse¶
This diagnostic is enabled by default.
Diagnostic text:
warning: empty parentheses interpreted as a function declaration |
warning: parentheses were disambiguated as a function declaration |
warning: parentheses were disambiguated as redundant parentheses around declaration of variable named A |
-Wvisibility¶
This diagnostic is enabled by default.
Diagnostic text:
warning: declaration of A will not be visible outside of this function |
warning: redefinition of A will not be visible outside of this function |
-Wvla¶
Also controls -Wvla-extension.
Diagnostic text:
warning: variable length array used |
-Wvla-extension¶
Diagnostic text:
warning: variable length arrays are a C99 feature |
-Wvoid-pointer-to-enum-cast¶
This diagnostic is enabled by default.
Diagnostic text:
warning: cast to smaller integer type B from A |
-Wvoid-pointer-to-int-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 |
-Wvoid-ptr-dereference¶
This diagnostic is enabled by default.
Diagnostic text:
warning: ISO C does not allow indirection on operand of type A |
-Wvolatile-register-var¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wwasm-exception-spec¶
This diagnostic is enabled by default.
Diagnostic text:
warning: dynamic exception specifications with types are currently ignored in wasm |
-Wweak-template-vtables¶
Diagnostic text:
warning: this warning is no longer in use and will be removed in the next release |
-Wweak-vtables¶
Diagnostic text:
warning: A has no out-of-line virtual method definitions; its vtable will be emitted in every translation unit |
-Wwritable-strings¶
This diagnostic is enabled by default.
Also controls -Wdeprecated-writable-strings.
Diagnostic text:
warning: ISO C++11 does not allow conversion from string literal to A |
-Wwrite-strings¶
Synonym for -Wwritable-strings.
Note: enabling this warning in C will change the semantic behavior of the
program by treating all string literals as having type const char *
instead of char *
. This can cause unexpected behaviors with type-sensitive
constructs like _Generic
.
-Wxor-used-as-pow¶
This diagnostic is enabled by default.
Diagnostic text:
warning: result of ‘A’ is B; did you mean exponentiation? |
warning: result of ‘A’ is B; did you mean ‘C’? |
warning: result of ‘A’ is B; did you mean ‘C’ (D)? |
-Wzero-as-null-pointer-constant¶
Diagnostic text:
warning: zero as null pointer constant |
-Wzero-length-array¶
Diagnostic text:
warning: zero size arrays are an extension |