Diagnostic flags in Clang¶
Introduction¶
This page lists the diagnostic flags currently supported by Clang.
Diagnostic flags¶
-W#pragma-messages¶
This diagnostic is enabled by default.
Diagnostic text:
The text of this diagnostic is not controlled by Clang.
-W#warnings¶
This diagnostic is enabled by default.
Diagnostic text:
The text of this diagnostic is not controlled by Clang.
-WCFString-literal¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: input conversion stopped due to an input byte that does not belong to the input codeset UTF-8 | 
-WIndependentClass-attribute¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: 'objc_independent_class' attribute may be put on a typedef only; attribute is ignored | 
| warning: 'objc_independent_class' attribute may be put on Objective-C object pointer type only; attribute is ignored | 
-WNSObject-attribute¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: 'NSObject' attribute may be put on a typedef only; attribute is ignored | 
-Wabsolute-value¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: absolute value function A given an argument of type B but has parameter of type C which may cause truncation of value | 
| warning: taking the absolute value of | 
 | type B is suspicious | 
| warning: taking the absolute value of unsigned type A has no effect | 
| warning: using | 
 | absolute value function A when argument is of | 
 | type | 
-Wabstract-final-class¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: abstract class is marked ' | 
 | ' | 
-Wabstract-vbase-init¶
Diagnostic text:
| warning: initializer for virtual base class A of abstract class B will never be used | 
-Waddress¶
This diagnostic is enabled by default.
Controls -Wpointer-bool-conversion, -Wstring-compare, -Wtautological-pointer-compare.
-Waddress-of-packed-member¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: taking address of packed member A of class or structure B may result in an unaligned pointer value | 
-Waddress-of-temporary¶
This diagnostic is an error by default, but the flag -Wno-address-of-temporary can be used to disable the error.
Diagnostic text:
| error: taking the address of a temporary object of type A | 
-Waggregate-return¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wall¶
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wmost, -Wparentheses, -Wswitch, -Wswitch-bool.
-Walloca-with-align-alignof¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: second argument to __builtin_alloca_with_align is supposed to be in bits | 
-Wambiguous-delete¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: multiple suitable A functions for B; no 'operator delete' function will be invoked if initialization throws an exception | 
-Wambiguous-ellipsis¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: '...' in this location creates a C-style varargs function | 
 | 
-Wambiguous-macro¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: ambiguous expansion of macro A | 
-Wambiguous-member-template¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: lookup of A in member access expression is ambiguous; using member of B | 
-Wanalyzer-incompatible-plugin¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: checker plugin 'A' is not compatible with this version of the analyzer | 
-Wanonymous-pack-parens¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: ISO C++11 requires a parenthesized pack declaration to have a name | 
-Warc¶
This diagnostic is enabled by default.
Controls -Warc-non-pod-memaccess, -Warc-retain-cycles, -Warc-unsafe-retained-assign.
-Warc-bridge-casts-disallowed-in-nonarc¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: 'A' casts have no effect when not using ARC | 
-Warc-maybe-repeated-use-of-weak¶
Diagnostic text:
| warning: weak | 
 | B may be accessed multiple times in this | 
 | and may be unpredictably set to nil; assign to a strong variable to keep the object alive | 
-Warc-non-pod-memaccess¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: | 
 | this B call is a pointer to ownership-qualified type C | 
-Warc-performSelector-leaks¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: performSelector may cause a leak because its selector is unknown | 
-Warc-repeated-use-of-weak¶
Also controls -Warc-maybe-repeated-use-of-weak.
Diagnostic text:
| warning: weak | 
 | B is accessed multiple times in this | 
 | but may be unpredictably set to nil; assign to a strong variable to keep the object alive | 
-Warc-retain-cycles¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: capturing A strongly in this block is likely to lead to a retain cycle | 
-Warc-unsafe-retained-assign¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: assigning | 
 | to a weak | 
 | ; object will be released after assignment | 
| warning: assigning retained object to | 
 | 
 | 
 | ; object will be released after assignment | 
| warning: assigning retained object to unsafe property; object will be released after assignment | 
-Wargument-outside-range¶
This diagnostic is an error by default, but the flag -Wno-argument-outside-range can be used to disable the error.
Diagnostic text:
| error: argument value A is outside the valid range [B, C] | 
-Warray-bounds¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: array index A is past the end of the array (which contains B element | 
 | ) | 
| warning: array index A is before the beginning of the array | 
| warning: array argument is too small; | 
 | , callee requires at least B | 
| warning: 'static' has no effect on zero-length arrays | 
-Warray-bounds-pointer-arithmetic¶
Diagnostic text:
| warning: the pointer incremented by A refers past the end of the array (that contains B element | 
 | ) | 
| warning: the pointer decremented by A refers before the beginning of the array | 
-Wasm¶
This diagnostic is enabled by default.
Controls -Wasm-ignored-qualifier, -Wasm-operand-widths.
-Wasm-ignored-qualifier¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: ignored A qualifier on asm | 
| warning: meaningless 'volatile' on asm outside function | 
-Wasm-operand-widths¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: value size does not match register size specified by the constraint and modifier | 
-Wassume¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: the argument to A has side effects that will be discarded | 
-Wat-protocol¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Watimport-in-framework-header¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: use of '@import' in framework header is discouraged, including this header requires -fmodules | 
-Watomic-alignment¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: | 
 | atomic operation may incur significant performance penalty | 
-Watomic-implicit-seq-cst¶
Diagnostic text:
| warning: implicit use of sequentially-consistent atomic may incur stronger memory barriers than necessary | 
-Watomic-memory-ordering¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: memory order argument to atomic operation is invalid | 
-Watomic-property-with-user-defined-accessor¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: writable atomic property A cannot pair a synthesized | 
 | with a user defined | 
 | 
-Wattribute-packed-for-bitfield¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: 'packed' attribute was ignored on bit-fields with single-byte alignment in older versions of GCC and Clang | 
-Wattributes¶
This diagnostic is enabled by default.
Controls -Wignored-attributes, -Wunknown-attributes.
-Wauto-disable-vptr-sanitizer¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: implicitly disabling vptr sanitizer because rtti wasn't enabled | 
-Wauto-import¶
Diagnostic text:
| warning: treating # | 
 | as an import of module 'B' | 
-Wauto-storage-class¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: 'auto' storage class specifier is not permitted in C++11, and will not be supported in future releases | 
-Wauto-var-id¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: 'auto' deduced as 'id' in declaration of A | 
-Wavailability¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: 'unavailable' availability overrides all other availability information | 
| warning: ignoring availability attribute | 
 | 
| warning: only 'unavailable' and 'deprecated' are supported for Swift availability | 
| warning: unknown platform A in availability macro | 
| warning: feature cannot be | 
 | in B version C before it was | 
 | in version E; attribute ignored | 
| warning: use same version number separators '_' or '.'; as in 'major[.minor[.subminor]]' | 
| warning: availability does not match previous declaration | 
| warning: | 
 | method | 
 | 
 | 
 | on B (C vs. D) | 
| warning: | 
 | method cannot be unavailable on A when | 
 | is available | 
-Wavr-rtlib-linking-quirks¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: support for linking stdlibs for microcontroller 'A' is not implemented | 
| warning: no avr-gcc installation can be found on the system, cannot link standard libraries | 
| warning: no avr-libc installation can be found on the system, cannot link standard libraries | 
| warning: no target microcontroller specified on command line, cannot link standard libraries, please pass -mmcu=<mcu name> | 
| warning: standard library not linked and so no interrupt vector table or compiler runtime routines will be linked | 
-Wbackend-plugin¶
This diagnostic is enabled by default.
Diagnostic text:
The text of this diagnostic is not controlled by Clang.
-Wbackslash-newline-escape¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: backslash and newline separated by space | 
-Wbad-function-cast¶
Diagnostic text:
| warning: cast from function call of type A to non-matching type B | 
-Wbinary-literal¶
Controls -Wc++14-binary-literal, -Wc++98-c++11-compat-binary-literal, -Wgnu-binary-literal.
-Wbind-to-temporary-copy¶
Also controls -Wc++98-compat-bind-to-temporary-copy.
Diagnostic text:
| warning: C++98 requires an accessible copy constructor for class C when binding a reference to a temporary; was | 
 | 
| warning: no viable constructor | 
 | of type B; C++98 requires a copy constructor when binding a reference to a temporary | 
-Wbinding-in-condition¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: ISO C++17 does not permit structured binding declaration in a condition | 
-Wbitfield-constant-conversion¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: implicit truncation from C to bit-field changes value from A to B | 
-Wbitfield-enum-conversion¶
Diagnostic text:
| warning: bit-field A is not wide enough to store all enumerators of B | 
| warning: signed bit-field A needs an extra bit to represent the largest positive enumerators of B | 
| warning: assigning value of signed enum type B to unsigned bit-field A; negative enumerators of enum B will be converted to positive values | 
-Wbitfield-width¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: width of anonymous bit-field (A bits) exceeds width of its type; value will be truncated to B bit | 
 | 
| warning: width of bit-field A (B bits) exceeds the width of its type; value will be truncated to C bit | 
 | 
-Wbitwise-op-parentheses¶
This diagnostic is enabled by default.
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.
-Wbraced-scalar-init¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: braces around scalar initializer | 
-Wbridge-cast¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: A bridges to B, not C | 
| warning: A cannot bridge to B | 
-Wbuiltin-macro-redefined¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: redefining builtin macro | 
| warning: undefining builtin macro | 
-Wbuiltin-memcpy-chk-size¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: 'A' will always overflow; destination buffer has size B, but size argument is C | 
-Wbuiltin-requires-header¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: declaration of built-in function 'B' requires inclusion of the header <A> | 
-Wc++-compat¶
Diagnostic text:
| warning: | 
 | 
 | has size 0 in C, | 
 | in C++ | 
-Wc++0x-compat¶
Synonym for -Wc++11-compat.
-Wc++0x-extensions¶
Synonym for -Wc++11-extensions.
-Wc++0x-narrowing¶
Synonym for -Wc++11-narrowing.
-Wc++11-compat¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wc++11-compat-deprecated-writable-strings, -Wc++11-compat-reserved-user-defined-literal, -Wc++11-narrowing, -Wc++98-c++11-c++14-c++17-compat, -Wc++98-c++11-c++14-compat, -Wc++98-c++11-compat.
Diagnostic text:
| warning: integer literal is too large to be represented in type 'long' and is subject to undefined behavior under C++98, interpreting as 'unsigned long'; this literal will | 
 | in C++11 onwards | 
| warning: 'auto' storage class specifier is redundant and incompatible with C++11 | 
| warning: identifier after literal will be treated as a user-defined literal suffix in C++11 | 
| warning: 'A' is a keyword in C++11 | 
| warning: use of right-shift operator ('>>') in template argument will require parentheses in C++11 | 
| warning: explicit instantiation cannot be 'inline' | 
| warning: explicit instantiation of A must occur at global scope | 
| warning: explicit instantiation of A not in a namespace enclosing B | 
| warning: explicit instantiation of A must occur in namespace B | 
| warning: integer literal is too large to be represented in type 'long', interpreting as 'unsigned long' per C++98; this literal will | 
 | in C++11 onwards | 
-Wc++11-compat-deprecated-writable-strings¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: conversion from string literal to A is deprecated | 
-Wc++11-compat-pedantic¶
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wc++11-compat, -Wc++98-c++11-c++14-c++17-compat-pedantic, -Wc++98-c++11-c++14-compat-pedantic, -Wc++98-c++11-compat-pedantic.
-Wc++11-compat-reserved-user-defined-literal¶
Diagnostic text:
| warning: identifier after literal will be treated as a reserved user-defined literal suffix in C++11 | 
-Wc++11-extensions¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wc++11-extra-semi, -Wc++11-inline-namespace, -Wc++11-long-long.
Diagnostic text:
| warning: alias declarations are a C++11 extension | 
| warning: implicit conversion from array size expression of type A to | 
 | type C is a C++11 extension | 
| warning: 'auto' type specifier is a C++11 extension | 
| warning: enumeration types with a fixed underlying type are a C++11 extension | 
| warning: | 
 | function definitions are a C++11 extension | 
| warning: befriending enumeration type A is a C++11 extension | 
| warning: commas at the end of enumerator lists are a C++11 extension | 
| warning: explicit conversion functions are a C++11 extension | 
| warning: extern templates are a C++11 extension | 
| warning: range-based for loop is a C++11 extension | 
| warning: generalized initializer lists are a C++11 extension | 
| warning: use of enumeration in a nested name specifier is a C++11 extension | 
| warning: non-class friend type A is a C++11 extension | 
| warning: in-class initialization of non-static data member is a C++11 extension | 
| warning: 'A' keyword is a C++11 extension | 
| warning: reference qualifiers on functions are a C++11 extension | 
| warning: rvalue references are a C++11 extension | 
| warning: scoped enumerations are a C++11 extension | 
| warning: static data member A in union is a C++11 extension | 
| warning: non-type template argument referring to | 
 | B with internal linkage is a C++11 extension | 
| warning: 'template' keyword outside of a template | 
| warning: default template arguments for a function template are a C++11 extension | 
| warning: 'typename' occurs outside of a template | 
| warning: unelaborated friend declaration is a C++11 extension; specify ' | 
 | ' to befriend B | 
| warning: variadic templates are a C++11 extension | 
-Wc++11-inline-namespace¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: inline namespaces are a C++11 feature | 
-Wc++11-narrowing¶
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
| error: | 
 | 
 | 
 | 
| error: constant expression evaluates to A which cannot be narrowed to type B | 
| error: type A cannot be narrowed to B in initializer list | 
| error: non-constant-expression cannot be narrowed from type A to B in initializer list | 
| warning: constant expression evaluates to A which cannot be narrowed to type B in C++11 | 
| warning: type A cannot be narrowed to B in initializer list in C++11 | 
| warning: non-constant-expression cannot be narrowed from type A to B in initializer list in C++11 | 
-Wc++14-compat-pedantic¶
Controls -Wc++14-compat, -Wc++98-c++11-c++14-c++17-compat-pedantic, -Wc++98-c++11-c++14-compat-pedantic.
-Wc++14-extensions¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wc++14-binary-literal.
Diagnostic text:
| warning: use of this statement in a constexpr | 
 | is a C++14 extension | 
| warning: multiple return statements in constexpr function is a C++14 extension | 
| warning: variable declaration in a constexpr | 
 | is a C++14 extension | 
| warning: type definition in a constexpr | 
 | is a C++14 extension | 
| warning: use of the A attribute is a C++14 extension | 
| warning: 'decltype(auto)' type specifier is a C++14 extension | 
| warning: initialized lambda captures are a C++14 extension | 
| warning: variable templates are a C++14 extension | 
-Wc++17-compat¶
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wc++17-compat-mangling, -Wc++98-c++11-c++14-c++17-compat, -Wdeprecated-increment-bool, -Wdeprecated-register.
-Wc++17-compat-mangling¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: mangled name of A will change in C++17 due to non-throwing exception specification in function signature | 
-Wc++17-compat-pedantic¶
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wc++17-compat, -Wc++98-c++11-c++14-c++17-compat-pedantic.
-Wc++17-extensions¶
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
| warning: ISO C++ standards before C++17 do not allow new expression for type A to use list-initialization | 
| warning: constexpr if is a C++17 extension | 
| warning: 'constexpr' on lambda expressions is a C++17 extension | 
| warning: use of the A attribute is a C++17 extension | 
| warning: decomposition declarations are a C++17 extension | 
| warning: pack fold expression is a C++17 extension | 
| warning: 'begin' and 'end' returning different types (A and B) is a C++17 extension | 
| warning: hexadecimal floating literals are a C++17 feature | 
| warning: ' | 
 | ' initialization statements are a C++17 extension | 
| warning: inline variables are a C++17 extension | 
| warning: use of multiple declarators in a single using declaration is a C++17 extension | 
| warning: nested namespace definition is a C++17 extension; define each namespace separately | 
| warning: attributes on | 
 | declaration are a C++17 extension | 
| warning: capture of '*this' by copy is a C++17 extension | 
| warning: static_assert with no message is a C++17 extension | 
| warning: template template parameter using 'typename' is a C++17 extension | 
| warning: default scope specifier for attributes is a C++17 extension | 
| warning: pack expansion of using declaration is a C++17 extension | 
-Wc++1y-extensions¶
Synonym for -Wc++14-extensions.
-Wc++1z-compat¶
Synonym for -Wc++17-compat.
-Wc++1z-compat-mangling¶
Synonym for -Wc++17-compat-mangling.
-Wc++1z-extensions¶
Synonym for -Wc++17-extensions.
-Wc++2a-compat¶
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
| warning: consteval is incompatible with C++ standards before C++20 | 
| warning: aggregate initialization of type A with user-declared constructors is incompatible with C++2a | 
| warning: this expression will be parsed as explicit(bool) in C++2a | 
| warning: '<=>' is a single token in C++2a; add a space to avoid a change in behavior | 
| warning: type of UTF-8 string literal will change from array of const char to array of const char8_t in C++2a | 
| warning: 'A' is a keyword in C++2a | 
-Wc++2a-compat-pedantic¶
Synonym for -Wc++2a-compat.
-Wc++2a-extensions¶
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
| warning: use of function template name with no prior declaration in function call with explicit template arguments is a C++2a extension | 
| warning: default member initializer for bit-field is a C++2a extension | 
| warning: use of this statement in a constexpr | 
 | is a C++2a extension | 
| warning: function try block in constexpr | 
 | is a C++2a extension | 
| warning: decomposition declaration declared | 
 | is a C++2a extension | 
| warning: explicit capture of 'this' with a capture default of '=' is a C++2a extension | 
| warning: range-based for loop initialization statements are a C++2a extension | 
| warning: initialized lambda pack captures are a C++2a extension | 
| warning: inline nested namespace definition is a C++2a extension | 
| warning: explicit template parameter list for lambdas is a C++2a extension | 
| warning: invoking a pointer to a 'const &' member function on an rvalue is a C++2a extension | 
-Wc++98-c++11-c++14-c++17-compat¶
Diagnostic text:
| warning: use of function template name with no prior function template declaration in function call with explicit template arguments is incompatible with C++ standards before C++2a | 
| warning: default member initializer for bit-field is incompatible with C++ standards before C++2a | 
| warning: use of this statement in a constexpr | 
 | is incompatible with C++ standards before C++2a | 
| warning: function try block in constexpr | 
 | is incompatible with C++ standards before C++2a | 
| warning: virtual constexpr functions are incompatible with C++ standards before C++2a | 
| warning: decomposition declaration declared | 
 | is incompatible with C++ standards before C++2a | 
| warning: explicitly defaulting this | 
 | with a type different from the implicit type is incompatible with C++ standards before C++2a | 
| warning: explicit capture of 'this' with a capture default of '=' is incompatible with C++ standards before C++2a | 
| warning: range-based for loop initialization statements are incompatible with C++ standards before C++2a | 
| warning: initialized lambda capture packs are incompatible with C++ standards before C++2a | 
| warning: inline nested namespace definition is incompatible with C++ standards before C++2a | 
| warning: | 
 | of lambda is incompatible with C++ standards before C++2a | 
| warning: explicit template parameter list for lambdas is incompatible with C++ standards before C++2a | 
| warning: '<=>' operator is incompatible with C++ standards before C++2a | 
| warning: 'char8_t' type specifier is incompatible with C++ standards before C++20 | 
-Wc++98-c++11-c++14-c++17-compat-pedantic¶
Also controls -Wc++98-c++11-c++14-c++17-compat.
Diagnostic text:
| warning: invoking a pointer to a 'const &' member function on an rvalue is incompatible with C++ standards before C++2a | 
-Wc++98-c++11-c++14-compat¶
Diagnostic text:
| warning: class template argument deduction is incompatible with C++ standards before C++17 | 
 | 
| warning: constexpr if is incompatible with C++ standards before C++17 | 
| warning: constexpr on lambda expressions is incompatible with C++ standards before C++17 | 
| warning: decomposition declarations are incompatible with C++ standards before C++17 | 
| warning: pack fold expression is incompatible with C++ standards before C++17 | 
| warning: | 
 | initialization statements are incompatible with C++ standards before C++17 | 
| warning: inline variables are incompatible with C++ standards before C++17 | 
| warning: nested namespace definition is incompatible with C++ standards before C++17 | 
| warning: by value capture of '*this' is incompatible with C++ standards before C++17 | 
| warning: static_assert with no message is incompatible with C++ standards before C++17 | 
| warning: non-type template parameters declared with A are incompatible with C++ standards before C++17 | 
| warning: template template parameter using 'typename' is incompatible with C++ standards before C++17 | 
| warning: unicode literals are incompatible with C++ standards before C++17 | 
| warning: default scope specifier for attributes is incompatible with C++ standards before C++17 | 
| warning: use of multiple declarators in a single using declaration is incompatible with C++ standards before C++17 | 
| warning: pack expansion using declaration is incompatible with C++ standards before C++17 | 
| warning: 'begin' and 'end' returning different types (A and B) is incompatible with C++ standards before C++17 | 
-Wc++98-c++11-c++14-compat-pedantic¶
Also controls -Wc++98-c++11-c++14-compat.
Diagnostic text:
| warning: attributes on | 
 | declaration are incompatible with C++ standards before C++17 | 
| warning: hexadecimal floating literals are incompatible with C++ standards before C++17 | 
-Wc++98-c++11-compat¶
Diagnostic text:
| warning: use of this statement in a constexpr | 
 | is incompatible with C++ standards before C++14 | 
| warning: multiple return statements in constexpr function is incompatible with C++ standards before C++14 | 
| warning: constexpr function with no return statements is incompatible with C++ standards before C++14 | 
| warning: variable declaration in a constexpr | 
 | is incompatible with C++ standards before C++14 | 
| warning: type definition in a constexpr | 
 | is incompatible with C++ standards before C++14 | 
| warning: 'decltype(auto)' type specifier is incompatible with C++ standards before C++14 | 
| warning: return type deduction is incompatible with C++ standards before C++14 | 
| warning: digit separators are incompatible with C++ standards before C++14 | 
| warning: generic lambdas are incompatible with C++11 | 
| warning: initialized lambda captures are incompatible with C++ standards before C++14 | 
| warning: variable templates are incompatible with C++ standards before C++14 | 
-Wc++98-c++11-compat-binary-literal¶
Diagnostic text:
| warning: binary integer literals are incompatible with C++ standards before C++14 | 
-Wc++98-compat¶
Also controls -Wc++98-c++11-c++14-c++17-compat, -Wc++98-c++11-c++14-compat, -Wc++98-c++11-compat, -Wc++98-compat-local-type-template-args, -Wc++98-compat-unnamed-type-template-args.
Diagnostic text:
| warning: alias declarations are incompatible with C++98 | 
| warning: 'alignas' is incompatible with C++98 | 
| warning: alignof expressions are incompatible with C++98 | 
| warning: C++11 attribute syntax is incompatible with C++98 | 
| warning: 'auto' type specifier is incompatible with C++98 | 
| warning: 'constexpr' specifier is incompatible with C++98 | 
| warning: constructor call from initializer list is incompatible with C++98 | 
| warning: 'decltype' type specifier is incompatible with C++98 | 
| warning: | 
 | function definitions are incompatible with C++98 | 
| warning: delegating constructors are incompatible with C++98 | 
| warning: scalar initialized from empty initializer list is incompatible with C++98 | 
| warning: enumeration types with a fixed underlying type are incompatible with C++98 | 
| warning: befriending enumeration type A is incompatible with C++98 | 
| warning: enumeration type in nested name specifier is incompatible with C++98 | 
| warning: explicit conversion functions are incompatible with C++98 | 
| warning: range-based for loop is incompatible with C++98 | 
| warning: friend declaration naming a member of the declaring class is incompatible with C++98 | 
| warning: generalized initializer lists are incompatible with C++98 | 
| warning: jump from this goto statement to its label is incompatible with C++98 | 
| warning: jump from this | 
 | goto statement to one of its possible targets is incompatible with C++98 | 
| warning: initialization of initializer_list object is incompatible with C++98 | 
| warning: inline namespaces are incompatible with C++98 | 
| warning: lambda expressions are incompatible with C++98 | 
| warning: '<::' is treated as digraph '<:' (aka '[') followed by ':' in C++98 | 
| warning: literal operators are incompatible with C++98 | 
| warning: universal character name referring to a control character is incompatible with C++98 | 
| warning: specifying character 'A' with a universal character name is incompatible with C++98 | 
| warning: noexcept specifications are incompatible with C++98 | 
| warning: noexcept expressions are incompatible with C++98 | 
| warning: use of non-static data member A in an unevaluated context is incompatible with C++98 | 
| warning: non-class friend type A is incompatible with C++98 | 
| warning: in-class initialization of non-static data members is incompatible with C++98 | 
| warning: | 
 | member B with a non-trivial | 
 | is incompatible with C++98 | 
| warning: 'nullptr' is incompatible with C++98 | 
| warning: 'A' keyword is incompatible with C++98 | 
| warning: passing object of trivial but non-POD type A through variadic | 
 | is incompatible with C++98 | 
| warning: raw string literals are incompatible with C++98 | 
| warning: reference qualifiers on functions are incompatible with C++98 | 
| warning: reference initialized from initializer list is incompatible with C++98 | 
| warning: rvalue references are incompatible with C++98 | 
| warning: scoped enumerations are incompatible with C++98 | 
| warning: substitution failure due to access control is incompatible with C++98 | 
| warning: static_assert declarations are incompatible with C++98 | 
| warning: static data member A in union is incompatible with C++98 | 
| warning: jump from switch statement to this case label is incompatible with C++98 | 
| warning: redundant parentheses surrounding address non-type template argument are incompatible with C++98 | 
| warning: use of null pointer as non-type template argument is incompatible with C++98 | 
| warning: non-type template argument referring to | 
 | B with internal linkage is incompatible with C++98 | 
| warning: use of 'template' keyword outside of a template is incompatible with C++98 | 
| warning: default template arguments for a function template are incompatible with C++98 | 
| warning: trailing return types are incompatible with C++98 | 
| warning: consecutive right angle brackets are incompatible with C++98 (use '> >') | 
| warning: use of 'typename' outside of a template is incompatible with C++98 | 
| warning: befriending B without ' | 
 | ' keyword is incompatible with C++98 | 
| warning: using this character in an identifier is incompatible with C++98 | 
| warning: unicode literals are incompatible with C++98 | 
| warning: 'A' type specifier is incompatible with C++98 | 
| warning: inheriting constructors are incompatible with C++98 | 
| warning: variadic templates are incompatible with C++98 | 
-Wc++98-compat-bind-to-temporary-copy¶
Diagnostic text:
| warning: | 
 | of type C when binding a reference to a temporary would | 
 | in C++98 | 
-Wc++98-compat-extra-semi¶
Diagnostic text:
| warning: extra ';' outside of a function is incompatible with C++98 | 
-Wc++98-compat-local-type-template-args¶
Diagnostic text:
| warning: local type A as template argument is incompatible with C++98 | 
-Wc++98-compat-pedantic¶
Also controls -Wc++98-c++11-c++14-c++17-compat-pedantic, -Wc++98-c++11-c++14-compat-pedantic, -Wc++98-c++11-compat-pedantic, -Wc++98-compat, -Wc++98-compat-bind-to-temporary-copy, -Wc++98-compat-extra-semi.
Diagnostic text:
| warning: implicit conversion from array size expression of type A to | 
 | type C is incompatible with C++98 | 
| warning: cast between pointer-to-function and pointer-to-object is incompatible with C++98 | 
| warning: empty macro arguments are incompatible with C++98 | 
| warning: commas at the end of enumerator lists are incompatible with C++98 | 
| warning: extern templates are incompatible with C++98 | 
| warning: 'long long' is incompatible with C++98 | 
| warning: C++98 requires newline at end of file | 
| warning: #line number greater than 32767 is incompatible with C++98 | 
| warning: variadic macros are incompatible with C++98 | 
-Wc++98-compat-unnamed-type-template-args¶
Diagnostic text:
| warning: unnamed type as template argument is incompatible with C++98 | 
-Wc11-extensions¶
Diagnostic text:
| warning: anonymous unions are a C11 extension | 
| warning: A is a C11-specific feature | 
| warning: anonymous structs are a C11 extension | 
| warning: generic selections are a C11-specific feature | 
| warning: _Noreturn functions are a C11-specific feature | 
| warning: _Static_assert is a C11-specific feature | 
-Wc99-compat¶
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
| warning: | 
 | is incompatible with C99 | 
| warning: unicode literals are incompatible with C99 | 
| warning: integer literal is too large to be represented in type 'long', interpreting as 'unsigned long' per C89; this literal will | 
 | in C99 onwards | 
-Wc99-extensions¶
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
| warning: initializer for aggregate is not a compile-time constant | 
| warning: | 
 | array size | 
 | is a C99 feature | 
| warning: compound literals are a C99-specific feature | 
| warning: flexible array members are a C99 feature | 
| warning: variable declaration in for loop is a C99-specific feature | 
| warning: ISO C99 requires whitespace after the macro name | 
| warning: designated initializers are a C99 feature | 
| warning: empty macro arguments are a C99 feature | 
| warning: commas at the end of enumerator lists are a C99-specific feature | 
| warning: hexadecimal floating constants are a C99 feature | 
-Wcall-to-pure-virtual-from-ctor-dtor¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: call to pure virtual member function A has undefined behavior; overrides of A in subclasses are not available in the | 
 | of C | 
-Wcast-calling-convention¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: cast between incompatible calling conventions 'A' and 'B'; calls through this pointer may abort at runtime | 
-Wcast-of-sel-type¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: cast of type A to B is deprecated; use sel_getName instead | 
-Wcast-qual¶
Diagnostic text:
| warning: cast from A to B drops | 
 | 
| warning: cast from A to B must have all intermediate pointers const qualified to be safe | 
-Wchar-align¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wchar-subscripts¶
Diagnostic text:
| warning: array section | 
 | is of type 'char' | 
| warning: array subscript is of type 'char' | 
-Wclang-cl-pch¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: support for '/Yc' with more than one source file not implemented yet; flag ignored | 
| warning: support for '/Yc' and '/Yu' with different filenames not implemented yet; flags ignored | 
| warning: support for 'A' without a corresponding /FI flag not implemented yet; flag 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-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 | 
 | 
 | 
-Wcomment¶
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
| warning: escaped newline between */ characters at block comment end | 
| warning: // comments are not allowed in this language | 
| warning: multi-line // comment | 
| warning: '/*' within block comment | 
-Wcomments¶
Synonym for -Wcomment.
-Wcompare-distinct-pointer-types¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: comparison of distinct pointer types | 
-Wcomplex-component-init¶
Diagnostic text:
| warning: complex initialization specifying real and imaginary components is an extension | 
-Wconcepts-ts-compat¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: ISO C++2a does not permit the 'bool' keyword after 'concept' | 
-Wconditional-type-mismatch¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: pointer/integer type mismatch in conditional expression | 
-Wconditional-uninitialized¶
Diagnostic text:
| warning: variable A may be uninitialized when | 
 | 
-Wconfig-macros¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: | 
 | of configuration macro 'B' has no effect on the import of 'C'; pass ' | 
 | ' on the command line to configure the module | 
-Wconstant-conversion¶
This diagnostic is enabled by default.
Also controls -Wbitfield-constant-conversion, -Wobjc-bool-constant-conversion.
Diagnostic text:
| warning: implicit conversion from C to D changes value from A to B | 
-Wconstant-logical-operand¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: use of logical 'A' with constant operand | 
-Wconstexpr-not-const¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: 'constexpr' non-static member function will not be implicitly 'const' in C++14; add 'const' to avoid a change in behavior | 
-Wconsumed¶
Diagnostic text:
| warning: consumed analysis attribute is attached to member of class 'A' which isn't marked as consumable | 
| warning: state of variable 'A' must match at the entry and exit of loop | 
| warning: parameter 'A' not in expected state when the function returns: expected 'B', observed 'C' | 
| warning: argument not in expected state; expected 'A', observed 'B' | 
| warning: return state set for an unconsumable type 'A' | 
| warning: return value not in expected state; expected 'A', observed 'B' | 
| warning: invalid invocation of method 'A' on object 'B' while it is in the 'C' state | 
| warning: invalid invocation of method 'A' on a temporary object while it is in the 'B' state | 
-Wconversion¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wbitfield-enum-conversion, -Wbool-conversion, -Wconstant-conversion, -Wenum-conversion, -Wfloat-conversion, -Wimplicit-float-conversion, -Wimplicit-int-conversion, -Wint-conversion, -Wliteral-conversion, -Wnon-literal-null-conversion, -Wnull-conversion, -Wobjc-literal-conversion, -Wshorten-64-to-32, -Wsign-conversion, -Wstring-conversion.
Diagnostic text:
| warning: implicit conversion discards imaginary component: A to B | 
| warning: implicit conversion turns vector to scalar: A to B | 
| warning: passing non-generic address space pointer to A may cause dynamic conversion affecting performance | 
| warning: non-type template argument with value 'A' converted to 'B' for unsigned template parameter of type C | 
| warning: non-type template argument value 'A' truncated to 'B' for template parameter of type C | 
-Wconversion-null¶
Synonym for -Wnull-conversion.
-Wcoroutine¶
Synonym for -Wcoroutine-missing-unhandled-exception.
-Wcoroutine-missing-unhandled-exception¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: A is required to declare the member 'unhandled_exception()' when exceptions are enabled | 
-Wcovered-switch-default¶
Diagnostic text:
| warning: default label in switch which covers all enumeration values | 
-Wcpp¶
Synonym for -W#warnings.
-Wcstring-format-directive¶
Diagnostic text:
| warning: using A directive in | 
 | which is being passed as a formatting argument to the formatting | 
 | 
-Wctad-maybe-unsupported¶
Diagnostic text:
| warning: A may not intend to support class template argument deduction | 
-Wctor-dtor-privacy¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wctu¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: imported AST from 'A' had been generated for a different target, current: B, imported: C | 
-Wcuda-compat¶
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
| warning: A attribute parameter B is negative and will be ignored | 
| warning: nvcc does not allow '__A__' to appear after '()' in lambdas | 
| warning: ignored 'inline' attribute on kernel function A | 
| warning: kernel function A is a member function; this may not be accepted by nvcc | 
| warning: argument to '#pragma unroll' should not be in parentheses in CUDA C/C++ | 
-Wcustom-atomic-properties¶
Diagnostic text:
| warning: atomic by default property A has a user defined | 
 | (property should be marked 'atomic' if this is intended) | 
-Wdangling¶
This diagnostic is enabled by default.
Also controls -Wdangling-field, -Wdangling-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-initializer-list¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: array backing | 
 | will be destroyed at the end of the full-expression | 
-Wdarwin-sdk-settings¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: SDK settings were ignored as 'SDKSettings.json' could not be parsed | 
-Wdealloc-in-category¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: -dealloc is being overridden in a category | 
-Wdeclaration-after-statement¶
Diagnostic text:
| warning: ISO C90 forbids mixing declarations and code | 
-Wdefaulted-function-deleted¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: explicitly defaulted | 
 | is implicitly deleted | 
-Wdelegating-ctor-cycles¶
This diagnostic is an error by default, but the flag -Wno-delegating-ctor-cycles can be used to disable the error.
Diagnostic text:
| error: constructor for A creates a delegation cycle | 
-Wdelete-abstract-non-virtual-dtor¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: | 
 | called on B that is abstract but has non-virtual destructor | 
-Wdelete-incomplete¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: cannot delete expression with pointer-to-'void' type A | 
| warning: deleting pointer to incomplete type A may cause undefined behavior | 
-Wdelete-non-abstract-non-virtual-dtor¶
Diagnostic text:
| warning: | 
 | called on non-final B that has virtual functions but non-virtual destructor | 
-Wdelete-non-virtual-dtor¶
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wdelete-abstract-non-virtual-dtor, -Wdelete-non-abstract-non-virtual-dtor.
-Wdeprecated¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wdeprecated-attributes, -Wdeprecated-declarations, -Wdeprecated-dynamic-exception-spec, -Wdeprecated-increment-bool, -Wdeprecated-register, -Wdeprecated-this-capture, -Wdeprecated-writable-strings.
Diagnostic text:
| warning: -O4 is equivalent to -O3 | 
| warning: access declarations are deprecated; use using declarations instead | 
| warning: definition of implicit copy | 
 | for A is deprecated because it has a user-declared | 
 | 
| warning: out-of-line definition of constexpr static data member is redundant in C++17 and is deprecated | 
| warning: argument 'A' is deprecated, use 'B' instead | 
| warning: treating 'A' input as 'B' when in C++ mode, this behavior is deprecated | 
| warning: OpenCL version A does not support the option 'B' | 
| warning: Use of 'long' with '__vector' is deprecated | 
-Wdeprecated-attributes¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: specifying vector types with the 'mode' attribute is deprecated; use the 'vector_size' attribute instead | 
-Wdeprecated-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-implementations¶
Diagnostic text:
| warning: implementing deprecated | 
 | 
| warning: implementing unavailable method | 
-Wdeprecated-increment-bool¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: incrementing expression of type bool is deprecated and incompatible with C++17 | 
-Wdeprecated-objc-isa-usage¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: assignment to Objective-C's isa is deprecated in favor of object_setClass() | 
| warning: direct access to Objective-C's isa is deprecated in favor of object_getClass() | 
-Wdeprecated-objc-pointer-introspection¶
This diagnostic is enabled by default.
Also controls -Wdeprecated-objc-pointer-introspection-performSelector.
Diagnostic text:
| warning: bitmasking for introspection of Objective-C object pointers is strongly discouraged | 
-Wdeprecated-objc-pointer-introspection-performSelector¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: bitmasking for introspection of Objective-C object pointers is strongly discouraged | 
-Wdeprecated-register¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: 'register' storage class specifier is deprecated and incompatible with C++17 | 
-Wdeprecated-this-capture¶
Diagnostic text:
| warning: implicit capture of 'this' with a capture default of '=' is deprecated | 
-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: parameter 'A' is already documented | 
| warning: unrecognized parameter passing direction, valid directions are '[in]', '[out]' and '[in,out]' | 
| warning: ' | 
 | param' command used in a comment that is not attached to a function declaration | 
| warning: parameter 'A' not found in the function declaration | 
| warning: ' | 
 | B' command used in a comment that is attached to a | 
 | 
| warning: ' | 
 | B' command used in a comment that is not attached to a function or method declaration | 
| warning: template parameter 'A' is already documented | 
| warning: ' | 
 | tparam' command used in a comment that is not attached to a template declaration | 
| warning: template parameter 'A' not found in the template declaration | 
| warning: not a Doxygen trailing comment | 
| warning: ' | 
 | B' command does not terminate a verbatim text block | 
-Wdocumentation-deprecated-sync¶
Diagnostic text:
| warning: declaration is marked with '\deprecated' command but does not have a deprecation attribute | 
-Wdocumentation-html¶
Diagnostic text:
| warning: HTML end tag 'A' is forbidden | 
| warning: HTML end tag does not match any start tag | 
| warning: HTML tag 'A' requires an end tag | 
| warning: HTML start tag 'A' closed by 'B' | 
-Wdocumentation-pedantic¶
Also controls -Wdocumentation-unknown-command.
Diagnostic text:
| warning: whitespace is not allowed in parameter passing direction | 
-Wdocumentation-unknown-command¶
Diagnostic text:
| warning: unknown command tag name 'A'; did you mean 'B'? | 
| warning: unknown command tag name | 
-Wdouble-promotion¶
Diagnostic text:
| warning: implicit conversion increases floating-point precision: A to B | 
-Wduplicate-decl-specifier¶
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
| warning: duplicate 'A' declaration specifier | 
| warning: duplicate 'A' declaration specifier | 
| warning: multiple identical address spaces specified for type | 
| warning: duplicate 'A' declaration specifier | 
-Wduplicate-enum¶
Diagnostic text:
| warning: element A has been implicitly assigned B which another element has been assigned | 
-Wduplicate-method-match¶
Diagnostic text:
| warning: multiple declarations of method A found and ignored | 
-Wduplicate-protocol¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: duplicate protocol definition of A is ignored | 
-Wdynamic-class-memaccess¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: | 
 | this B call is a pointer to | 
 | dynamic class D; vtable pointer will be | 
 | 
-Wdynamic-exception-spec¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wdeprecated-dynamic-exception-spec.
Diagnostic text:
| error: ISO C++17 does not allow dynamic exception specifications | 
-Weffc++¶
Synonym for -Wnon-virtual-dtor.
-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 -Wenum-compare-switch.
Diagnostic text:
| warning: comparison of two values with different enumeration types | 
-Wenum-compare-switch¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: comparison of two values with different enumeration types in switch statement | 
-Wenum-conversion¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: implicit conversion from enumeration type A to different enumeration type B | 
-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 | 
-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-isel¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: -fexperimental-isel support for the 'A' architecture is incomplete | 
| warning: -fexperimental-isel support is incomplete for this architecture at the current optimization level | 
-Wexplicit-initialize-call¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: explicit call to +initialize results in duplicate call to +initialize | 
| warning: explicit call to [super initialize] should only be in implementation of +initialize | 
-Wexplicit-ownership-type¶
Diagnostic text:
| warning: method parameter of type A with no explicit ownership | 
-Wexport-unnamed¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: ISO C++20 does not permit | 
 | declaration to appear in an export block | 
| warning: ISO C++20 does not permit a declaration that does not introduce any names to be exported | 
-Wexport-using-directive¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: ISO C++20 does not permit using directive to be exported | 
-Wextern-c-compat¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: | 
 | 
 | has size 0 in C, | 
 | in C++ | 
-Wextern-initializer¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: 'extern' variable has an initializer | 
-Wextra¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wempty-init-stmt, -Wignored-qualifiers, -Winitializer-overrides, -Wmissing-field-initializers, -Wmissing-method-return-type, -Wnull-pointer-arithmetic, -Wsemicolon-before-method-body, -Wsign-compare, -Wunused-parameter.
Diagnostic text:
| warning: call to function without interrupt attribute could clobber interruptee's VFP registers | 
-Wextra-qualification¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: extra qualification on member A | 
-Wextra-semi¶
Also controls -Wc++11-extra-semi, -Wc++98-compat-extra-semi.
Diagnostic text:
| warning: extra ';' | 
 | 
| warning: extra ';' after member function definition | 
-Wextra-semi-stmt¶
Also controls -Wempty-init-stmt.
Diagnostic text:
| warning: empty expression statement has no effect; remove unnecessary ';' to silence this warning | 
-Wextra-tokens¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: extra tokens at end of #A directive | 
| warning: extra tokens at the end of '#pragma omp A' are ignored | 
-Wfixed-enum-extension¶
Diagnostic text:
| warning: enumeration types with a fixed underlying type are a Clang extension | 
-Wflag-enum¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: enumeration value A is out of range of flags in enumeration type B | 
-Wflexible-array-extensions¶
Diagnostic text:
| warning: A may not be used as an array element due to flexible array member | 
| warning: A may not be nested in a struct due to flexible array member | 
-Wfloat-conversion¶
Also controls -Wfloat-overflow-conversion, -Wfloat-zero-conversion.
Diagnostic text:
| warning: implicit conversion turns floating-point number into integer: A to B | 
-Wfloat-overflow-conversion¶
Diagnostic text:
| warning: implicit conversion from A to B changes value from C to D | 
| warning: implicit conversion of out of range value from A to B is undefined | 
-Wfloat-zero-conversion¶
Diagnostic text:
| warning: implicit conversion from A to B changes non-zero value from C to D | 
-Wfor-loop-analysis¶
Diagnostic text:
| warning: variable A is | 
 | both in the loop header and in the loop body | 
| warning: variable | 
 | used in loop condition not modified in loop body | 
-Wformat¶
This diagnostic is enabled by default.
Also controls -Wformat-extra-args, -Wformat-invalid-specifier, -Wformat-security, -Wformat-y2k, -Wformat-zero-length, -Wnonnull.
Diagnostic text:
| warning: using '%%P' format specifier without precision | 
| warning: | 
 | 'A' should not be used as format arguments; add an explicit cast to B instead | 
| warning: format specifies type A but the argument has | 
 | B | 
| warning: using 'A' format specifier annotation outside of os_log()/os_trace() | 
| warning: invalid position specified for | 
 | 
| warning: cannot mix positional and non-positional arguments in format string | 
| warning: length modifier 'A' results in undefined behavior or no effect with 'B' conversion specifier | 
| warning: format string should not be a wide string | 
| warning: position arguments in format strings start counting at 1 (not 0) | 
| warning: format string missing | 
| warning: object format flags cannot be used with 'A' conversion specifier | 
| warning: ' | 
 | ' specified field | 
 | is missing a matching 'int' argument | 
| warning: field | 
 | should have type B, but argument has type C | 
| warning: missing object format flag | 
| warning: format string contains '\0' within the string body | 
| warning: format string is not null-terminated | 
| warning: flag 'A' is ignored when flag 'B' is present | 
| warning: incomplete format specifier | 
| warning: more '%%' conversions than data arguments | 
| warning: 'A' is not a valid object format flag | 
| warning: flag 'A' results in undefined behavior with 'B' conversion specifier | 
| warning: | 
 | used with 'B' conversion specifier, resulting in undefined behavior | 
| warning: data argument position 'A' exceeds the number of data arguments (B) | 
| warning: zero field width in scanf format string is unused | 
| warning: no closing ']' for '%%[' in scanf format string | 
-Wformat-extra-args¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: data argument not used by format string | 
-Wformat-invalid-specifier¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: invalid conversion specifier 'A' | 
-Wformat-non-iso¶
Diagnostic text:
| warning: 'A' | 
 | is not supported by ISO C | 
| warning: using length modifier 'A' with conversion specifier 'B' is not supported by ISO C | 
| warning: positional arguments are not supported by ISO C | 
-Wformat-pedantic¶
Diagnostic text:
| warning: | 
 | 'A' should not be used as format arguments; add an explicit cast to B instead | 
| warning: format specifies type A but the argument has | 
 | B | 
-Wformat-security¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: format string is not a string literal (potentially insecure) | 
-Wformat-y2k¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wformat-zero-length¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: format string is empty | 
-Wformat=2¶
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wformat-nonliteral, -Wformat-security, -Wformat-y2k.
-Wfortify-source¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: 'A' will always overflow; destination buffer has size B, but size argument is C | 
| warning: 'A' size argument is too large; destination buffer has size B, but size argument is C | 
-Wframe-larger-than=¶
This diagnostic is enabled by default.
Diagnostic text:
The text of this diagnostic is not controlled by Clang.
| warning: stack frame size of A bytes in B | 
-Wframework-include-private-from-public¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: public framework header includes private framework header 'A' | 
-Wfunction-def-in-objc-container¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: function definition inside an Objective-C container is deprecated | 
-Wfunction-multiversion¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: body of cpu_dispatch function will be ignored | 
| warning: CPU list contains duplicate entries; attribute ignored | 
-Wfuture-compat¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wgcc-compat¶
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
| warning: 'diagnose_if' is a clang extension | 
| warning: 'enable_if' is a clang extension | 
| warning: __final is a GNU extension, consider using C++11 final | 
| warning: GCC does not allow A attribute in this position on a function definition | 
| warning: 'break' is bound to loop, GCC binds it to switch | 
| warning: GCC does not allow the 'cleanup' attribute argument to be anything other than a simple identifier | 
| warning: GCC does not allow an attribute in this position on a function declaration | 
| warning: GCC does not allow the A attribute to be written on a type | 
| warning: GCC does not allow variable declarations in for loop initializers before C99 | 
| warning: 'A' is bound to current loop, GCC binds it to the enclosing loop | 
-Wglobal-constructors¶
Diagnostic text:
| warning: declaration requires a global constructor | 
| warning: declaration requires a global destructor | 
-Wgnu¶
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wgnu-alignof-expression, -Wgnu-anonymous-struct, -Wgnu-auto-type, -Wgnu-binary-literal, -Wgnu-case-range, -Wgnu-complex-integer, -Wgnu-compound-literal-initializer, -Wgnu-conditional-omitted-operand, -Wgnu-designator, -Wgnu-empty-initializer, -Wgnu-empty-struct, -Wgnu-flexible-array-initializer, -Wgnu-flexible-array-union-member, -Wgnu-folding-constant, -Wgnu-imaginary-constant, -Wgnu-include-next, -Wgnu-label-as-value, -Wgnu-redeclared-enum, -Wgnu-statement-expression, -Wgnu-static-float-init, -Wgnu-string-literal-operator-template, -Wgnu-union-cast, -Wgnu-variable-sized-type-not-at-end, -Wgnu-zero-line-directive, -Wgnu-zero-variadic-macro-arguments, -Wredeclared-class-member, -Wvla-extension, -Wzero-length-array.
-Wgnu-alignof-expression¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: A applied to an expression is a GNU extension | 
-Wgnu-array-member-paren-init¶
This diagnostic is an error by default, but the flag -Wno-gnu-array-member-paren-init can be used to disable the error.
Diagnostic text:
| error: parenthesized initialization of a member array is a GNU extension | 
-Wgnu-compound-literal-initializer¶
Diagnostic text:
| warning: initialization of an array from a compound literal is a GNU extension | 
-Wgnu-conditional-omitted-operand¶
Diagnostic text:
| warning: use of GNU ?: conditional expression extension, omitting middle operand | 
-Wgnu-designator¶
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
| warning: use of GNU array range extension | 
| warning: use of GNU 'missing =' extension in designator | 
| warning: use of GNU old-style field designator extension | 
-Wgnu-empty-struct¶
Diagnostic text:
| warning: empty | 
 | is a GNU extension | 
| warning: flexible array member A in otherwise empty | 
 | is a GNU extension | 
| warning: | 
 | without named members is a GNU extension | 
-Wgnu-flexible-array-initializer¶
Diagnostic text:
| warning: flexible array initialization is a GNU extension | 
-Wgnu-flexible-array-union-member¶
Diagnostic text:
| warning: flexible array member A in a union is a GNU extension | 
-Wgnu-folding-constant¶
Diagnostic text:
| warning: expression is not an | 
 | constant expression; folding it to a constant is a GNU extension | 
| warning: in-class initializer for static data member is not a constant expression; folding it to a constant is a GNU extension | 
| warning: variable length array folded to constant array as an extension | 
-Wgnu-label-as-value¶
Diagnostic text:
| warning: use of GNU address-of-label extension | 
| warning: use of GNU indirect-goto extension | 
-Wgnu-redeclared-enum¶
Diagnostic text:
| warning: redeclaration of already-defined enum A is a GNU extension | 
-Wgnu-static-float-init¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: in-class initializer for static data member of type A is a GNU extension | 
-Wgnu-string-literal-operator-template¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: string literal operator templates are a GNU extension | 
-Wgnu-variable-sized-type-not-at-end¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: field A with variable sized type B not at the end of a struct or class is a GNU extension | 
-Wgnu-zero-line-directive¶
Diagnostic text:
| warning: #line directive with zero argument is a GNU extension | 
-Wgnu-zero-variadic-macro-arguments¶
Diagnostic text:
| warning: must specify at least one argument for '...' parameter of variadic macro | 
| warning: token pasting of ',' and __VA_ARGS__ is a GNU extension | 
-Wheader-guard¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: A is used as a header guard here, followed by #define of a different macro | 
-Widiomatic-parentheses¶
Diagnostic text:
| warning: using the result of an assignment as a condition without parentheses | 
-Wignored-attributes¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: 'trivial_abi' cannot be applied to A | 
| warning: | 
 | will always resolve to A even if weak definition of B is overridden | 
| warning: | 
 | will not be in section 'A' but in the same section as the | 
 | 
| warning: 'abi_tag' attribute on | 
 | namespace ignored | 
| warning: attribute A after definition is ignored | 
| warning: 'dllexport' attribute ignored on explicit instantiation definition | 
| warning: A attribute can only be applied to instance variables or properties | 
| warning: A attribute ignored | 
| warning: A attribute ignored for field of type B | 
| warning: A attribute ignored on inline function | 
| warning: 'A' attribute cannot be specified on a definition | 
| warning: attribute A ignored, because it is not attached to a declaration | 
| warning: 'nonnull' attribute applied to function with no pointer arguments | 
| warning: 'nonnull' attribute when used on parameters takes no arguments | 
| warning: A attribute ignored when parsing type | 
| warning: A attribute only applies to a pointer or reference (B is invalid) | 
| warning: A attribute only applies to | 
 | pointer arguments | 
| warning: attribute declaration must precede definition | 
| warning: A attribute only applies to return values that are pointers | 
| warning: A attribute only applies to return values that are pointers or references | 
| warning: 'sentinel' attribute requires named arguments | 
| warning: 'sentinel' attribute only supported for variadic | 
 | 
| warning: A attribute argument not supported: B | 
| warning: unknown visibility A | 
| warning: attribute A cannot be applied to | 
 | without return value | 
| warning: __weak attribute cannot be specified on a field declaration | 
| warning: __weak attribute cannot be specified on an automatic variable when ARC is not enabled | 
| warning: A attribute only applies to | 
 | 
| warning: A attribute only applies to B | 
| warning: attribute A ignored, because it cannot be applied to omitted return type | 
| warning: A calling convention is not supported | 
 | 
| warning: attribute A ignored, because it cannot be applied to a type | 
| warning: ignoring __declspec(allocator) because the function return type A is not a pointer or reference type | 
| warning: attribute A is ignored, place it after " | 
 | " to apply attribute to type declaration | 
| warning: 'deprecated' attribute on anonymous namespace ignored | 
| warning: A redeclared inline; B attribute ignored | 
| warning: attribute A is already applied with different parameters | 
| warning: attribute A is already applied | 
| warning: Objective-C GC does not allow weak variables on the stack | 
| warning: 'gnu_inline' attribute requires function to be marked 'inline', attribute ignored | 
| warning: inheritance model ignored on | 
 | 
| warning: 'objc_externally_retained' can only be applied to local variables | 
 | 
| warning: '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: 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 is deprecated and ignored in OpenCL version B | 
| warning: repeated RISC-V 'interrupt' attribute | 
| warning: | 
 | of field B (C bits) does not match the | 
 | of the first field in transparent union; transparent_union attribute ignored | 
| warning: first field of a transparent union cannot have | 
 | type B; transparent_union attribute ignored | 
| warning: transparent_union attribute can only be applied to a union definition; attribute ignored | 
| warning: transparent union definition must contain at least one field; transparent_union attribute ignored | 
| warning: 'A' only applies to | 
 | types; type here is C | 
| warning: __declspec attribute A is not supported | 
| warning: | 
 | 
 | 'C' in the 'target' attribute string; 'target' attribute ignored | 
| warning: '__clang__' is a predefined macro name, not an attribute scope specifier; did you mean '_Clang' instead? | 
-Wignored-optimization-argument¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: optimization flag 'A' is not supported for target 'B' | 
| warning: optimization flag 'A' is not supported | 
-Wignored-pragma-intrinsic¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: A is not a recognized builtin | 
 | 
-Wignored-pragma-optimize¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: '#pragma optimize' is not supported | 
-Wignored-pragmas¶
This diagnostic is enabled by default.
Also controls -Wignored-pragma-intrinsic, -Wignored-pragma-optimize.
Diagnostic text:
| warning: expected '=' following '#pragma | 
 | ' - ignored | 
| warning: invalid alignment option in '#pragma | 
 | ' - ignored | 
| warning: OpenCL extension end directive mismatches begin directive - ignoring | 
| warning: '#pragma comment A' ignored | 
| warning: missing argument to debug command 'A' | 
| warning: unexpected debug command 'A' | 
| warning: unknown module 'A' | 
| warning: expected action or ')' in '#pragma A' - ignored | 
| warning: missing ':' after A - ignoring | 
| warning: missing ':' or ')' after A - ignoring | 
| warning: expected ',' in '#pragma A' | 
| warning: expected identifier in '#pragma A' - ignored | 
| warning: expected 'compiler', 'lib', 'user', or a string literal for the section name in '#pragma A' - ignored | 
| warning: expected integer between A and B inclusive in '#pragma C' - ignored | 
| warning: missing '(' after '#pragma A' - ignoring | 
| warning: expected non-wide string literal in '#pragma A' | 
| warning: expected | 
 | - ignoring | 
| warning: expected ')' or ',' in '#pragma A' | 
| warning: missing ')' after '#pragma A' - ignoring | 
| warning: expected a stack label or a string literal for the section name in '#pragma A' - ignored | 
| warning: expected a string literal for the section name in '#pragma A' - ignored | 
| warning: expected push, pop or a string literal for the section name in '#pragma A' - ignored | 
| warning: expected string literal in '#pragma A' - ignoring | 
| warning: extra tokens at end of '#pragma A' - ignored | 
| warning: incorrect use of #pragma clang force_cuda_host_device begin|end | 
| warning: '#pragma init_seg' is only supported when targeting a Microsoft environment | 
| warning: unknown action for '#pragma A' - ignored | 
| warning: unexpected argument 'A' to '#pragma B' | 
 | 
| warning: unknown action 'B' for '#pragma A' - ignored | 
| warning: missing argument to '#pragma A' | 
 | 
| warning: incorrect use of '#pragma ms_struct on|off' - ignored | 
| warning: #pragma options align=reset failed: A | 
| warning: expected 'align' following '#pragma options' - ignored | 
| warning: expected #pragma pack parameter to be '1', '2', '4', '8', or '16' | 
| warning: expected integer or identifier in '#pragma pack' - ignored | 
| warning: #pragma A(pop, ...) failed: B | 
| warning: pragma pop_macro could not pop 'A', no matching push_macro | 
| warning: unknown OpenCL extension A - ignoring | 
| warning: known but unsupported action 'B' for '#pragma A' - ignored | 
| warning: unsupported OpenCL extension A - ignoring | 
| warning: expected '#pragma unused' argument to be a variable name | 
| warning: only variables can be arguments to '#pragma unused' | 
| warning: undeclared variable A used as an argument for '#pragma unused' | 
-Wignored-qualifiers¶
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
| warning: ARC | 
 | lifetime qualifier on return type is ignored | 
| warning: 'A' qualifier on omitted return type B has no effect | 
| warning: 'A' type qualifier | 
 | on return type | 
 | no effect | 
| warning: 'A' qualifier on function type B has no effect | 
| warning: 'A' qualifier on reference type B has no effect | 
-Wimplicit¶
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wimplicit-function-declaration, -Wimplicit-int.
-Wimplicit-atomic-properties¶
Diagnostic text:
| warning: property is assumed atomic when auto-synthesizing the property | 
| warning: property is assumed atomic by default | 
-Wimplicit-conversion-floating-point-to-bool¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: implicit conversion turns floating-point number into bool: A to B | 
-Wimplicit-exception-spec-mismatch¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: function previously declared with an | 
 | exception specification redeclared with an | 
 | exception specification | 
-Wimplicit-fallthrough¶
Also controls -Wimplicit-fallthrough-per-function.
Diagnostic text:
| warning: fallthrough annotation in unreachable code | 
| warning: unannotated fall-through between switch labels | 
-Wimplicit-fallthrough-per-function¶
Diagnostic text:
| warning: unannotated fall-through between switch labels in partly-annotated function | 
-Wimplicit-fixed-point-conversion¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: implicit conversion from A cannot fit within the range of values for B | 
-Wimplicit-float-conversion¶
Diagnostic text:
| warning: implicit conversion loses floating-point precision: A to B | 
| warning: implicit conversion when assigning computation result loses floating-point precision: A to B | 
-Wimplicit-function-declaration¶
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
| warning: implicit declaration of function A is invalid in C99 | 
| warning: implicitly declaring library function 'A' with type B | 
| error: use of unknown builtin A | 
| warning: implicit declaration of function A | 
-Wimplicit-int¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: type specifier missing, defaults to 'int' | 
-Wimplicit-int-conversion¶
Diagnostic text:
| warning: higher order bits are zeroes after implicit conversion | 
| warning: implicit conversion loses integer precision: A to B | 
-Wimplicit-retain-self¶
Diagnostic text:
| warning: block implicitly retains 'self'; explicitly mention 'self' to indicate this is intended behavior | 
-Wimplicitly-unsigned-literal¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: integer literal is too large to be represented in a signed integer type, interpreting as unsigned | 
-Winaccessible-base¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: direct base A is inaccessible due to ambiguity:B | 
-Winclude-next-absolute-path¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: #include_next in file found relative to primary source file or found by absolute path; will search from start of include path | 
-Winclude-next-outside-header¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: #include_next in primary source file; will search from start of include path | 
-Wincompatible-exception-spec¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: exception specifications of | 
 | types differ | 
| warning: target exception specification is not superset of source | 
-Wincompatible-function-pointer-types¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: incompatible function pointer types | 
 | 
 | 
-Wincompatible-library-redeclaration¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: incompatible redeclaration of library function A | 
-Wincompatible-ms-struct¶
This diagnostic is an error by default, but the flag -Wno-incompatible-ms-struct can be used to disable the error.
Diagnostic text:
| error: ms_struct may not produce Microsoft-compatible layouts for classes with base classes or virtual functions | 
| error: ms_struct may not produce Microsoft-compatible layouts with fundamental data types with sizes that aren't a power of two | 
-Wincompatible-pointer-types¶
This diagnostic is enabled by default.
Also controls -Wincompatible-function-pointer-types, -Wincompatible-pointer-types-discards-qualifiers.
Diagnostic text:
| warning: incompatible pointer types | 
 | 
 | 
-Wincompatible-pointer-types-discards-qualifiers¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: | 
 | discards qualifiers in nested pointer types | 
| warning: | 
 | discards qualifiers | 
-Wincompatible-property-type¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: property type A is incompatible with type B inherited from C | 
-Wincompatible-sysroot¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: using sysroot for 'A' but targeting 'B' | 
-Wincomplete-framework-module-declaration¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: skipping 'A' because module declaration of 'B' lacks the 'framework' qualifier | 
-Wincomplete-implementation¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: method definition for A not found | 
-Wincomplete-module¶
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wincomplete-umbrella, -Wnon-modular-include-in-module.
-Wincomplete-setjmp-declaration¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: declaration of built-in function 'A' requires the declaration of the 'jmp_buf' type, commonly provided in the header <setjmp.h>. | 
-Wincomplete-umbrella¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: missing submodule 'A' | 
| warning: umbrella directory 'A' not found | 
| warning: umbrella header for module 'A' does not include header 'B' | 
-Winconsistent-dllimport¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: A redeclared without B attribute: previous B ignored | 
| warning: A redeclared without 'dllimport' attribute: 'dllexport' attribute added | 
-Winconsistent-missing-destructor-override¶
Diagnostic text:
| warning: A overrides a destructor but is not marked 'override' | 
-Winconsistent-missing-override¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: A overrides a member function but is not marked 'override' | 
-Wincrement-bool¶
This diagnostic is enabled by default.
Also controls -Wdeprecated-increment-bool.
Diagnostic text:
| error: ISO C++17 does not allow incrementing expression of type bool | 
-Winit-self¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Winitializer-overrides¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: initializer overrides prior initialization of this subobject | 
| warning: subobject initialization overrides initialization of other fields within its enclosing subobject | 
-Winjected-class-name¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: ISO C++ specifies that qualified reference to A is a constructor name rather than a | 
 | in this context, despite preceding | 
 | keyword | 
-Winline-asm¶
This diagnostic is enabled by default.
Diagnostic text:
The text of this diagnostic is not controlled by Clang.
-Winline-new-delete¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: replacement function A cannot be declared 'inline' | 
-Winstantiation-after-specialization¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: explicit instantiation of A that occurs after an explicit specialization has no effect | 
-Wint-conversion¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: incompatible integer to pointer conversion | 
 | 
 | 
| warning: incompatible pointer to integer conversion | 
 | 
 | 
-Wint-conversions¶
Synonym for -Wint-conversion.
-Wint-to-pointer-cast¶
This diagnostic is enabled by default.
Also controls -Wint-to-void-pointer-cast.
Diagnostic text:
| warning: cast to B from smaller integer type A | 
-Wint-to-void-pointer-cast¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: cast to B from smaller integer type A | 
-Winteger-overflow¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: overflow in expression; result is A with type B | 
-Winvalid-command-line-argument¶
This diagnostic is enabled by default.
Also controls -Wignored-optimization-argument.
Diagnostic text:
| warning: the given MCU supports A hardware multiply, but -mhwmult is set to B. | 
| warning: no MCU device specified, but '-mhwmult' is set to 'auto', assuming no hardware multiply. Use -mmcu to specify a MSP430 device, or -mhwmult to set hardware multiply type explicitly. | 
| warning: the given MCU does not support hardware multiply, but -mhwmult is set to A. | 
| warning: the object size sanitizer has no effect at -O0, but is explicitly enabled: A | 
| warning: optimization level 'A' is not supported; using 'BC' instead | 
-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: constexpr | 
 | never produces a constant expression | 
-Winvalid-iboutlet¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: | 
 | with A attribute must be an object type (invalid B) | 
| warning: IBOutletCollection properties should be copy/strong and not assign | 
-Winvalid-initializer-from-system-header¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: invalid constructor form class in system header, should not be explicit | 
-Winvalid-ios-deployment-target¶
This diagnostic is an error by default, but the flag -Wno-invalid-ios-deployment-target can be used to disable the error.
Diagnostic text:
| error: invalid iOS deployment version 'A', iOS 10 is the maximum deployment target for 32-bit targets | 
-Winvalid-noreturn¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: function declared 'noreturn' should not return | 
| warning: function A declared 'noreturn' should not return | 
-Winvalid-offsetof¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: offset of on non-POD type A | 
| warning: offset of on non-standard-layout type A | 
-Winvalid-or-nonexistent-directory¶
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
| warning: environment variable SCE_ORBIS_SDK_DIR is set, but points to invalid or nonexistent directory 'A' | 
| warning: unable to find A directory, expected to be in 'B' | 
-Winvalid-partial-specialization¶
This diagnostic is an error by default, but the flag -Wno-invalid-partial-specialization can be used to disable the error.
Diagnostic text:
| error: | 
 | template partial specialization is not more specialized than the primary template | 
-Winvalid-pch¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Winvalid-pp-token¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: empty character constant | 
| warning: missing terminating | 
 | character | 
-Winvalid-source-encoding¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: illegal character encoding in character literal | 
| warning: illegal character encoding in string literal | 
-Winvalid-token-paste¶
This diagnostic is an error by default, but the flag -Wno-invalid-token-paste can be used to disable the error.
Diagnostic text:
| error: pasting formed 'A', an invalid preprocessing token | 
-Wjump-seh-finally¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: jump out of __finally block has undefined behavior | 
-Wkeyword-compat¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: keyword 'A' will be made available as an identifier | 
 | 
-Wknr-promoted-parameter¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: promoted type of K&R function parameter is not compatible with parameter type declared in a previous prototype | 
-Wlarge-by-value-copy¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: A is a large (B bytes) pass-by-value argument; pass it by reference instead ? | 
| warning: return value of A is a large (B bytes) pass-by-value object; pass it by reference instead ? | 
-Wliteral-conversion¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: implicit conversion from A to B changes value from C to D | 
| warning: implicit conversion of out of range value from A to B is undefined | 
-Wliteral-range¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: magnitude of floating-point constant too large for type A; maximum is B | 
| warning: magnitude of floating-point constant too small for type A; minimum is B | 
-Wlocal-type-template-args¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wc++98-compat-local-type-template-args.
Diagnostic text:
| warning: template argument uses local type A | 
-Wlogical-not-parentheses¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: logical not is only applied to the left hand side of this | 
 | 
-Wlogical-op-parentheses¶
This diagnostic is enabled by default.
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 | 
-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 scalar initializer | 
-Wmax-unsigned-zero¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: taking the max of | 
 | is always equal to the other value | 
-Wmemset-transposed-args¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: | 
 | ; did you mean to transpose the last two arguments? | 
-Wmemsize-comparison¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: size argument in A call is a comparison | 
-Wmethod-signatures¶
Diagnostic text:
| warning: conflicting parameter types in implementation of A: B vs C | 
| warning: conflicting return type in implementation of A: B vs C | 
-Wmicrosoft¶
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Winconsistent-dllimport, -Wmicrosoft-anon-tag, -Wmicrosoft-cast, -Wmicrosoft-charize, -Wmicrosoft-comment-paste, -Wmicrosoft-const-init, -Wmicrosoft-cpp-macro, -Wmicrosoft-default-arg-redefinition, -Wmicrosoft-drectve-section, -Wmicrosoft-end-of-file, -Wmicrosoft-enum-forward-reference, -Wmicrosoft-enum-value, -Wmicrosoft-exception-spec, -Wmicrosoft-explicit-constructor-call, -Wmicrosoft-extra-qualification, -Wmicrosoft-fixed-enum, -Wmicrosoft-flexible-array, -Wmicrosoft-goto, -Wmicrosoft-include, -Wmicrosoft-mutable-reference, -Wmicrosoft-pure-definition, -Wmicrosoft-redeclare-static, -Wmicrosoft-sealed, -Wmicrosoft-template, -Wmicrosoft-union-member-reference, -Wmicrosoft-unqualified-friend, -Wmicrosoft-using-decl, -Wmicrosoft-void-pseudo-dtor.
-Wmicrosoft-anon-tag¶
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
| warning: types declared in an anonymous | 
 | are a Microsoft extension | 
| warning: anonymous | 
 | are a Microsoft extension | 
-Wmicrosoft-cast¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: static_cast between pointer-to-function and pointer-to-object is a Microsoft extension | 
| warning: implicit conversion between pointer-to-function and pointer-to-object is a Microsoft extension | 
-Wmicrosoft-comment-paste¶
Diagnostic text:
| warning: pasting two '/' tokens into a '//' comment is a Microsoft extension | 
-Wmicrosoft-const-init¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: default initialization of an object of const type A | 
 | is a Microsoft extension | 
-Wmicrosoft-default-arg-redefinition¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: redefinition of default argument | 
-Wmicrosoft-drectve-section¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: #pragma A(".drectve") has undefined behavior, use #pragma comment(linker, ...) instead | 
-Wmicrosoft-end-of-file¶
Diagnostic text:
| warning: treating Ctrl-Z as end-of-file is a Microsoft extension | 
-Wmicrosoft-enum-forward-reference¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: forward references to 'enum' types are a Microsoft extension | 
-Wmicrosoft-enum-value¶
Diagnostic text:
| warning: enumerator value is not representable in the underlying type A | 
-Wmicrosoft-exception-spec¶
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
| warning: exception specification of '...' is a Microsoft extension | 
| warning: | 
 | incomplete type B is not allowed in exception specification | 
| warning: exception specification in declaration does not match previous declaration | 
| warning: exception specification in explicit instantiation does not match instantiated one | 
| warning: A is missing exception specification 'B' | 
| warning: exception specification of overriding function is more lax than base version | 
-Wmicrosoft-exists¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: dependent | 
 | declarations are ignored | 
-Wmicrosoft-explicit-constructor-call¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: explicit constructor calls are a Microsoft extension | 
-Wmicrosoft-extra-qualification¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: extra qualification on member A | 
-Wmicrosoft-fixed-enum¶
Diagnostic text:
| warning: enumeration types with a fixed underlying type are a Microsoft extension | 
-Wmicrosoft-flexible-array¶
Diagnostic text:
| warning: flexible array member A in otherwise empty | 
 | is a Microsoft extension | 
| warning: flexible array member A in a union is a Microsoft extension | 
-Wmicrosoft-goto¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: jump from this goto statement to its label is a Microsoft extension | 
-Wmicrosoft-inaccessible-base¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: accessing inaccessible direct base A of B is a Microsoft extension | 
-Wmicrosoft-include¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: #include resolved using non-portable Microsoft search rules as: A | 
-Wmicrosoft-mutable-reference¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: 'mutable' on a reference type is a Microsoft extension | 
-Wmicrosoft-pure-definition¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: function definition with pure-specifier is a Microsoft extension | 
-Wmicrosoft-redeclare-static¶
Diagnostic text:
| warning: redeclaring non-static A as static is a Microsoft extension | 
-Wmicrosoft-sealed¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: 'sealed' keyword is a Microsoft extension | 
-Wmicrosoft-template¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: duplicate explicit instantiation of A ignored as a Microsoft extension | 
| warning: use of identifier A found via unqualified lookup into dependent bases of class templates is a Microsoft extension | 
| warning: using the undeclared type A as a default template argument is a Microsoft extension | 
| warning: non-type template argument containing a dereference operation is a Microsoft extension | 
| warning: | 
 | specialization of B not in | 
 | is a Microsoft extension | 
| warning: template argument for template type parameter must be a type; omitted 'typename' is a Microsoft extension | 
| warning: 'static' can only be specified inside the class definition | 
| warning: use of undeclared identifier A; unqualified lookup into dependent bases of class template B is a Microsoft extension | 
-Wmicrosoft-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 | 
-Wmismatched-new-delete¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: 'delete | 
 | ' applied to a pointer that was allocated with 'new | 
 | '; did you mean 'delete | 
 | '? | 
-Wmismatched-parameter-types¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: conflicting parameter types in implementation of A | 
-Wmismatched-return-types¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: conflicting return type in implementation of A | 
-Wmismatched-tags¶
Diagnostic text:
| warning: C defined as | 
 | 
 | here but previously declared as | 
 | 
 | ; this is valid, but may result in linker errors under the Microsoft C++ ABI | 
| warning: | 
 | 
 | C was previously declared as a | 
 | 
 | ; this is valid, but may result in linker errors under the Microsoft C++ ABI | 
-Wmissing-declarations¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: declaration does not declare anything | 
| warning: 'A' is not permitted on a declaration of a type | 
| warning: typedef requires a name | 
| warning: 'A' ignored on this declaration | 
-Wmissing-exception-spec¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: A is missing exception specification 'B' | 
-Wmissing-format-attribute¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wmissing-include-dirs¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wmissing-method-return-type¶
Diagnostic text:
| warning: method has no return type specified; defaults to 'id' | 
-Wmissing-noescape¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: parameter of overriding method should be annotated with __attribute__((noescape)) | 
-Wmissing-noreturn¶
Diagnostic text:
| warning: block could be declared with attribute 'noreturn' | 
| warning: | 
 | B could be declared with attribute 'noreturn' | 
-Wmissing-prototype-for-cc¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: function with no prototype cannot use the A calling convention | 
-Wmissing-selector-name¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: A used as the name of the previous parameter rather than as part of the selector | 
-Wmissing-sysroot¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: no such sysroot directory: 'A' | 
-Wmissing-variable-declarations¶
Diagnostic text:
| warning: no previous extern declaration for non-static variable A | 
-Rmodule-build¶
Diagnostic text:
| remark: building module 'A' as 'B' | 
| remark: finished building module 'A' | 
| remark: could not acquire lock file for module 'A': B | 
| remark: timed out waiting to acquire lock file for module 'A' | 
-Wmodule-conflict¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: module 'A' conflicts with already-imported module 'B': C | 
| warning: module file 'A' was validated as a system module and is now being imported as a non-system module; any difference in diagnostic options will be ignored | 
-Wmodule-file-config-mismatch¶
This diagnostic is an error by default, but the flag -Wno-module-file-config-mismatch can be used to disable the error.
Diagnostic text:
| error: module file A cannot be loaded due to a configuration mismatch with the current compilation | 
-Wmodule-file-extension¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: duplicate module file extension block name 'A' | 
-Wmodule-import-in-extern-c¶
This diagnostic is an error by default, but the flag -Wno-module-import-in-extern-c can be used to disable the error.
Diagnostic text:
| error: import of C++ module 'A' appears within extern "C" language linkage specification | 
-Wmodules-ambiguous-internal-linkage¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: ambiguous use of internal linkage declaration A defined in multiple modules | 
-Wmodules-import-nested-redundant¶
This diagnostic is an error by default, but the flag -Wno-modules-import-nested-redundant can be used to disable the error.
Diagnostic text:
| error: redundant #include of module 'A' appears within B | 
-Wmost¶
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wcast-of-sel-type, -Wchar-subscripts, -Wcomment, -Wdelete-non-virtual-dtor, -Wextern-c-compat, -Wfor-loop-analysis, -Wformat, -Wimplicit, -Winfinite-recursion, -Wmismatched-tags, -Wmissing-braces, -Wmove, -Wmultichar, -Wobjc-designated-initializers, -Wobjc-flexible-array, -Wobjc-missing-super-calls, -Woverloaded-virtual, -Wprivate-extern, -Wreorder, -Wreturn-type, -Wself-assign, -Wself-move, -Wsizeof-array-argument, -Wsizeof-array-decay, -Wstring-plus-int, -Wtrigraphs, -Wuninitialized, -Wunknown-pragmas, -Wunused, -Wuser-defined-warnings, -Wvolatile-register-var.
-Wmsvc-include¶
Synonym for -Wmicrosoft-include.
-Wmsvc-not-found¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: unable to find a Visual Studio installation; try running Clang from a developer command prompt | 
-Wmultichar¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: multi-character character constant | 
-Wmultiple-move-vbase¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: defaulted move assignment operator of A will move assign virtual base class B multiple times | 
-Wnarrowing¶
Synonym for -Wc++11-narrowing.
-Wnested-anon-types¶
Diagnostic text:
| warning: anonymous types declared in an anonymous | 
 | are an extension | 
-Wnested-externs¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wnew-returns-null¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: A should not return a null pointer unless it is declared 'throw()' | 
 | 
-Wnewline-eof¶
Diagnostic text:
| warning: no newline at end of file | 
| warning: no newline at end of file | 
-Wnoderef¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: dereferencing A; was declared with a 'noderef' type | 
| warning: dereferencing expression marked as 'noderef' | 
| warning: casting to dereferenceable pointer removes 'noderef' attribute | 
-Wnoexcept-type¶
Synonym for -Wc++17-compat-mangling.
-Wnon-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 | 
-Wnonnull¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: null passed to a callee that requires a non-null argument | 
| warning: null returned from | 
 | that requires a non-null return value | 
-Wnonportable-cfstrings¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wnonportable-include-path¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: non-portable path to file 'A'; specified path differs in case from file name on disk | 
-Wnonportable-system-include-path¶
Diagnostic text:
| warning: non-portable path to file 'A'; specified path differs in case from file name on disk | 
-Wnonportable-vector-initialization¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: vector initializers are not compatible with NEON intrinsics in big endian mode | 
-Wnontrivial-memaccess¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: | 
 | this B call is a pointer to record C that is not trivial to | 
 | 
-Wnsconsumed-mismatch¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: overriding method has mismatched ns_consumed attribute on its parameter | 
-Wnsreturns-mismatch¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: overriding method has mismatched ns_returns_ | 
 | attributes | 
-Wnull-arithmetic¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: use of NULL in arithmetic operation | 
| warning: comparison between NULL and non-pointer | 
 | 
-Wnull-character¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: null character(s) preserved in | 
 | literal | 
| warning: null character ignored | 
-Wnull-conversion¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: implicit conversion of | 
 | constant to B | 
-Wnull-dereference¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: binding dereferenced null pointer to reference has undefined behavior | 
| warning: indirection of non-volatile null pointer will be deleted, not trap | 
-Wnull-pointer-arithmetic¶
Diagnostic text:
| warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension | 
| warning: performing pointer arithmetic on a null pointer has undefined behavior | 
 | 
-Wnullability¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: conflicting nullability specifier on parameter types, A conflicts with existing specifier B | 
| warning: conflicting nullability specifier on return types, A conflicts with existing specifier B | 
| warning: nullability specifier A conflicts with existing specifier B | 
| warning: synthesized setter A for null_resettable property B does not handle nil | 
| warning: duplicate nullability specifier A | 
-Wnullability-completeness¶
This diagnostic is enabled by default.
Also controls -Wnullability-completeness-on-arrays.
Diagnostic text:
| warning: | 
 | is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) | 
-Wnullability-completeness-on-arrays¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: array parameter is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) | 
-Wnullability-declspec¶
This diagnostic is an error by default, but the flag -Wno-nullability-declspec can be used to disable the error.
Diagnostic text:
| error: nullability specifier A cannot be applied to non-pointer type B; did you mean to apply the specifier to the | 
 | ? | 
-Wnullability-extension¶
Diagnostic text:
| warning: type nullability specifier A is a Clang extension | 
-Wnullability-inferred-on-nested-type¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: inferring '_Nonnull' for pointer type within | 
 | is deprecated | 
-Wnullable-to-nonnull-conversion¶
Diagnostic text:
| warning: implicit conversion from nullable pointer A to non-nullable pointer type B | 
-Wobjc-autosynthesis-property-ivar-name-match¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: autosynthesized property A will use | 
 | instance variable C, not existing instance variable D | 
-Wobjc-bool-constant-conversion¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: implicit conversion from constant value A to BOOL; the only well defined values for BOOL are YES and NO | 
-Wobjc-boxing¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: string is ill-formed as UTF-8 and will become a null A when boxed | 
-Wobjc-circular-container¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: adding A to B might cause circular dependency in container | 
-Wobjc-cocoa-api¶
Synonym for -Wobjc-redundant-api-use.
-Wobjc-designated-initializers¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: designated initializer missing a 'super' call to a designated initializer of the super class | 
| warning: designated initializer invoked a non-designated initializer | 
| warning: designated initializer should only invoke a designated initializer on 'super' | 
| warning: method override for the designated initializer of the superclass A not found | 
| warning: convenience initializer missing a 'self' call to another initializer | 
| warning: convenience initializer should not invoke an initializer on 'super' | 
-Wobjc-flexible-array¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: field A can overwrite instance variable B with variable sized type C in superclass D | 
| warning: field A with variable sized type B is not visible to subclasses and can conflict with their instance variables | 
-Wobjc-forward-class-redefinition¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: redefinition of forward class A of a typedef name of an object type is ignored | 
-Wobjc-interface-ivars¶
Diagnostic text:
| warning: declaration of instance variables in the interface is deprecated | 
-Wobjc-literal-compare¶
This diagnostic is enabled by default.
Also controls -Wobjc-string-compare.
Diagnostic text:
| warning: direct comparison of | 
 | has undefined behavior | 
-Wobjc-literal-conversion¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: implicit boolean conversion of Objective-C object literal always evaluates to true | 
| warning: object of type A is not compatible with | 
 | C | 
-Wobjc-macro-redefinition¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: ignoring redefinition of Objective-C qualifier macro | 
-Wobjc-method-access¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: class method A not found (return type defaults to 'id') | 
| warning: class method A not found (return type defaults to 'id'); did you mean C? | 
| warning: instance method A not found (return type defaults to 'id') | 
| warning: instance method A not found (return type defaults to 'id'); did you mean C? | 
| warning: instance method A found instead of class method B | 
| warning: instance method A is being used on 'Class' which is not in the root class | 
-Wobjc-missing-property-synthesis¶
Diagnostic text:
| warning: auto property synthesis is synthesizing property not explicitly synthesized | 
-Wobjc-missing-super-calls¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: method possibly missing a [super A] call | 
-Wobjc-multiple-method-names¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: multiple methods named A found | 
-Wobjc-noncopy-retain-block-property¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: retain'ed block property does not copy the block - use copy attribute instead | 
-Wobjc-nonunified-exceptions¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: cannot catch an exception thrown with @throw in C++ in the non-unified exception model | 
-Wobjc-property-assign-on-object-type¶
Diagnostic text:
| warning: 'assign' property of object type may become a dangling reference; consider using 'unsafe_unretained' | 
-Wobjc-property-implementation¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: class property A requires method B to be defined - use @dynamic or provide a method implementation in this class implementation | 
| warning: class property A requires method B to be defined - use @dynamic or provide a method implementation in this category | 
| warning: property A requires method B to be defined - use @synthesize, @dynamic or provide a method implementation in this class implementation | 
| warning: property A requires method B to be defined - use @dynamic or provide a method implementation in this category | 
-Wobjc-property-implicit-mismatch¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: primary property declaration is implicitly strong while redeclaration in class extension is weak | 
-Wobjc-property-matches-cocoa-ownership-rule¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: property follows Cocoa naming convention for returning 'owned' objects | 
-Wobjc-property-no-attribute¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: default property attribute 'assign' not appropriate for object | 
| warning: no 'assign', 'retain', or 'copy' attribute is specified - 'assign' is assumed | 
-Wobjc-property-synthesis¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: auto property synthesis will not synthesize property A; it will be implemented by its superclass, use @dynamic to acknowledge intention | 
| warning: auto property synthesis will not synthesize property A because it is 'readwrite' but it will be synthesized 'readonly' via another property | 
| warning: auto property synthesis will not synthesize property A because it cannot share an ivar with another synthesized property | 
-Wobjc-protocol-method-implementation¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: category is implementing a method which will also be implemented by its primary class | 
-Wobjc-protocol-property-synthesis¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: auto property synthesis will not synthesize property A declared in protocol B | 
-Wobjc-protocol-qualifiers¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: parameterized class A already conforms to the protocols listed; did you forget a '*'? | 
-Wobjc-readonly-with-setter-property¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: setter cannot be specified for a readonly property | 
-Wobjc-redundant-api-use¶
Synonym for -Wobjc-redundant-literal-use.
-Wobjc-redundant-literal-use¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: using A with a literal is redundant | 
-Wobjc-root-class¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: class A defined without specifying a base class | 
-Wobjc-string-compare¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: direct comparison of a string literal has undefined behavior | 
-Wobjc-string-concatenation¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: concatenated NSString literal for an NSArray expression - possibly missing a comma | 
-Wobjc-unsafe-perform-selector¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: A is incompatible with selectors that return a | 
 | type | 
-Wodr¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: template parameter lists have a different number of parameters (A vs B) | 
| warning: template parameter has different kinds in different translation units | 
| warning: field A declared with incompatible types in different translation units (B vs. C) | 
| warning: external function A declared with incompatible types in different translation units (B vs. C) | 
| warning: instance variable A declared with incompatible types in different translation units (B vs. C) | 
| warning: non-type template parameter declared with incompatible types in different translation units (A vs. B) | 
| warning: | 
 | method B has a different number of parameters in different translation units (C vs. D) | 
| warning: | 
 | method B has a parameter with a different types in different translation units (C vs. D) | 
| warning: | 
 | method B has incompatible result types in different translation units (C vs. D) | 
| warning: | 
 | method B is variadic in one translation unit and not variadic in another | 
| warning: property A is implemented with | 
 | in one translation but | 
 | in another translation unit | 
| warning: property A declared with incompatible types in different translation units (B vs. C) | 
| warning: class A has incompatible superclasses | 
| warning: property A is synthesized to different ivars in different translation units (B vs. C) | 
| warning: parameter kind mismatch; parameter is | 
 | parameter pack | 
| warning: type A has incompatible definitions in different translation units | 
| warning: external variable A defined in multiple translation units | 
| warning: external variable A declared with incompatible types in different translation units (B vs. C) | 
-Wold-style-definition¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wopencl-unsupported-rgba¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: vector component name 'A' is an OpenCL version 2.2 feature | 
-Wopenmp-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: zero linear step (A | 
 | should probably be const) | 
| 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-target¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: The OpenMP offloading target 'A' is similar to target 'B' already specified - will be ignored. | 
| warning: No library 'A' found in the default clang lib directory or in LIBRARY_PATH. Expect degraded performance due to no inlining of runtime functions on target devices. | 
| warning: Non-trivial type A is mapped, only trivial types are guaranteed to be mapped correctly | 
| warning: declaration is not declared in any declare target region | 
-Woption-ignored¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: option '-ffine-grained-bitfield-accesses' cannot be enabled together with a sanitizer; flag ignored | 
| warning: The 'A' architecture does not support -moutline; flag ignored | 
| warning: option 'A' was ignored by the PS4 toolchain, using '-fPIC' | 
| warning: ignoring '-mlong-calls' option as it is not currently supported with | 
 | -mabicalls | 
| warning: ignoring 'A' option as it cannot be used with | 
 | -mabicalls and the N64 ABI | 
| warning: auto-vectorization requires HVX, use -mhvx to enable it | 
-Wordered-compare-function-pointers¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: ordered comparison of function pointers (A and B) | 
-Wout-of-line-declaration¶
This diagnostic is an error by default, but the flag -Wno-out-of-line-declaration can be used to disable the error.
Diagnostic text:
| error: out-of-line declaration of a member must be a definition | 
-Wout-of-scope-function¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: use of out-of-scope declaration of A | 
 | 
-Wover-aligned¶
Diagnostic text:
| warning: type A requires B bytes of alignment and the default allocator only guarantees C bytes | 
-Woverflow¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Woverlength-strings¶
Diagnostic text:
| warning: string literal of length A exceeds maximum length B that | 
 | compilers are required to support | 
-Woverloaded-shift-op-parentheses¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: overloaded operator | 
 | has higher precedence than comparison operator | 
-Woverride-init¶
Synonym for -Winitializer-overrides.
-Woverride-module¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: overriding the module target triple with A | 
-Woverriding-method-mismatch¶
Diagnostic text:
| warning: conflicting distributed object modifiers on parameter type in declaration of A | 
| warning: conflicting parameter types in declaration of A | 
| warning: conflicting distributed object modifiers on return type in declaration of A | 
| warning: conflicting return type in declaration of A | 
| warning: conflicting variadic declaration of method and its implementation | 
| warning: conflicting parameter types in declaration of A: B vs C | 
| warning: conflicting return type in declaration of A: B vs C | 
-Woverriding-t-option¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: overriding 'A' option with 'B' | 
-Wpadded¶
Diagnostic text:
| warning: padding | 
 | B with C | 
 | 
 | to align anonymous bit-field | 
| warning: padding | 
 | B with C | 
 | 
 | to align E | 
| warning: padding size of A with B | 
 | 
 | to alignment boundary | 
-Wparentheses¶
This diagnostic is enabled by default.
Also controls -Wbitwise-op-parentheses, -Wdangling-else, -Wlogical-not-parentheses, -Wlogical-op-parentheses, -Woverloaded-shift-op-parentheses, -Wparentheses-equality, -Wshift-op-parentheses.
Diagnostic text:
| warning: using the result of an assignment as a condition without parentheses | 
| warning: A has lower precedence than B; B will be evaluated first | 
| warning: operator '?:' has lower precedence than 'A'; 'A' will be evaluated first | 
-Wparentheses-equality¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: equality comparison with extraneous parentheses | 
-Wpartial-availability¶
Synonym for -Wunguarded-availability.
-Rpass-analysis¶
Diagnostic text:
The text of this diagnostic is not controlled by Clang.
| remark: A; allow reordering by specifying '#pragma clang loop vectorize(enable)' before the loop. If the arrays will always be independent specify '#pragma clang loop vectorize(assume_safety)' before the loop or provide the '__restrict__' qualifier with the independent array arguments. Erroneous results will occur if these options are incorrectly applied! | 
| remark: A; allow reordering by specifying '#pragma clang loop vectorize(enable)' before the loop or by providing the compiler option '-ffast-math'. | 
-Wpass-failed¶
This diagnostic is enabled by default.
Diagnostic text:
The text of this diagnostic is not controlled by Clang.
-Wpch-date-time¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: | 
 | uses __DATE__ or __TIME__ | 
-Wpedantic¶
Also controls -Wc++11-extra-semi, -Wc++11-long-long, -Wc++14-binary-literal, -Wc11-extensions, -Wcomplex-component-init, -Wdeclaration-after-statement, -Wdollar-in-identifier-extension, -Wembedded-directive, -Wempty-translation-unit, -Wfixed-enum-extension, -Wflexible-array-extensions, -Wfour-char-constants, -Wgnu-anonymous-struct, -Wgnu-auto-type, -Wgnu-binary-literal, -Wgnu-case-range, -Wgnu-complex-integer, -Wgnu-compound-literal-initializer, -Wgnu-conditional-omitted-operand, -Wgnu-empty-initializer, -Wgnu-empty-struct, -Wgnu-flexible-array-initializer, -Wgnu-flexible-array-union-member, -Wgnu-folding-constant, -Wgnu-imaginary-constant, -Wgnu-include-next, -Wgnu-label-as-value, -Wgnu-redeclared-enum, -Wgnu-statement-expression, -Wgnu-union-cast, -Wgnu-zero-line-directive, -Wgnu-zero-variadic-macro-arguments, -Wimport-preprocessor-directive-pedantic, -Wkeyword-macro, -Wlanguage-extension-token, -Wlong-long, -Wmicrosoft-charize, -Wmicrosoft-comment-paste, -Wmicrosoft-cpp-macro, -Wmicrosoft-end-of-file, -Wmicrosoft-enum-value, -Wmicrosoft-fixed-enum, -Wmicrosoft-flexible-array, -Wmicrosoft-redeclare-static, -Wnested-anon-types, -Wnullability-extension, -Woverlength-strings, -Wretained-language-linkage, -Wundefined-internal-type, -Wvla-extension, -Wzero-length-array.
Diagnostic text:
| warning: duplicate 'A' declaration specifier | 
| warning: 'enable_if' is a clang extension | 
| warning: 'diagnose_if' is a clang extension | 
| warning: designated initializers are a C99 feature | 
| warning: ISO C++ does not allow 'main' to be used by a program | 
| warning: C++98 requires an accessible copy constructor for class C when binding a reference to a temporary; was | 
 | 
| warning: anonymous | 
 | cannot be 'B' | 
| warning: no viable constructor | 
 | of type B; C++98 requires a copy constructor when binding a reference to a temporary | 
| warning: ISO C++ standards before C++17 do not allow new expression for type A to use list-initialization | 
| warning: parameter A was not declared, defaulting to type 'int' | 
| warning: invoking a pointer to a 'const &' member function on an rvalue is a C++2a extension | 
| warning: qualifier in explicit instantiation of A requires a template-id (a typedef is not permitted) | 
| warning: static | 
 | B is used in an inline function with external linkage | 
| warning: ISO C forbids forward references to 'enum' types | 
| warning: ISO C restricts enumerator values to range of 'int' (A is too | 
 | ) | 
| warning: size of static array must be an integer constant expression | 
| warning: initializer for aggregate is not a compile-time constant | 
| warning: flexible array members are a C99 feature | 
| warning: invalid application of ' | 
 | ' to a function type | 
| warning: invalid application of ' | 
 | ' to a void type | 
| warning: ISO C90 does not allow subscripting non-lvalue array | 
| warning: subscript of a pointer to void is a GNU extension | 
| warning: ISO C forbids taking the address of an expression of type 'void' | 
| warning: ordered comparison between pointer and zero (A and B) is an extension | 
| warning: equality comparison between function pointer and void pointer (A and B) | 
| warning: arithmetic on | 
 | pointer | 
 | to void is a GNU extension | 
| warning: arithmetic on | 
 | pointer | 
 | to | 
 | function type | 
 | B | 
 | is a GNU extension | 
| warning: ISO C does not support '++'/'--' on complex integer type A | 
| warning: ISO C does not support '~' for complex conjugation of A | 
| warning: complex numbers are an extension in a freestanding C99 implementation | 
| warning: cast between pointer-to-function and pointer-to-object is an extension | 
| warning: implicit conversion from array size expression of type A to | 
 | type C is a C++11 extension | 
| warning: | 
 | converts between void pointer and function pointer | 
| warning: kernel function A is a member function; this may not be accepted by nvcc | 
| warning: C99 forbids conditional expressions with only one void side | 
| warning: C99 forbids casting nonscalar type A to the same type | 
| warning: use of the A attribute is a C++14 extension | 
| warning: use of the A attribute is a C++17 extension | 
| warning: types declared in an anonymous | 
 | are a Microsoft extension | 
| warning: format specifies type A but the argument has | 
 | B | 
| warning: void | 
 | A should not return void expression | 
| warning: 'A' cannot be signed or unsigned | 
| warning: | 
 | array size | 
 | is a C99 feature | 
| warning: extra ';' | 
 | 
| warning: '__thread' before 'A' | 
| warning: type-less parameter names in function declaration | 
| warning: variable declaration in for loop is a C99-specific feature | 
| warning: compound literals are a C99-specific feature | 
| warning: commas at the end of enumerator lists are a C99-specific feature | 
| warning: commas at the end of enumerator lists are a C++11 extension | 
| warning: enumeration types with a fixed underlying type are a C++11 extension | 
| warning: use of GNU array range extension | 
| warning: exception specification of '...' is a Microsoft extension | 
| warning: attributes on | 
 | declaration are a C++17 extension | 
| warning: extern templates are a C++11 extension | 
| warning: multi-line // comment | 
| warning: // comments are not allowed in this language | 
| warning: no newline at end of file | 
| warning: use of non-standard escape character '\A' | 
| warning: hexadecimal floating constants are a C99 feature | 
| warning: hexadecimal floating literals are a C++17 feature | 
| warning: #ident is a language extension | 
| warning: #warning is a language extension | 
| warning: comma operator in operand of #if | 
| warning: __VA_ARGS__ can only appear in the expansion of a C99 variadic macro | 
| warning: variadic macros are a C99 feature | 
| warning: named variadic macros are a GNU extension | 
| warning: empty macro arguments are a C99 feature | 
| warning: variadic macros are a Clang extension in OpenCL | 
| warning: C requires #line number to be less than A, allowed as extension | 
| warning: macro expansion producing 'defined' has undefined behavior | 
-Wpedantic-core-features¶
Diagnostic text:
| warning: OpenCL extension A is core feature or supported optional core feature - ignoring | 
-Wpessimizing-move¶
Diagnostic text:
| warning: moving a temporary object prevents copy elision | 
| warning: moving a local object in a return statement prevents copy elision | 
-Wpointer-arith¶
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
| warning: arithmetic on | 
 | pointer | 
 | to | 
 | function type | 
 | B | 
 | is a GNU extension | 
| warning: subscript of a pointer to void is a GNU extension | 
| warning: arithmetic on | 
 | pointer | 
 | to void is a GNU extension | 
| warning: invalid application of ' | 
 | ' to a function type | 
| warning: invalid application of ' | 
 | ' to a void type | 
| warning: subtraction of pointers to type A of zero size has undefined behavior | 
-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-integer-compare¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: comparison between pointer and integer (A and B) | 
-Wpointer-sign¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: | 
 | converts between pointers to integer types with different sign | 
-Wpointer-to-int-cast¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wpointer-type-mismatch¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: pointer type mismatch | 
-Wpotentially-evaluated-expression¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: expression with side effects will be evaluated despite being used as an operand to 'typeid' | 
-Wpragma-clang-attribute¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: unused attribute A in '#pragma clang attribute push' region | 
-Wpragma-once-outside-header¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: #pragma once in main file | 
-Wpragma-pack¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wpragma-pack-suspicious-include.
Diagnostic text:
| warning: the current #pragma pack alignment value is modified in the included file | 
| warning: unterminated '#pragma pack (push, ...)' at end of file | 
-Wpragma-pack-suspicious-include¶
Diagnostic text:
| warning: non-default #pragma pack value changes the alignment of struct or union members in the included file | 
-Wpragma-system-header-outside-header¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: #pragma system_header ignored in main file | 
-Wpragmas¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wignored-pragmas, -Wpragma-clang-attribute, -Wpragma-pack, -Wunknown-pragmas.
Diagnostic text:
| warning: #pragma redefine_extname is applicable to external C declarations only; not applied to | 
 | B | 
-Wpredefined-identifier-outside-function¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: predefined identifier is only valid inside function | 
-Wprivate-extern¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: use of __private_extern__ on a declaration may not produce external symbol private to the linkage unit and is deprecated | 
-Wprivate-header¶
This diagnostic is an error by default, but the flag -Wno-private-header can be used to disable the error.
Diagnostic text:
| error: use of private header from outside its module: 'A' | 
-Wprivate-module¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: expected canonical name for private module 'A' | 
| warning: private submodule 'A' in private module map, expected top-level module | 
| warning: module 'A' already re-exported as 'B' | 
| warning: no submodule named A in module 'B'; using top level 'C' | 
-Wprofile-instr-missing¶
Diagnostic text:
| warning: profile data may be incomplete: of A function | 
 | , B | 
 | no data | 
-Wprofile-instr-out-of-date¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: profile data may be out of date: of A function | 
 | , B | 
 | mismatched data that will be ignored | 
-Wprofile-instr-unprofiled¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: no profile data available for file "A" | 
-Wproperty-access-dot-syntax¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: property A not found on object of type B; did you mean to access property C? | 
-Wproperty-attribute-mismatch¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: property attribute in class extension does not match the primary class | 
| warning: 'B' attribute on property A does not match the property inherited from C | 
| warning: getter name mismatch between property redeclaration (B) and its original declaration (A) | 
| warning: attribute 'readonly' of property A restricts attribute 'readwrite' of property inherited from B | 
-Wprotocol¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: method A in protocol B not implemented | 
-Wprotocol-property-synthesis-ambiguity¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: property | 
 | was selected for synthesis | 
-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¶
Diagnostic text:
| warning: loop variable A is initialized with a value of a different type resulting in a copy | 
| warning: loop variable A of type B creates a copy from type C | 
| warning: loop variable A is always a copy because the range of type B does not return a reference | 
-Wreadonly-iboutlet-property¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: readonly IBOutlet property A when auto-synthesized may not work correctly with 'nib' loader | 
-Wreceiver-expr¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: receiver type A is not 'id' or interface pointer, consider casting it to 'id' | 
-Wreceiver-forward-class¶
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
| warning: receiver A is a forward class and corresponding @interface may not exist | 
| warning: receiver type A for instance message is a forward declaration | 
-Wredeclared-class-member¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: class member cannot be redeclared | 
-Wredundant-decls¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wregister¶
This diagnostic is enabled by default.
Also controls -Wdeprecated-register.
Diagnostic text:
| error: ISO C++17 does not allow 'register' storage class specifier | 
-Wreinterpret-base-class¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: 'reinterpret_cast' | 
 | class A | 
 | its | 
 | B behaves differently from 'static_cast' | 
-Wrequires-super-attribute¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: A attribute cannot be applied to | 
 | 
-Wreserved-user-defined-literal¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wc++11-compat-reserved-user-defined-literal.
Diagnostic text:
| warning: invalid suffix on literal; C++11 requires a space between literal and identifier | 
| error: invalid suffix on literal; C++11 requires a space between literal and identifier | 
-Wretained-language-linkage¶
Diagnostic text:
| warning: friend function A retaining previous language linkage is an extension | 
-Wreturn-stack-address¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: returning address of label, which is local | 
| warning: returning | 
 | local temporary object | 
| warning: | 
 | stack memory associated with | 
 | B returned | 
-Wreturn-std-move¶
Diagnostic text:
| warning: local variable A will be copied despite being | 
 | by name | 
-Wreturn-std-move-in-c++11¶
Diagnostic text:
| warning: prior to the resolution of a defect report against ISO C++11, local variable A would have been copied despite being returned by name, due to its not matching the function return type | 
-Wreturn-type¶
This diagnostic is enabled by default.
Also controls -Wreturn-type-c-linkage.
Diagnostic text:
| error: | 
 | A should not return a value | 
| error: non-void | 
 | A should return a value | 
| warning: control reaches end of coroutine; which is undefined behavior because the promise type A does not declare 'return_void()' | 
| warning: control reaches end of non-void function | 
| warning: control reaches end of non-void lambda | 
| warning: control may reach end of coroutine; which is undefined behavior because the promise type A does not declare 'return_void()' | 
| warning: control may reach end of non-void function | 
| warning: control may reach end of non-void lambda | 
| error: non-void | 
 | A should return a value | 
-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 | 
-Rsanitize-address¶
Diagnostic text:
| remark: -fsanitize-address-field-padding applied to A | 
| remark: -fsanitize-address-field-padding ignored for A because it | 
 | 
-Wsection¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: section attribute is specified on redeclared variable | 
| warning: duplicate code segment specifiers | 
| warning: | 
 | does not match previous declaration | 
-Wselector¶
Also controls -Wselector-type-mismatch.
Diagnostic text:
| warning: no method with selector A is implemented in this translation unit | 
-Wselector-type-mismatch¶
Diagnostic text:
| warning: several methods with selector A of mismatched types are found for the @selector expression | 
-Wself-assign¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wself-assign-field, -Wself-assign-overloaded.
Diagnostic text:
| warning: explicitly assigning value of variable of type A to itself | 
-Wself-assign-field¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: assigning | 
 | to itself | 
-Wself-assign-overloaded¶
Diagnostic text:
| warning: explicitly assigning value of variable of type A to itself | 
-Wsentinel¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: missing sentinel in | 
 | 
| warning: not enough variable arguments in A declaration to fit a sentinel | 
-Wsequence-point¶
Synonym for -Wunsequenced.
-Wserialized-diagnostics¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: unable to open file A for serializing diagnostics (B) | 
| warning: unable to merge a subprocess's serialized diagnostics | 
-Wshadow¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wshadow-field-in-constructor-modified, -Wshadow-ivar.
Diagnostic text:
| warning: declaration shadows a | 
 | 
-Wshadow-all¶
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wshadow, -Wshadow-field, -Wshadow-field-in-constructor, -Wshadow-uncaptured-local.
-Wshadow-field¶
Diagnostic text:
| warning: | 
 | A | 
 | shadows member inherited from type C | 
-Wshadow-field-in-constructor¶
Also controls -Wshadow-field-in-constructor-modified.
Diagnostic text:
| warning: constructor parameter A shadows the field B of C | 
-Wshadow-field-in-constructor-modified¶
Diagnostic text:
| warning: modifying constructor parameter A that shadows a field of B | 
-Wshadow-ivar¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: local declaration of A hides instance variable | 
-Wshadow-uncaptured-local¶
Diagnostic text:
| warning: declaration shadows a | 
 | 
-Wshift-count-negative¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: shift count is negative | 
-Wshift-count-overflow¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: shift count >= width of type | 
-Wshift-negative-value¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: shifting a negative signed value is undefined | 
-Wshift-op-parentheses¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: operator 'A' has lower precedence than 'B'; 'B' will be evaluated first | 
-Wshift-overflow¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: signed shift result (A) requires B bits to represent, but C only has D bits | 
-Wshift-sign-overflow¶
Diagnostic text:
| warning: signed shift result (A) sets the sign bit of the shift expression's type (B) and becomes negative | 
-Wsign-conversion¶
Diagnostic text:
| warning: implicit conversion changes signedness: A to B | 
| warning: operand of ? changes signedness: A to B | 
| warning: the resulting value is always non-negative after implicit conversion | 
-Wsign-promo¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wsigned-enum-bitfield¶
Diagnostic text:
| warning: enums in the Microsoft ABI are signed integers by default; consider giving the enum A an unsigned underlying type to make this code portable | 
-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-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 | 
-Wsometimes-uninitialized¶
Diagnostic text:
| warning: variable A is | 
 | uninitialized whenever | 
 | 
-Wsource-uses-openmp¶
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
| warning: OpenMP only allows an ordered construct with the simd clause nested in a simd construct | 
| warning: unexpected '#pragma omp ...' in program | 
-Wstack-protector¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-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-prototypes¶
Diagnostic text:
| warning: this | 
 | a prototype | 
-Wstrict-prototypes¶
Diagnostic text:
| warning: this | 
 | a prototype | 
-Wstring-compare¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: result of comparison against | 
 | is unspecified (use strncmp instead) | 
-Wstring-conversion¶
Diagnostic text:
| warning: implicit conversion turns string literal into bool: A to B | 
-Wstring-plus-char¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: adding A to a string pointer does not append to the string | 
-Wstring-plus-int¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: adding A to a string does not append to the string | 
-Wstrlcpy-strlcat-size¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: size argument in A call appears to be size of the source; expected the size of the destination | 
-Wstrncat-size¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: the value of the size argument in 'strncat' is too large, might lead to a buffer overflow | 
| warning: size argument in 'strncat' call appears to be size of the source | 
| warning: the value of the size argument to 'strncat' is wrong | 
-Wsuper-class-method-mismatch¶
Diagnostic text:
| warning: method parameter type does not match super class method parameter type | 
-Wsuspicious-bzero¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: 'size' argument to bzero is '0' | 
-Wsuspicious-memaccess¶
This diagnostic is enabled by default.
Controls -Wdynamic-class-memaccess, -Wmemset-transposed-args, -Wnontrivial-memaccess, -Wsizeof-pointer-memaccess, -Wsuspicious-bzero.
-Wswitch¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: overflow converting case value to switch condition type (A to B) | 
| warning: | 
 | 
| warning: case value not in enumerated type A | 
-Wswitch-bool¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: switch condition has boolean value | 
-Wswitch-default¶
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wswitch-enum¶
Diagnostic text:
| warning: | 
 | 
-Wsync-fetch-and-nand-semantics-changed¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: the semantics of this intrinsic changed with GCC version 4.4 - the newer semantics are provided here | 
-Wtautological-compare¶
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wtautological-constant-compare, -Wtautological-objc-bool-compare, -Wtautological-overlap-compare, -Wtautological-pointer-compare, -Wtautological-undefined-compare.
Diagnostic text:
| warning: | 
 | comparison always evaluates to | 
 | 
| warning: bitwise comparison always evaluates to | 
 | 
-Wtautological-constant-compare¶
This diagnostic is enabled by default.
Also controls -Wtautological-constant-out-of-range-compare.
Diagnostic text:
| warning: result of comparison of | 
 | with | 
 | is always E | 
-Wtautological-constant-in-range-compare¶
Controls -Wtautological-type-limit-compare, -Wtautological-unsigned-enum-zero-compare, -Wtautological-unsigned-zero-compare.
-Wtautological-constant-out-of-range-compare¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: result of comparison of | 
 | with | 
 | is always E | 
-Wtautological-objc-bool-compare¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: result of comparison of constant A with expression of type BOOL is always B, as the only well defined values for BOOL are YES and NO | 
-Wtautological-overlap-compare¶
Diagnostic text:
| warning: overlapping comparisons always evaluate to | 
 | 
-Wtautological-pointer-compare¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: comparison of nonnull | 
 | 'B' | 
 | equal to a null pointer is ' | 
 | ' on first encounter | 
| warning: comparison of | 
 | 'B' | 
 | equal to a null pointer is always | 
 | 
-Wtautological-type-limit-compare¶
Diagnostic text:
| warning: result of comparison | 
 | C | 
 | is always E | 
-Wtautological-undefined-compare¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: reference cannot be bound to dereferenced null pointer in well-defined C++ code; comparison may be assumed to always evaluate to | 
 | 
| warning: 'this' pointer cannot be null in well-defined C++ code; comparison may be assumed to always evaluate to | 
 | 
-Wtautological-unsigned-enum-zero-compare¶
Diagnostic text:
| warning: result of comparison of | 
 | C | 
 | is always E | 
-Wtautological-unsigned-zero-compare¶
Diagnostic text:
| warning: result of comparison of | 
 | C | 
 | is always E | 
-Wtentative-definition-incomplete-type¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: tentative definition of variable with internal linkage has incomplete non-array type A | 
-Wthread-safety¶
Controls -Wthread-safety-analysis, -Wthread-safety-attributes, -Wthread-safety-precise, -Wthread-safety-reference.
-Wthread-safety-analysis¶
Diagnostic text:
| warning: A 'B' must be acquired before 'C' | 
| warning: Cycle in acquired_before/after dependencies, starting with 'A' | 
| warning: cannot resolve lock expression | 
| warning: acquiring A 'B' that is already held | 
| warning: expecting A 'B' to be held at start of each loop | 
| warning: expecting A 'B' to be held at the end of function | 
| warning: cannot call function 'B' while A 'C' is held | 
| warning: calling function B requires holding A | 
 | 
| warning: A 'B' is acquired exclusively and shared in the same scope | 
| warning: A 'B' is not held on every path through here | 
| warning: A 'B' is still held at the end of function | 
| warning: releasing A 'B' that was not held | 
| warning: releasing A 'B' using | 
 | access, expected | 
 | access | 
| warning: | 
 | the value pointed to by A requires holding | 
 | 
| warning: | 
 | the value pointed to by B requires holding A | 
 | 
| warning: | 
 | variable A requires holding | 
 | 
| warning: | 
 | variable B requires holding A | 
 | 
-Wthread-safety-attributes¶
Diagnostic text:
| warning: invalid capability name 'A'; capability name must be 'mutex' or 'role' | 
| warning: A attribute requires arguments whose type is annotated with 'capability' attribute; type here is B | 
| warning: A attribute can only be applied in a context annotated with 'capability("mutex")' attribute | 
| warning: A only applies to pointer types; type here is B | 
| warning: ignoring A attribute because its argument is invalid | 
| 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-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 | 
 | 
-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¶
Synonym for -Wtautological-constant-in-range-compare.
-Wtype-limits¶
Synonym for -Wtautological-constant-in-range-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' | 
-Wundeclared-selector¶
Diagnostic text:
| warning: undeclared selector A | 
| warning: undeclared selector A; did you mean B? | 
-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: 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 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.
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 | 
 | 
-Wunknown-argument¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: unknown argument ignored in clang-cl: 'A' | 
| warning: unknown argument ignored in clang-cl 'A'; did you mean 'B'? | 
-Wunknown-attributes¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: unknown attribute A ignored | 
-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_ACCESS ON is not supported, ignoring pragma | 
-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 | 
-Wunreachable-code¶
Also controls -Wunreachable-code-loop-increment.
Diagnostic text:
| warning: code will never be executed | 
-Wunreachable-code-aggressive¶
Controls -Wunreachable-code, -Wunreachable-code-break, -Wunreachable-code-return.
-Wunreachable-code-loop-increment¶
Diagnostic text:
| warning: loop will run at most once (loop increment never executed) | 
-Wunsequenced¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: multiple unsequenced modifications to A | 
| warning: unsequenced modification and access to A | 
-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-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 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-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-command-line-argument¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: argument 'A' requires profile-guided optimization information | 
| warning: joined argument expects additional value: 'A' | 
| warning: A: 'B' input unused | 
 | 
| warning: A: 'B' input unused in cpp mode | 
| warning: A: previously preprocessed input | 
 | 
| warning: argument unused during compilation: 'A' | 
| warning: the flag 'A' has been deprecated and will be ignored | 
-Wunused-comparison¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: | 
 | comparison result unused | 
-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-lambda-capture¶
Diagnostic text:
| warning: lambda capture A is not | 
 | 
-Wunused-local-typedefs¶
Synonym for -Wunused-local-typedef.
-Wunused-member-function¶
Also controls -Wunneeded-member-function.
Diagnostic text:
| warning: unused member function A | 
-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 | 
-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: 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 | 
-Wuser-defined-literals¶
This diagnostic is enabled by default.
Diagnostic text:
| warning: user-defined literal suffixes not starting with '_' 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 | 
-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.
-Wweak-template-vtables¶
Diagnostic text:
| warning: explicit template instantiation A will emit a vtable in every translation unit | 
-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.