A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://releases.llvm.org/14.0.0/tools/clang/docs/DiagnosticsReference.html below:

Diagnostic flags in Clang — Clang 14.0.0 documentation

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

-WCL4¶

Some of the diagnostics controlled by this flag are enabled by default.

Controls -Wall, -Wextra.

-WIndependentClass-attribute¶

This diagnostic is enabled by default.

Diagnostic text:

warning: ‘objc_independent_class’ attribute may be put on a typedef only; attribute is ignored

warning: ‘objc_independent_class’ attribute may be put on Objective-C object pointer type only; attribute is ignored

-WNSObject-attribute¶

This diagnostic is enabled by default.

Diagnostic text:

warning: ‘NSObject’ attribute may be put on a typedef only; attribute is ignored

-Wabi¶

This diagnostic flag exists for GCC compatibility, and has no effect in Clang.

-Wabsolute-value¶

This diagnostic is enabled by default.

Diagnostic text:

warning: absolute value function A given an argument of type B but has parameter of type C which may cause truncation of value

warning: taking the absolute value of 

pointer

function

array

 type B is suspicious

warning: taking the absolute value of unsigned type A has no effect

warning: using 

integer

floating point

complex

 absolute value function A when argument is of 

integer

floating point

complex

 type

-Wabstract-final-class¶

This diagnostic is enabled by default.

Diagnostic text:

warning: abstract class is marked ‘

final

sealed

‘

-Wabstract-vbase-init¶

Diagnostic text:

warning: initializer for virtual base class A of abstract class B will never be used

-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

-Waix-compat¶

This diagnostic is enabled by default.

Diagnostic text:

warning: requesting an alignment of 16 bytes or greater for struct members is not binary compatible with IBM XL C/C++ for AIX 16.1.0 and older

warning: #pragma align(packed) may not be compatible with objects generated with AIX XL C/C++

-Walign-mismatch¶

This diagnostic is enabled by default.

Diagnostic text:

warning: passing A-byte aligned argument to B-byte aligned parameter C

 of E

 may result in an unaligned pointer access

-Walloca¶

Diagnostic text:

warning: use of function A is discouraged; there is no way to check for failure but failure may still occur, resulting in a possibly exploitable security vulnerability

-Walloca-with-align-alignof¶

This diagnostic is enabled by default.

Diagnostic text:

warning: second argument to __builtin_alloca_with_align is supposed to be in bits

-Wambiguous-delete¶

This diagnostic is enabled by default.

Diagnostic text:

warning: multiple suitable A functions for B; no ‘operator delete’ function will be invoked if initialization throws an exception

-Wambiguous-ellipsis¶

This diagnostic is enabled by default.

Diagnostic text:

warning: ’…’ in this location creates a C-style varargs function

, not a function parameter pack

-Wambiguous-macro¶

This diagnostic is enabled by default.

Diagnostic text:

warning: ambiguous expansion of macro A

-Wambiguous-member-template¶

This diagnostic is enabled by default.

Diagnostic text:

warning: lookup of A in member access expression is ambiguous; using member of B

-Wambiguous-reversed-operator¶

This diagnostic is enabled by default.

Diagnostic text:

warning: ISO C++20 considers use of overloaded operator ‘A’ (with operand types B and C) to be ambiguous despite there being a unique best viable function

 with non-reversed arguments

-Wanalyzer-incompatible-plugin¶

This diagnostic is enabled by default.

Diagnostic text:

warning: checker plugin ‘A’ is not compatible with this version of the analyzer

-Wanon-enum-enum-conversion¶

Some of the diagnostics controlled by this flag are enabled by default.

Also controls -Wdeprecated-anon-enum-enum-conversion.

Diagnostic text:

warning: 

arithmetic between

bitwise operation between

comparison of

conditional expression between

compound assignment of

 different enumeration types

 (B and C)

-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-maybe-repeated-use-of-weak¶

Diagnostic text:

warning: weak 

variable

property

implicit property

instance variable

 B may be accessed multiple times in this 

function

method

block

lambda

 and may be unpredictably set to nil; assign to a strong variable to keep the object alive

-Warc-non-pod-memaccess¶

This diagnostic is enabled by default.

Diagnostic text:

warning: 

destination for

source of

 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 

variable

property

implicit property

instance variable

 B is accessed multiple times in this 

function

method

block

lambda

 but may be unpredictably set to nil; assign to a strong variable to keep the object alive

-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 

array literal

dictionary literal

numeric literal

boxed expression

<should not happen>

block literal

 to a weak 

property

variable

; object will be released after assignment

warning: assigning retained object to 

weak

unsafe_unretained

 

property

variable

; 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

s

)

warning: array index A refers past the last possible element for an array in B-bit address space containing C-bit (D-byte) elements (max possible E element

s

)

warning: array index A is before the beginning of the array

warning: the pointer incremented by A refers past the last possible element for an array in B-bit address space containing C-bit (D-byte) elements (max possible E element

s

)

warning: array argument is too small; 

contains A elements

is of size A

, callee requires at least B

-Warray-bounds-pointer-arithmetic¶

Diagnostic text:

warning: the pointer incremented by A refers past the end of the array (that contains B element

s

)

warning: the pointer decremented by A refers before the beginning of the array

-Wasm-operand-widths¶

This diagnostic is enabled by default.

Diagnostic text:

warning: value size does not match register size specified by the constraint and modifier

-Wassign-enum¶

Diagnostic text:

warning: integer constant not in range of enumerated type A

-Wassume¶

This diagnostic is enabled by default.

Diagnostic text:

warning: the argument to A has side effects that will be discarded

-Wat-protocol¶

This diagnostic flag exists for GCC compatibility, and has no effect in Clang.

-Watomic-alignment¶

This diagnostic is enabled by default.

Diagnostic text:

warning: misaligned atomic operation may incur significant performance penalty; the expected alignment (A bytes) exceeds the actual alignment (B bytes)

warning: large atomic operation may incur significant performance penalty; the access size (A bytes) exceeds the max lock-free size (B  bytes)

-Watomic-implicit-seq-cst¶

Diagnostic text:

warning: implicit use of sequentially-consistent atomic may incur stronger memory barriers than necessary

-Watomic-memory-ordering¶

This diagnostic is enabled by default.

Diagnostic text:

warning: memory order argument to atomic operation is invalid

-Wattribute-packed-for-bitfield¶

This diagnostic is enabled by default.

Diagnostic text:

warning: ‘packed’ attribute was ignored on bit-fields with single-byte alignment in older versions of GCC and Clang

-Wattribute-warning¶

This diagnostic is enabled by default.

Diagnostic text:

warning: call to A declared with ‘warning’ attribute: B

-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 #

include

import

include_next

__include_macros

 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: Fuchsia API Level prohibits specifying a minor or sub-minor version

warning: ignoring availability attribute 

on ‘+load’ method

with constructor attribute

with destructor attribute

warning: only ‘unavailable’ and ‘deprecated’ are supported for Swift availability

warning: unknown platform A in availability macro

warning: feature cannot be 

introduced

deprecated

obsoleted

 in B version C before it was 

introduced

deprecated

obsoleted

 in version E; attribute ignored

warning: use same version number separators ‘_’ or ‘.’; as in ‘major[.minor[.subminor]]’

warning: availability does not match previous declaration

warning: 

overriding 

method 

introduced after

deprecated before

obsoleted before

 

the protocol method it implements

overridden method

 on B (C vs. D)

warning: 

overriding 

method cannot be unavailable on A when 

the protocol method it implements

its overridden method

 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: support for passing the data section address to the linker for microcontroller ‘A’ is not implemented

warning: no target microcontroller specified on command line, cannot link standard libraries, please pass -mmcu=<mcu name>

warning: standard library not linked and so no interrupt vector table or compiler runtime routines will be linked

-Wbackend-plugin¶

This diagnostic is enabled by default.

Diagnostic text:

The text of this diagnostic is not controlled by Clang.

-Wbad-function-cast¶

Diagnostic text:

warning: cast from function call of type A to non-matching type B

-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 

private

protected

warning: no viable constructor 

copying variable

copying parameter

initializing template parameter

returning object

initializing statement expression result

throwing object

copying member subobject

copying array element

allocating object

copying temporary

initializing base subobject

initializing vector element

capturing value

 of type B; C++98 requires a copy constructor when binding a reference to a temporary

-Wbinding-in-condition¶

This diagnostic is enabled by default.

Diagnostic text:

warning: ISO C++17 does not permit structured binding declaration in a condition

-Wbit-int-extension¶

Diagnostic text:

warning: ’_BitInt’ in 

C17 and earlier

C++

 is a Clang extension

-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 bit-field A (B bits) exceeds the width of its type; value will be truncated to C bit

s

-Wbitwise-conditional-parentheses¶

This diagnostic is enabled by default.

Diagnostic text:

warning: operator ‘?:’ has lower precedence than ‘A’; ‘A’ will be evaluated first

-Wblock-capture-autoreleasing¶

This diagnostic is enabled by default.

Diagnostic text:

warning: block captures an autoreleasing out-parameter, which may result in use-after-free bugs

-Wbraced-scalar-init¶

This diagnostic is enabled by default.

Diagnostic text:

warning: braces around 

scalar 

initializer

-Wbranch-protection¶

This diagnostic is enabled by default.

Diagnostic text:

warning: ’-mbranch-protection=’ option is incompatible with the ‘A’ architecture

warning: ignoring the ‘branch-protection’ attribute because the ‘A’ architecture does not support it

warning: invalid branch protection option ‘A’ in ‘B’

warning: unsupported branch protection specification ‘A’

-Wbridge-cast¶

This diagnostic is enabled by default.

Diagnostic text:

warning: A bridges to B, not C

warning: A cannot bridge to B

-Wbuiltin-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

-Wc++-compat¶

Diagnostic text:

warning: 

empty 

struct

union

 has size 0 in C, 

size 1

non-zero size

 in C++

-Wc++11-compat¶

Some of the diagnostics controlled by this flag are enabled by default.

Also controls -Wc++11-compat-deprecated-writable-strings, -Wc++11-compat-reserved-user-defined-literal, -Wc++11-narrowing, -Wpre-c++14-compat, -Wpre-c++17-compat, -Wpre-c++20-compat, -Wpre-c++2b-compat.

Diagnostic text:

warning: integer literal is too large to be represented in type ‘long’ and is subject to undefined behavior under C++98, interpreting as ‘unsigned long’; this literal will 

have type ‘long long’

be ill-formed

 in C++11 onwards

warning: ‘auto’ storage class specifier is redundant and incompatible with C++11

warning: identifier after literal will be treated as a user-defined literal suffix in C++11

warning: ’A’ is a keyword in C++11

warning: use of right-shift operator (‘>>’) in template argument will require parentheses in C++11

warning: explicit instantiation cannot be ‘inline’

warning: explicit instantiation of A must occur at global scope

warning: explicit instantiation of A not in a namespace enclosing B

warning: explicit instantiation of A must occur in namespace B

warning: integer literal is too large to be represented in type ‘long’, interpreting as ‘unsigned long’ per C++98; this literal will 

have type ‘long long’

be ill-formed

 in C++11 onwards

-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 

integral

enumeration

 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: 

defaulted

deleted

 function definitions are a C++11 extension

warning: befriending enumeration type A is a C++11 extension

warning: commas at the end of enumerator lists are a C++11 extension

warning: explicit conversion functions are a C++11 extension

warning: extern templates are a C++11 extension

warning: range-based for loop is a C++11 extension

warning: generalized initializer lists are a C++11 extension

warning: use of enumeration in a nested name specifier is a C++11 extension

warning: non-class friend type A is a C++11 extension

warning: default member initializer for non-static data member is a C++11 extension

warning: ’A’ keyword is a C++11 extension

warning: reference qualifiers on functions are a C++11 extension

warning: rvalue references are a C++11 extension

warning: scoped enumerations are a C++11 extension

warning: static data member A in union is a C++11 extension

warning: non-type template argument referring to 

function

object

 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 ‘

struct

interface

union

class

enum

‘ 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: 

case value

enumerator value

non-type template argument

array size

explicit specifier argument

noexcept specifier argument

 

cannot be narrowed from type C to D

evaluates to C, which cannot be narrowed to type D

error: constant expression evaluates to A which cannot be narrowed to type B

error: type A cannot be narrowed to B in initializer list

error: non-constant-expression cannot be narrowed from type A to B in initializer list

warning: constant expression evaluates to A which cannot be narrowed to type B in C++11

warning: type A cannot be narrowed to B in initializer list in C++11

warning: non-constant-expression cannot be narrowed from type A to B in initializer list in C++11

-Wc++14-extensions¶

Some of the diagnostics controlled by this flag are enabled by default.

Also controls -Wc++14-attribute-extensions, -Wc++14-binary-literal.

Diagnostic text:

warning: use of this statement in a constexpr 

function

constructor

 is a C++14 extension

warning: multiple return statements in constexpr function is a C++14 extension

warning: variable declaration in a constexpr 

function

constructor

 is a C++14 extension

warning: type definition in a constexpr 

function

constructor

 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-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-extensions¶

Some of the diagnostics controlled by this flag are enabled by default.

Also controls -Wc++17-attribute-extensions.

Diagnostic text:

warning: ISO C++ standards before C++17 do not allow new expression for type A to use list-initialization

warning: constexpr if is a C++17 extension

warning: ‘constexpr’ on lambda expressions is a C++17 extension

warning: ‘static_assert’ with no message is a C++17 extension

warning: decomposition declarations are a C++17 extension

warning: pack fold expression is a C++17 extension

warning: ‘begin’ and ‘end’ returning different types (A and B) is a C++17 extension

warning: hexadecimal floating literals are a C++17 feature

warning: ’

if

switch

‘ initialization statements are a C++17 extension

warning: inline variables are a C++17 extension

warning: use of multiple declarators in a single using declaration is a C++17 extension

warning: nested namespace definition is a C++17 extension; define each namespace separately

warning: attributes on 

a namespace

an enumerator

 declaration are a C++17 extension

warning: capture of ‘*this’ by copy is a C++17 extension

warning: 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++20-compat¶

Some of the diagnostics controlled by this flag are enabled by default.

Also controls -Wpre-c++2b-compat.

Diagnostic text:

warning: aggregate initialization of type A with user-declared constructors is incompatible with C++20

warning: ‘consteval’ specifier is incompatible with C++ standards before C++20

warning: ‘constinit’ specifier is incompatible with C++ standards before C++20

warning: this expression will be parsed as explicit(bool) in C++20

warning: ’<=>’ is a single token in C++20; add a space to avoid a change in behavior

warning: type of UTF-8 string literal will change from array of const char to array of const char8_t in C++20

warning: ’A’ is a keyword in C++20

-Wc++20-extensions¶

Some of the diagnostics controlled by this flag are enabled by default.

Also controls -Wc++20-attribute-extensions, -Wc++20-designator.

Diagnostic text:

warning: use of function template name with no prior declaration in function call with explicit template arguments is a C++20 extension

warning: default member initializer for bit-field is a C++20 extension

warning: use of this statement in a constexpr 

function

constructor

 is a C++20 extension

warning: constexpr constructor that does not initialize all members is a C++20 extension

warning: function try block in constexpr 

function

constructor

 is a C++20 extension

warning: uninitialized variable in a constexpr 

function

constructor

 is a C++20 extension

warning: constexpr union constructor that does not initialize any member is a C++20 extension

warning: decomposition declaration declared 

‘B’

with ‘B’ specifiers

 is a C++20 extension

warning: defaulted comparison operators are a C++20 extension

warning: explicit capture of ‘this’ with a capture default of ‘=’ is a C++20 extension

warning: explicit(bool) is a C++20 extension

warning: range-based for loop initialization statements are a C++20 extension

warning: initialized lambda pack captures are a C++20 extension

warning: inline nested namespace definition is a C++20 extension

warning: explicit template parameter list for lambdas is a C++20 extension

warning: invoking a pointer to a ‘const &’ member function on an rvalue is a C++20 extension

warning: member using declaration naming a non-member enumerator is a C++20 extension

warning: using declaration naming a scoped enumerator is a C++20 extension

warning: using enum declaration is a C++20 extension

-Wc++2b-extensions¶

This diagnostic is enabled by default.

Diagnostic text:

warning: alias declaration in this context is a C++2b extension

warning: consteval if is a C++2b extension

warning: ‘size_t’ suffix for literals is a C++2b extension

warning: an attribute specifier sequence in this position is a C++2b extension

warning: lambda without a parameter clause is a C++2b extension

-Wc++98-compat¶

Also controls -Wc++98-compat-local-type-template-args, -Wc++98-compat-unnamed-type-template-args, -Wpre-c++14-compat, -Wpre-c++17-compat, -Wpre-c++20-compat, -Wpre-c++2b-compat.

Diagnostic text:

warning: alias declarations are incompatible with C++98

warning: ‘alignas’ is incompatible with C++98

warning: alignof expressions are incompatible with C++98

warning: 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: 

defaulted

deleted

 function definitions are incompatible with C++98

warning: delegating constructors are incompatible with C++98

warning: scalar initialized from empty initializer list is incompatible with C++98

warning: initializing A from an empty initializer list is incompatible with C++98

warning: enumeration types with a fixed underlying type are incompatible with C++98

warning: befriending enumeration type A is incompatible with C++98

warning: enumeration type in nested name specifier is incompatible with C++98

warning: explicit conversion functions are incompatible with C++98

warning: range-based for loop is incompatible with C++98

warning: friend declaration naming a member of the declaring class is incompatible with C++98

warning: generalized initializer lists are incompatible with C++98

warning: jump from this goto statement to its label is incompatible with C++98

warning: jump from this 

indirect

asm

 goto statement to one of its possible targets is incompatible with C++98

warning: initialization of initializer_list object is incompatible with C++98

warning: inline namespaces are incompatible with C++98

warning: lambda expressions are incompatible with C++98

warning: ’<::’ is treated as digraph ‘<:’ (aka ‘[‘) followed by ‘:’ in C++98

warning: literal operators are incompatible with C++98

warning: universal character name referring to a control character is incompatible with C++98

warning: specifying character ‘A’ with a universal character name is incompatible with C++98

warning: noexcept specifications are incompatible with C++98

warning: noexcept expressions are incompatible with C++98

warning: use of non-static data member A in an unevaluated context is incompatible with C++98

warning: non-class friend type A is incompatible with C++98

warning: default member initializer for non-static data members is incompatible with C++98

warning: 

anonymous struct

union

 member B with a non-trivial 

default constructor

copy constructor

move constructor

copy assignment operator

move assignment operator

destructor

 is incompatible with C++98

warning: ‘nullptr’ is incompatible with C++98

warning: ’A’ keyword is incompatible with C++98

warning: passing object of trivial but non-POD type A through variadic 

function

block

method

constructor

 is incompatible with C++98

warning: raw string literals are incompatible with C++98

warning: reference qualifiers on functions are incompatible with C++98

warning: reference initialized from initializer list is incompatible with C++98

warning: rvalue references are incompatible with C++98

warning: scoped enumerations are incompatible with C++98

warning: substitution failure due to access control is incompatible with C++98

warning: static_assert declarations are incompatible with C++98

warning: static data member A in union is incompatible with C++98

warning: jump from switch statement to this case label is incompatible with C++98

warning: redundant parentheses surrounding address non-type template argument are incompatible with C++98

warning: use of null pointer as non-type template argument is incompatible with C++98

warning: non-type template argument referring to 

function

object

 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 ‘

struct

interface

union

class

enum

‘ keyword is incompatible with C++98

warning: unicode literals are incompatible with C++98

warning: ’A’ type specifier is incompatible with C++98

warning: inheriting constructors are incompatible with C++98

warning: variadic templates are incompatible with C++98

-Wc++98-compat-bind-to-temporary-copy¶

Diagnostic text:

warning: 

copying variable

copying parameter

initializing template parameter

returning object

initializing statement expression result

throwing object

copying member subobject

copying array element

allocating object

copying temporary

initializing base subobject

initializing vector element

capturing value

 of type C when binding a reference to a temporary would 

invoke an inaccessible constructor

find no viable constructor

find ambiguous constructors

invoke a deleted constructor

 in C++98

-Wc11-extensions¶

Diagnostic text:

warning: anonymous unions are a C11 extension

warning: anonymous structs are a C11 extension

warning: ’A’ is a C11 extension

warning: pointer comparisons before C11 need to be between two complete or two incomplete types; A is 

in

complete and B is 

in

complete

-Wc2x-extensions¶

This diagnostic is enabled by default.

Diagnostic text:

warning: ’_Static_assert’ with no message is a C2x extension

warning: omitting the parameter name in a function definition is a C2x extension

-Wc99-compat¶

Some of the diagnostics controlled by this flag are enabled by default.

Diagnostic text:

warning: 

using this character in an identifier

starting an identifier with this character

 is incompatible with C99

warning: unicode literals are incompatible with C99

warning: integer literal is too large to be represented in type ‘long’, interpreting as ‘unsigned long’ per C89; this literal will 

have type ‘long long’

be ill-formed

 in C99 onwards

-Wc99-designator¶

Some of the diagnostics controlled by this flag are enabled by default.

Also controls -Wc++20-designator.

Diagnostic text:

warning: designated initializers are a C99 feature

warning: array designators are a C99 extension

warning: brace elision for designated initializer is a C99 extension

warning: mixture of designated and non-designated initializers in the same initializer list is a C99 extension

warning: nested designators are a C99 extension

-Wc99-extensions¶

Some of the diagnostics controlled by this flag are enabled by default.

Also controls -Wc99-designator.

Diagnostic text:

warning: initializer for aggregate is not a compile-time constant

warning: 

qualifier in 

static 

array size 

‘[*] ‘

is a C99 feature

warning: compound literals are a C99-specific feature

warning: ’A’ is a C99 extension

warning: flexible array members are a C99 feature

warning: variable declaration in for loop is a C99-specific feature

warning: ISO C99 requires whitespace after the macro name

warning: empty macro arguments are a C99 feature

warning: commas at the end of enumerator lists are a C99-specific feature

warning: hexadecimal floating constants are a C99 feature

-Wcall-to-pure-virtual-from-ctor-dtor¶

This diagnostic is enabled by default.

Diagnostic text:

warning: call to pure virtual member function A has undefined behavior; overrides of A in subclasses are not available in the 

constructor

destructor

 of C

-Wcalled-once-parameter¶

Some of the diagnostics controlled by this flag are enabled by default.

Also controls -Wcompletion-handler.

Diagnostic text:

warning: A parameter marked ‘called_once’ is called twice

warning: 

captured 

A parameter marked ‘called_once’ is never called

warning: A parameter marked ‘called_once’ is never 

used

called

 when 

taking true branch

taking false branch

handling this case

none of the cases applies

entering the loop

skipping the loop

taking one of the branches

-Wcast-align¶

Diagnostic text:

warning: cast from A to B increases required alignment from C to D

-Wcast-calling-convention¶

This diagnostic is enabled by default.

Diagnostic text:

warning: cast between incompatible calling conventions ‘A’ and ‘B’; calls through this pointer may abort at runtime

-Wcast-function-type¶

Diagnostic text:

warning: cast 

from A to B 

converts to incompatible function type

-Wcast-of-sel-type¶

This diagnostic is enabled by default.

Diagnostic text:

warning: cast of type A to B is deprecated; use sel_getName instead

-Wcast-qual¶

Diagnostic text:

warning: cast from A to B drops 

const and volatile qualifiers

const qualifier

volatile qualifier

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 

lower bound

length

 is of type ‘char’

warning: array subscript is of type ‘char’

-Wclang-cl-pch¶

This diagnostic is enabled by default.

Diagnostic text:

warning: support for ‘/Yc’ with more than one source file not implemented yet; flag ignored

warning: support for ‘/Yc’ and ‘/Yu’ with different filenames not implemented yet; flags ignored

warning: #pragma hdrstop filename not supported, /Fp can be used to specify precompiled header filename

warning: definition of macro A does not match definition in precompiled header

-Wclass-conversion¶

This diagnostic is enabled by default.

Diagnostic text:

warning: conversion function converting A to its base class B will never be used

warning: conversion function converting A to itself will never be used

warning: conversion function converting A to B will never be used

-Wclass-varargs¶

Some of the diagnostics controlled by this flag are enabled by default.

Also controls -Wnon-pod-varargs.

Diagnostic text:

warning: passing object of class type A through variadic 

function

block

method

constructor

; did you mean to call ‘D’?

-Wcmse-union-leak¶

This diagnostic is enabled by default.

Diagnostic text:

warning: passing union across security boundary via 

parameter B

return value

 may leak information

-Wcomma¶

Diagnostic text:

warning: possible misuse of comma operator here

-Wcompletion-handler¶

Diagnostic text:

warning: completion handler is called twice

warning: 

captured 

completion handler is never called

warning: completion handler is never 

used

called

 when 

taking true branch

taking false branch

handling this case

none of the cases applies

entering the loop

skipping the loop

taking one of the branches

-Wcomplex-component-init¶

Diagnostic text:

warning: complex initialization specifying real and imaginary components is an extension

-Wcompound-token-split-by-macro¶

This diagnostic is enabled by default.

Diagnostic text:

warning: 

B and 

C tokens 

introducing statement expression

terminating statement expression

introducing attribute

terminating attribute

forming pointer to member type

 appear in different macro expansion contexts

-Wcompound-token-split-by-space¶

Diagnostic text:

warning: 

B and 

C tokens 

introducing statement expression

terminating statement expression

introducing attribute

terminating attribute

forming pointer to member type

 are separated by whitespace

-Wconcepts-ts-compat¶

This diagnostic is enabled by default.

Diagnostic text:

warning: ISO C++20 does not permit the ‘bool’ keyword after ‘concept’

-Wconditional-type-mismatch¶

This diagnostic is enabled by default.

Diagnostic text:

warning: pointer/integer type mismatch in conditional expression

 (A and B)

-Wconfig-macros¶

This diagnostic is enabled by default.

Diagnostic text:

warning: 

definition

#undef

 of configuration macro ‘B’ has no effect on the import of ‘C’; pass ‘

-DB=…

-UB

‘ on the command line to configure the module

-Wconstant-evaluated¶

This diagnostic is enabled by default.

Diagnostic text:

warning: ’A’ will always evaluate to ‘true’ in a manifestly constant-evaluated expression

-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

-Wcstring-format-directive¶

Diagnostic text:

warning: using A directive in 

NSString

CFString

 which is being passed as a formatting argument to the formatting 

method

CFfunction

-Wctu¶

This diagnostic is enabled by default.

Diagnostic text:

warning: imported AST from ‘A’ had been generated for a different target, current: B, imported: C

-Wcuda-compat¶

Some of the diagnostics controlled by this flag are enabled by default.

Diagnostic text:

warning: A attribute parameter B is negative and will be ignored

warning: nvcc does not allow ‘__A__’ to appear after the parameter list in lambdas

warning: ignored ‘inline’ attribute on kernel function A

warning: kernel function A is a member function; this may not be accepted by nvcc

warning: argument to ‘#pragma unroll’ should not be in parentheses in CUDA C/C++

-Wcustom-atomic-properties¶

Diagnostic text:

warning: atomic by default property A has a user defined 

getter

setter

 (property should be marked ‘atomic’ if this is intended)

-Wcxx-attribute-extension¶

This diagnostic is enabled by default.

Diagnostic text:

warning: ISO C++ does not allow an attribute list to appear here

-Wdangling¶

This diagnostic is enabled by default.

Also controls -Wdangling-field, -Wdangling-gsl, -Wdangling-initializer-list, -Wreturn-stack-address.

Diagnostic text:

warning: 

temporary 

whose address is used as value of

implicitly 

bound to

 

reference 

member of local variable

local 

variable

reference

array backing 

initializer list subobject of local variable

local initializer list

 

D 

will be destroyed at the end of the full-expression

warning: sorry, lifetime extension of 

temporary

backing array of initializer list

 created by aggregate initialization using default member initializer is not supported; lifetime of 

temporary

backing array

 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 

variable

parameter

 B

warning: 

reference

backing array for ‘std::initializer_list’

 

subobject of 

member A 

binds to

is

 a temporary object whose lifetime is shorter than the lifetime of the constructed object

warning: initializing pointer member A with the stack address of 

variable

parameter

 B

warning: temporary bound to reference member of allocated object will be destroyed at the end of the full-expression

-Wdangling-gsl¶

This diagnostic is enabled by default.

Diagnostic text:

warning: object backing the pointer will be destroyed at the end of the full-expression

warning: initializing pointer member A to point to a temporary object whose lifetime is shorter than the lifetime of the constructed object

-Wdangling-initializer-list¶

This diagnostic is enabled by default.

Diagnostic text:

warning: array backing 

initializer list subobject of the allocated object

the allocated initializer list

 will be destroyed at the end of the full-expression

-Wdarwin-sdk-settings¶

This diagnostic is enabled by default.

Diagnostic text:

warning: SDK settings were ignored as ‘SDKSettings.json’ could not be parsed

-Wdate-time¶

Diagnostic text:

warning: expansion of date or time macro is not reproducible

-Wdealloc-in-category¶

This diagnostic is enabled by default.

Diagnostic text:

warning: -dealloc is being overridden in a category

-Wdeclaration-after-statement¶

Diagnostic text:

warning: mixing declarations and code is a C99 extension

warning: mixing declarations and code is incompatible with standards before C99

-Wdefaulted-function-deleted¶

This diagnostic is enabled by default.

Diagnostic text:

warning: explicitly defaulted 

<ERROR>

equality

three-way

equality

relational

 comparison operator is implicitly deleted

warning: explicitly defaulted 

default constructor

copy constructor

move constructor

copy assignment operator

move assignment operator

destructor

 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: 

delete

destructor

 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

-Wdeprecated¶

Some of the diagnostics controlled by this flag are enabled by default.

Also controls -Wdeprecated-anon-enum-enum-conversion, -Wdeprecated-array-compare, -Wdeprecated-attributes, -Wdeprecated-comma-subscript, -Wdeprecated-copy, -Wdeprecated-copy-with-dtor, -Wdeprecated-declarations, -Wdeprecated-dynamic-exception-spec, -Wdeprecated-enum-compare, -Wdeprecated-enum-compare-conditional, -Wdeprecated-enum-enum-conversion, -Wdeprecated-enum-float-conversion, -Wdeprecated-increment-bool, -Wdeprecated-pragma, -Wdeprecated-register, -Wdeprecated-this-capture, -Wdeprecated-type, -Wdeprecated-volatile, -Wdeprecated-writable-strings.

Diagnostic text:

warning: -O4 is equivalent to -O3

warning: access declarations are deprecated; use using declarations instead

warning: out-of-line definition of constexpr static data member is redundant in C++17 and is deprecated

warning: argument ‘A’ is deprecated, use ‘B’ instead

warning: treating ‘A’ input as ‘B’ when in C++ mode, this behavior is deprecated

warning: -fconcepts-ts is deprecated - use ‘-std=c++20’ for Concepts support

warning: A does not support the option ‘B’

warning: Use of ‘long’ with ‘__vector’ is deprecated

-Wdeprecated-altivec-src-compat¶

This diagnostic is enabled by default.

Diagnostic text:

warning: Current handling of vector bool and vector pixel types in this context are deprecated. The default behaviour will soon change to that implied by the ‘-altivec-compat=xl’ option

-Wdeprecated-anon-enum-enum-conversion¶

This diagnostic is enabled by default.

Diagnostic text:

warning: 

arithmetic between

bitwise operation between

comparison of

conditional expression between

compound assignment of

 different enumeration types

 (B and C)

 is deprecated

-Wdeprecated-array-compare¶

This diagnostic is enabled by default.

Diagnostic text:

warning: comparison between two arrays is deprecated; to compare array addresses, use unary ‘+’ to decay operands to pointers

-Wdeprecated-attributes¶

This diagnostic is enabled by default.

Diagnostic text:

warning: specifying vector types with the ‘mode’ attribute is deprecated; use the ‘vector_size’ attribute instead

-Wdeprecated-comma-subscript¶

This diagnostic is enabled by default.

Diagnostic text:

warning: top-level comma expression in array subscript is deprecated

-Wdeprecated-copy-with-user-provided-copy¶

Diagnostic text:

warning: definition of implicit copy 

constructor

assignment operator

 for A is deprecated because it has a user-provided copy 

assignment operator

constructor

-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-enum-compare¶

This diagnostic is enabled by default.

Diagnostic text:

warning: 

arithmetic between

bitwise operation between

comparison of

conditional expression between

compound assignment of

 different enumeration types

 (B and C)

 is deprecated

-Wdeprecated-enum-compare-conditional¶

This diagnostic is enabled by default.

Diagnostic text:

warning: 

arithmetic between

bitwise operation between

comparison of

conditional expression between

compound assignment of

 different enumeration types

 (B and C)

 is deprecated

-Wdeprecated-enum-enum-conversion¶

This diagnostic is enabled by default.

Diagnostic text:

warning: 

arithmetic between

bitwise operation between

comparison of

conditional expression between

compound assignment of

 different enumeration types

 (B and C)

 is deprecated

-Wdeprecated-enum-float-conversion¶

This diagnostic is enabled by default.

Diagnostic text:

warning: 

arithmetic between

bitwise operation between

comparison of

conditional expression between

compound assignment of

 

floating-point

enumeration

 type C 

with

from

and

 

enumeration

floating-point

 type D is deprecated

-Wdeprecated-experimental-coroutine¶

This diagnostic is enabled by default.

Diagnostic text:

warning: support for std::experimental::A will be removed in LLVM 15; use std::A instead

-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-pragma¶

This diagnostic is enabled by default.

Diagnostic text:

warning: macro A has been marked as deprecated

: C

-Wdeprecated-register¶

This diagnostic is enabled by default.

Diagnostic text:

warning: ‘register’ storage class specifier is deprecated and incompatible with C++17

-Wdeprecated-type¶

This diagnostic is enabled by default.

Diagnostic text:

warning: ’_ExtInt’ is deprecated; use ‘_BitInt’ instead

-Wdeprecated-volatile¶

This diagnostic is enabled by default.

Diagnostic text:

warning: compound assignment to object of volatile-qualified type A is deprecated

warning: 

decrement

increment

 of object of volatile-qualified type B is deprecated

warning: use of result of assignment to object of volatile-qualified type A is deprecated

warning: volatile-qualified parameter type A is deprecated

warning: volatile-qualified return type A is deprecated

warning: volatile qualifier in structured binding declaration is deprecated

-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

-Wdivision-by-zero¶

This diagnostic is enabled by default.

Diagnostic text:

warning: 

remainder

division

 by zero is undefined

-Wdocumentation¶

Also controls -Wdocumentation-deprecated-sync, -Wdocumentation-html.

Diagnostic text:

warning: ’

\

@

class

interface

protocol

struct

union

‘ command should not be used in a comment attached to a non-

class

interface

protocol

struct

union

 declaration

warning: duplicated command ‘

\

@

B’

warning: empty paragraph passed to ‘

\

@

B’ command

warning: ’

\

@

classdesign

coclass

dependency

helper

helperclass

helps

instancesize

ownership

performance

security

superclass

‘ command should not be used in a comment attached to a non-container declaration

warning: ’

\

@

function

functiongroup

method

methodgroup

callback

‘ command should be used in a comment attached to 

a function

a function

an Objective-C method

an Objective-C method

a pointer to function

 declaration

warning: HTML start tag prematurely ended, expected attribute name or ‘>’

warning: expected quoted string after equals sign

warning: ’

\

@

B’ command does not have a valid word argument

warning: parameter ‘A’ is already documented

warning: unrecognized parameter passing direction, valid directions are ‘[in]’, ‘[out]’ and ‘[in,out]’

warning: ’

\

@

param’ command used in a comment that is not attached to a function declaration

warning: parameter ‘A’ not found in the function declaration

warning: ’

\

@

B’ command used in a comment that is attached to a 

function returning void

constructor

destructor

method returning void

warning: ’

\

@

B’ command used in a comment that is not attached to a function or method declaration

warning: template parameter ‘A’ is already documented

warning: ’

\

@

tparam’ command used in a comment that is not attached to a template declaration

warning: template parameter ‘A’ not found in the template declaration

warning: not a Doxygen trailing comment

warning: ’

\

@

B’ command does not terminate a verbatim text block

-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’

-Wdtor-name¶

Some of the diagnostics controlled by this flag are enabled by default.

Diagnostic text:

warning: ISO C++ considers this destructor name lookup to be ambiguous

warning: ISO C++ requires the name after ‘::~’ to be found in the same scope as the name before ‘::~’

warning: qualified destructor name only found in lexical scope; omit the qualifier to find this type name by unqualified lookup

-Wdtor-typedef¶

This diagnostic is an error by default, but the flag -Wno-dtor-typedef can be used to disable the error.

Diagnostic text:

error: destructor cannot be declared using a 

typedef

type alias

 A of the class name

-Wduplicate-decl-specifier¶

Some of the diagnostics controlled by this flag are enabled by default.

Diagnostic text:

warning: duplicate ‘A’ declaration specifier

warning: duplicate ‘A’ declaration specifier

warning: multiple identical address spaces specified for type

warning: duplicate ‘A’ declaration specifier

-Wduplicate-enum¶

Diagnostic text:

warning: element A has been implicitly assigned B which another element has been assigned

-Wduplicate-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: 

destination for

source of

first operand of

second operand of

 this B call is a pointer to 

class containing a 

dynamic class D; vtable pointer will be 

overwritten

copied

moved

compared

-Welaborated-enum-base¶

This diagnostic is an error by default, but the flag -Wno-elaborated-enum-base can be used to disable the error.

Diagnostic text:

error: non-defining declaration of enumeration with a fixed underlying type is only permitted as a standalone declaration

; missing list of enumerators?

-Welaborated-enum-class¶

This diagnostic is an error by default, but the flag -Wno-elaborated-enum-class can be used to disable the error.

Diagnostic text:

error: reference to enumeration must use ‘enum’ not ‘enum 

struct

class

‘

-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 ‘

if

switch

range-based for

‘ has no effect

-Wencode-type¶

This diagnostic is enabled by default.

Diagnostic text:

warning: encoding of A type is incomplete because B component has unknown encoding

-Wenum-compare-conditional¶

Some of the diagnostics controlled by this flag are enabled by default.

Also controls -Wdeprecated-enum-compare-conditional.

Diagnostic text:

warning: 

arithmetic between

bitwise operation between

comparison of

conditional expression between

compound assignment of

 different enumeration types

 (B and C)

-Wenum-compare-switch¶

This diagnostic is enabled by default.

Diagnostic text:

warning: comparison of different enumeration types in switch statement

 (A and B)

-Wenum-enum-conversion¶

Some of the diagnostics controlled by this flag are enabled by default.

Also controls -Wdeprecated-enum-enum-conversion.

Diagnostic text:

warning: 

arithmetic between

bitwise operation between

comparison of

conditional expression between

compound assignment of

 different enumeration types

 (B and C)

-Wenum-float-conversion¶

Some of the diagnostics controlled by this flag are enabled by default.

Also controls -Wdeprecated-enum-float-conversion.

Diagnostic text:

warning: 

arithmetic between

bitwise operation between

comparison of

conditional expression between

compound assignment of

 

floating-point

enumeration

 type C 

with

from

and

 

enumeration

floating-point

 type D

-Wenum-too-large¶

This diagnostic is enabled by default.

Diagnostic text:

warning: enumeration values exceed range of largest integer

warning: incremented enumerator value A is not representable in the largest integer type

-Wexceptions¶

This diagnostic is enabled by default.

Diagnostic text:

warning: cannot refer to a non-static member from the handler of a 

constructor

destructor

 function try block

warning: exception of type A will be caught by earlier handler

warning: A has a non-throwing exception specification but can still throw

-Wexcess-initializers¶

This diagnostic is enabled by default.

Diagnostic text:

warning: excess elements in 

array

vector

scalar

union

struct

 initializer

warning: excess elements in initializer for indivisible sizeless type A

warning: excess elements in char array initializer

warning: initializer-string for char array is too long

-Wexpansion-to-defined¶

Some of the diagnostics controlled by this flag are enabled by default.

Diagnostic text:

warning: macro expansion producing ‘defined’ has undefined behavior

warning: macro expansion producing ‘defined’ has undefined behavior

-Wexplicit-initialize-call¶

This diagnostic is enabled by default.

Diagnostic text:

warning: explicit call to +initialize results in duplicate call to +initialize

warning: explicit call to [super initialize] should only be in implementation of +initialize

-Wexport-unnamed¶

This diagnostic is enabled by default.

Diagnostic text:

warning: ISO C++20 does not permit 

an empty

a static_assert

 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: 

empty 

struct

union

 has size 0 in C, 

size 1

non-zero size

 in C++

-Wextern-initializer¶

This diagnostic is enabled by default.

Diagnostic text:

warning: ‘extern’ variable has an initializer

-Wfinal-dtor-non-final-class¶

This diagnostic is enabled by default.

Diagnostic text:

warning: class with destructor marked ‘

final

sealed

‘ cannot be inherited from

-Wfinal-macro¶

This diagnostic is enabled by default.

Diagnostic text:

warning: macro A has been marked as final and should not be 

undefined

redefined

-Wfixed-enum-extension¶

Diagnostic text:

warning: enumeration types with a fixed underlying type are a Clang extension

-Wfixed-point-overflow¶

This diagnostic is enabled by default.

Diagnostic text:

warning: overflow in expression; result is A with type B

-Wflag-enum¶

This diagnostic is enabled by default.

Diagnostic text:

warning: enumeration value A is out of range of flags in enumeration type B

-Wflexible-array-extensions¶

Diagnostic text:

warning: A may not be used as an array element due to flexible array member

warning: A may not be nested in a struct due to flexible array member

-Wfloat-equal¶

Diagnostic text:

warning: comparing floating point with == or != is unsafe

-Wfloat-overflow-conversion¶

Diagnostic text:

warning: implicit conversion from A to B changes value from C to D

warning: implicit conversion of out of range value from A to B is undefined

-Wfloat-zero-conversion¶

Diagnostic text:

warning: implicit conversion from A to B changes non-zero value from C to D

-Wfor-loop-analysis¶

Diagnostic text:

warning: variable A is 

decremented

incremented

 both in the loop header and in the loop body

warning: variable

s

 B

s B and C

s B, C, and D

s B, C, D, and E

 used in loop condition not modified in loop body

-Wformat¶

This diagnostic is enabled by default.

Also controls -Wformat-extra-args, -Wformat-insufficient-args, -Wformat-invalid-specifier, -Wformat-security, -Wformat-y2k, -Wformat-zero-length, -Wnonnull.

Diagnostic text:

warning: using ‘%%P’ format specifier without precision

warning: 

values of type

enum values with underlying type

 ’A’ should not be used as format arguments; add an explicit cast to B instead

warning: using ‘A’ format specifier, but argument has boolean value

warning: format specifies type A but the argument has 

type

underlying type

 B

warning: using ‘A’ format specifier annotation outside of os_log()/os_trace()

warning: invalid position specified for 

field width

field precision

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 

width

precision

 is missing a matching ‘int’ argument

warning: field 

width

precision

 should have type B, but argument has type C

warning: missing object format flag

warning: format string contains ‘\0’ within the string body

warning: format string is not null-terminated

warning: flag ‘A’ is ignored when flag ‘B’ is present

warning: incomplete format specifier

warning: ’A’ is not a valid object format flag

warning: ’%%n’ specifier not supported on this platform

warning: flag ‘A’ results in undefined behavior with ‘B’ conversion specifier

warning: 

field width

precision

 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-insufficient-args¶

This diagnostic is enabled by default.

Diagnostic text:

warning: more ‘%%’ conversions than data arguments

-Wformat-non-iso¶

Diagnostic text:

warning: ’A’ 

length modifier

conversion specifier

 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: 

values of type

enum values with underlying type

 ’A’ should not be used as format arguments; add an explicit cast to B instead

warning: format specifies type A but the argument has 

type

underlying type

 B

-Wformat-security¶

This diagnostic is enabled by default.

Diagnostic text:

warning: format string is not a string literal (potentially insecure)

-Wformat-type-confusion¶

Diagnostic text:

warning: format specifies type A but the argument has 

type

underlying type

 B

-Wformat-y2k¶

This diagnostic flag exists for GCC compatibility, and has no effect in Clang.

-Wformat-zero-length¶

This diagnostic is enabled by default.

Diagnostic text:

warning: format string is empty

-Wfortify-source¶

This diagnostic is enabled by default.

Diagnostic text:

warning: ’A’ may overflow; destination buffer in argument B has size C, but the corresponding specifier may require size D

warning: ’A’ will always overflow; destination buffer has size B, but format string expands to at least C

warning: ’A’ will always overflow; destination buffer has size B, but size argument is C

warning: ’A’ size argument is too large; destination buffer has size B, but size argument is C

warning: ’A’ will always overflow; destination buffer has size B, but the source string has length C (including NUL byte)

-Wframe-address¶

Diagnostic text:

warning: calling ‘A’ with a nonzero argument is unsafe

-Wframe-larger-than¶

This diagnostic is enabled by default.

Diagnostic text:

The text of this diagnostic is not controlled by Clang.

warning: stack frame size (A) exceeds limit (B) in ‘C’

-Wfree-nonheap-object¶

This diagnostic is enabled by default.

Diagnostic text:

warning: attempt to call A on non-heap 

object C

object: block expression

object: lambda-to-function-pointer conversion

-Wfunction-multiversion¶

This diagnostic is enabled by default.

Also controls -Wtarget-clones-mixed-specifiers.

Diagnostic text:

warning: body of cpu_dispatch function will be ignored

warning: CPU list contains duplicate entries; attribute ignored

warning: version list contains duplicate entries

-Wfuse-ld-path¶

Diagnostic text:

warning: ’-fuse-ld=’ taking a path is deprecated; use ‘–ld-path=’ instead

-Wfuture-compat¶

This diagnostic flag exists for GCC compatibility, and has no effect in Clang.

-Wgcc-compat¶

Some of the diagnostics controlled by this flag are enabled by default.

Diagnostic text:

warning: ‘diagnose_if’ is a clang extension

warning: ‘enable_if’ is a clang extension

warning: __final is a GNU extension, consider using C++11 final

warning: GCC does not allow A attribute in this position on a function definition

warning: ‘break’ is bound to loop, GCC binds it to switch

warning: GCC does not allow the ‘cleanup’ attribute argument to be anything other than a simple identifier

warning: GCC does not allow an attribute in this position on a function declaration

warning: GCC does not allow the A attribute to be written on a type

warning: GCC does not allow variable declarations in for loop initializers before C99

warning: ’A’ is bound to current loop, GCC binds it to the enclosing loop

-Wglobal-constructors¶

Diagnostic text:

warning: declaration requires a global constructor

warning: declaration requires a global destructor

-Wglobal-isel¶

This diagnostic is enabled by default.

Diagnostic text:

warning: -fglobal-isel support for the ‘A’ architecture is incomplete

warning: -fglobal-isel support is incomplete for this architecture at the current optimization level

-Wgnu¶

Some of the diagnostics controlled by this flag are enabled by default.

Controls -Wgnu-alignof-expression, -Wgnu-anonymous-struct, -Wgnu-auto-type, -Wgnu-binary-literal, -Wgnu-case-range, -Wgnu-complex-integer, -Wgnu-compound-literal-initializer, -Wgnu-conditional-omitted-operand, -Wgnu-designator, -Wgnu-empty-initializer, -Wgnu-empty-struct, -Wgnu-flexible-array-initializer, -Wgnu-flexible-array-union-member, -Wgnu-folding-constant, -Wgnu-imaginary-constant, -Wgnu-include-next, -Wgnu-label-as-value, -Wgnu-redeclared-enum, -Wgnu-statement-expression, -Wgnu-static-float-init, -Wgnu-string-literal-operator-template, -Wgnu-union-cast, -Wgnu-variable-sized-type-not-at-end, -Wgnu-zero-line-directive, -Wgnu-zero-variadic-macro-arguments, -Wredeclared-class-member, -Wvla-extension, -Wzero-length-array.

-Wgnu-alignof-expression¶

This diagnostic is enabled by default.

Diagnostic text:

warning: A applied to an expression is a GNU extension

-Wgnu-array-member-paren-init¶

This diagnostic is an error by default, but the flag -Wno-gnu-array-member-paren-init can be used to disable the error.

Diagnostic text:

error: parenthesized initialization of a member array is a GNU extension

-Wgnu-compound-literal-initializer¶

Diagnostic text:

warning: initialization of an array 

of type A from a compound literal of type B

from a compound literal

 is a GNU extension

-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 

struct

union

 is a GNU extension

warning: flexible array member A in otherwise empty 

struct

interface

union

class

enum

 is a GNU extension

warning: 

struct

union

 without named members is a GNU extension

-Wgnu-folding-constant¶

Some of the diagnostics controlled by this flag are enabled by default.

Diagnostic text:

warning: expression is not an 

integer

integral

 constant expression; folding it to a constant is a GNU extension

warning: in-class initializer for static data member is not a constant expression; folding it to a constant is a GNU extension

warning: variable length array folded to constant array as an extension

-Wgnu-inline-cpp-without-extern¶

This diagnostic is enabled by default.

Diagnostic text:

warning: ‘gnu_inline’ attribute without ‘extern’ in C++ treated as externally available, this changed in Clang 10

-Wgnu-label-as-value¶

Diagnostic text:

warning: use of GNU address-of-label extension

warning: use of GNU indirect-goto extension

-Wgnu-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-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-variadic-macro-arguments¶

Diagnostic text:

warning: must specify at least one argument for ‘…’ parameter of variadic macro

warning: token pasting of ‘,’ and __VA_ARGS__ is a GNU extension

-Wgpu-maybe-wrong-side¶

This diagnostic is enabled by default.

Diagnostic text:

warning: capture host side class data member by this pointer in device or host device lambda function may result in invalid memory access if this pointer is not accessible on device side

-Whip-only¶

This diagnostic is enabled by default.

Diagnostic text:

warning: ’A’ is ignored since it is only supported for HIP

-Wignored-attributes¶

This diagnostic is enabled by default.

Diagnostic text:

warning: ‘trivial_abi’ cannot be applied to A

warning: 

alias

ifunc

 will always resolve to A even if weak definition of B is overridden

warning: 

alias

ifunc

 will not be in section ‘A’ but in the same section as the 

aliasee

resolver

warning: requested alignment is less than minimum alignment of B for type A

warning: ‘abi_tag’ attribute on 

non-inline

anonymous

 namespace ignored

warning: attribute A after definition is ignored

warning: ‘cmse_nonsecure_entry’ cannot be applied to functions with internal linkage

warning: ‘dllexport’ attribute ignored on explicit instantiation definition

warning: attribute A has no effect when annotating an ‘if 

constexpr

consteval

‘ statement

warning: attribute A has no effect when annotating an infinite loop

warning: A attribute can only be applied to instance variables or properties

warning: A attribute ignored

warning: A attribute ignored for field of type B

warning: A attribute ignored on inline function

warning: A attribute ignored on a non-definition declaration

warning: ’A’ attribute cannot be specified on a definition

warning: attribute A ignored, because it is not attached to a declaration

warning: ‘nonnull’ attribute applied to function with no pointer arguments

warning: ‘nonnull’ attribute when used on parameters takes no arguments

warning: A attribute ignored when parsing type

warning: A attribute only applies to a pointer or reference (B is invalid)

warning: A attribute only applies to

 constant

 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 

functions

blocks

warning: A attribute argument not supported: B

warning: unknown visibility A

warning: attribute A cannot be applied to 

functions

Objective-C method

 without return value

warning: __weak attribute cannot be specified on a field declaration

warning: __weak attribute cannot be specified on an automatic variable when ARC is not enabled

warning: A attribute only applies to 

functions

unions

variables and functions

functions and methods

functions, methods and blocks

functions, methods, and parameters

variables

variables and fields

variables, data members and tag types

types and namespaces

variables, functions and classes

kernel functions

non-K&R-style functions

warning: A attribute only applies to B

warning: conflicting attributes A are ignored

warning: attribute A ignored, because it cannot be applied to omitted return type

warning: A calling convention is not supported 

for this target

on variadic function

on constructor/destructor

on builtin function

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 “

class

struct

interface

union

enum

” to apply attribute to type declaration

warning: ‘deprecated’ attribute on anonymous namespace ignored

warning: A currently has no effect on a using declaration

warning: A redeclared inline; B attribute ignored

warning: attribute A is already applied with different arguments

warning: attribute A is already applied

warning: Objective-C GC does not allow weak variables on the stack

warning: ‘gnu_inline’ attribute requires function to be marked ‘inline’, attribute ignored

warning: inheritance model ignored on 

primary template

partial specialization

warning: ‘objc_externally_retained’ can only be applied to local variables 

of retainable type

with strong ownership

warning: import 

module

name

 cannot be applied to a function with a definition

warning: ‘internal_linkage’ attribute on a non-static local variable is ignored

warning: 

MIPS

MSP430

RISC-V

 ‘interrupt’ attribute only applies to functions that have 

no parameters

a ‘void’ return type

warning: qualifiers after comma in declarator list are ignored

warning: ‘mig_server_routine’ attribute only applies to routines that return a kern_return_t

warning: import 

module

name

 (B) does not match the import 

module

name

 (C) of the previous declaration

warning: unknown attribute ‘A’

warning: ‘nocf_check’ attribute ignored; use -fcf-protection to enable the attribute

warning: ‘noderef’ can only be used on an array or pointer type

warning: A attribute is ignored because there exists no call expression inside the statement

warning: ‘nothrow’ attribute conflicts with exception specification; attribute ignored

warning: A attribute only applies to 

Objective-C object

pointer

pointer-to-CF-pointer

pointer/reference-to-OSObject-pointer

 parameters

warning: A attribute only applies to 

functions

methods

properties

 that return 

an Objective-C object

a pointer

a non-retainable pointer

warning: A attribute isn’t implemented by this Objective-C runtime

warning: direct attribute on property A ignored (not implemented by this Objective-C runtime)

warning: A attribute is deprecated and ignored in B

warning: ‘require_constant_initialization’ attribute added after initialization of variable

warning: repeated RISC-V ‘interrupt’ attribute

warning: template parameter of a function template with the ‘sycl_kernel’ attribute cannot be a non-type template parameter

warning: function template with ‘sycl_kernel’ attribute must have a single parameter

warning: ‘sycl_kernel’ attribute only applies to a function template with at least two template parameters

warning: function template with ‘sycl_kernel’ attribute must have a ‘void’ return type

warning: 

alignment

size

 of field B (C bits) does not match the 

alignment

size

 of the first field in transparent union; transparent_union attribute ignored

warning: first field of a transparent union cannot have 

floating point

vector

 type B; transparent_union attribute ignored

warning: transparent_union attribute can only be applied to a union definition; attribute ignored

warning: transparent union definition must contain at least one field; transparent_union attribute ignored

warning: ’A’ only applies to 

function

pointer

Objective-C object or block pointer

 types; type here is C

warning: __declspec attribute A is not supported

warning: 

unsupported

duplicate

unknown

 architecture

 tune CPU

 ’C’ in the ‘

target

target_clones

‘ attribute string; ‘

target

target_clones

‘ 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

; consider including <intrin.h> to access non-builtin intrinsics

-Wignored-pragmas¶

This diagnostic is enabled by default.

Also controls -Wignored-pragma-intrinsic, -Wignored-pragma-optimize.

Diagnostic text:

warning: expected ‘=’ following ‘#pragma 

align

options align

‘ - ignored

warning: invalid alignment option in ‘#pragma 

align

options align

‘ - ignored

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 

‘enable’, ‘disable’, ‘begin’ or ‘end’

‘disable’

 - ignoring

warning: expected ‘)’ or ‘,’ in ‘#pragma A’

warning: missing ‘)’ after ‘#pragma A’ - ignoring

warning: expected a stack label or a string literal for the section name in ‘#pragma A’ - ignored

warning: expected a string literal for the section name in ‘#pragma A’ - ignored

warning: expected push, pop or a string literal for the section name in ‘#pragma A’ - ignored

warning: expected string literal in ‘#pragma A’ - ignoring

warning: extra tokens at end of ‘#pragma A’ - ignored

warning: incorrect use of #pragma clang force_cuda_host_device begin|end

warning: ’#pragma A’ is not supported on this target - ignored

warning: ’#pragma init_seg’ is only supported when targeting a Microsoft environment

warning: unknown action for ‘#pragma A’ - ignored

warning: unexpected argument ‘A’ to ‘#pragma B’

; expected D

warning: unknown action ‘B’ for ‘#pragma A’ - ignored

warning: missing argument to ‘#pragma A’

; expected C

warning: incorrect use of ‘#pragma fenv_access (on|off)’ - ignored

warning: incorrect use of ‘#pragma ms_struct on|off’ - ignored

warning: #pragma options align=reset failed: A

warning: expected ‘align’ following ‘#pragma options’ - ignored

warning: expected #pragma pack parameter to be ‘1’, ‘2’, ‘4’, ‘8’, or ‘16’

warning: expected integer or identifier in ‘#pragma pack’ - ignored

warning: #pragma A(pop, …) failed: B

warning: pragma pop_macro could not pop ‘A’, no matching push_macro

warning: 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’

warning: invalid or unsupported rounding mode in ‘#pragma STDC FENV_ROUND’ - ignored

-Wignored-qualifiers¶

Some of the diagnostics controlled by this flag are enabled by default.

Also controls -Wignored-reference-qualifiers.

Diagnostic text:

warning: ARC 

unused

__unsafe_unretained

__strong

__weak

__autoreleasing

 lifetime qualifier on return type is ignored

warning: ’A’ qualifier on omitted return type B has no effect

warning: ’A’ type qualifier

s

 on return type 

has

have

 no effect

warning: ’A’ qualifier on function type B has no effect

-Wimplicit-atomic-properties¶

Diagnostic text:

warning: property is assumed atomic when auto-synthesizing the property

warning: property is assumed atomic by default

-Wimplicit-exception-spec-mismatch¶

This diagnostic is enabled by default.

Diagnostic text:

warning: function previously declared with an 

explicit

implicit

 exception specification redeclared with an 

implicit

explicit

 exception specification

-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-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-retain-self¶

Diagnostic text:

warning: block implicitly retains ‘self’; explicitly mention ‘self’ to indicate this is intended behavior

-Wimplicitly-unsigned-literal¶

This diagnostic is enabled by default.

Diagnostic text:

warning: integer literal is too large to be represented in a signed integer type, interpreting as unsigned

-Wimport¶

This diagnostic flag exists for GCC compatibility, and has no effect in Clang.

-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

-Wincompatible-exception-spec¶

This diagnostic is enabled by default.

Diagnostic text:

warning: exception specifications of 

return

argument

 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 

assigning to A from B

assigning to different types

passing A to parameter of type B

passing to parameter of different type

returning A from a function with result type B

returning from function with different return type

converting A to type B

converting between types

initializing A with an expression of type B

initializing with expression of different type

sending A to parameter of type B

sending to parameter of different type

casting A to type B

casting between types

; dereference with *

; take the address with &

; remove *

; remove &

-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 

assigning to A from B

assigning to different types

passing A to parameter of type B

passing to parameter of different type

returning A from a function with result type B

returning from function with different return type

converting A to type B

converting between types

initializing A with an expression of type B

initializing with expression of different type

sending A to parameter of type B

sending to parameter of different type

casting A to type B

casting between types

; dereference with *

; take the address with &

; remove *

; remove &

-Wincompatible-pointer-types-discards-qualifiers¶

This diagnostic is enabled by default.

Diagnostic text:

warning: 

assigning to A from B

assigning to different types

passing A to parameter of type B

passing to parameter of different type

returning A from a function with result type B

returning from function with different return type

converting A to type B

converting between types

initializing A with an expression of type B

initializing with expression of different type

sending A to parameter of type B

sending to parameter of different type

casting A to type B

casting between types

 discards qualifiers in nested pointer types

warning: 

assigning to A from B

assigning to different types

passing A to parameter of type B

passing to parameter of different type

returning A from a function with result type B

returning from function with different return type

converting A to type B

converting between types

initializing A with an expression of type B

initializing with expression of different type

sending A to parameter of type B

sending to parameter of different type

casting A to type B

casting between types

 discards qualifiers

warning: 

reinterpret_cast

C-style cast

 from B to C changes address space of nested pointers

-Wincompatible-property-type¶

This diagnostic is enabled by default.

Diagnostic text:

warning: property type A is incompatible with type B inherited from C

-Wincompatible-sysroot¶

This diagnostic is enabled by default.

Diagnostic text:

warning: using sysroot for ‘A’ but targeting ‘B’

-Wincomplete-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

-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 

partially 

overrides prior initialization of this subobject

warning: initializer 

partially 

overrides prior initialization of this subobject

-Winjected-class-name¶

This diagnostic is enabled by default.

Diagnostic text:

warning: ISO C++ specifies that qualified reference to A is a constructor name rather than a 

template name

type

 in this context, despite preceding 

‘typename’

‘template’

 keyword

-Winline¶

This diagnostic flag exists for GCC compatibility, and has no effect in Clang.

-Winline-asm¶

This diagnostic is enabled by default.

Diagnostic text:

The text of this diagnostic is not controlled by Clang.

-Winline-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 

assigning to A from B

assigning to different types

passing A to parameter of type B

passing to parameter of different type

returning A from a function with result type B

returning from function with different return type

converting A to type B

converting between types

initializing A with an expression of type B

initializing with expression of different type

sending A to parameter of type B

sending to parameter of different type

casting A to type B

casting between types

; dereference with *

; take the address with &

; remove *

; remove &

warning: incompatible pointer to integer conversion 

assigning to A from B

assigning to different types

passing A to parameter of type B

passing to parameter of different type

returning A from a function with result type B

returning from function with different return type

converting A to type B

converting between types

initializing A with an expression of type B

initializing with expression of different type

sending A to parameter of type B

sending to parameter of different type

casting A to type B

casting between types

; dereference with *

; take the address with &

; remove *

; remove &

-Wint-in-bool-context¶

Diagnostic text:

warning: converting the enum constant to a boolean

warning: converting the result of ‘<<’ to a boolean; did you mean ‘(A) != 0’?

-Winteger-overflow¶

This diagnostic is enabled by default.

Diagnostic text:

warning: overflow in expression; result is A with type B

-Winterrupt-service-routine¶

This diagnostic is enabled by default.

Diagnostic text:

warning: interrupt service routine should only call a function with attribute ‘no_caller_saved_registers’

-Winvalid-command-line-argument¶

This diagnostic is enabled by default.

Also controls -Wignored-optimization-argument.

Diagnostic text:

warning: missing plugin argument for plugin A in B

warning: missing plugin name in A

warning: the given MCU supports A hardware multiply, but ‘-mhwmult’ is set to B

warning: no MCU device specified, but ‘-mhwmult’ is set to ‘auto’, assuming no hardware multiply; use ‘-mmcu’ to specify an MSP430 device, or ‘-mhwmult’ to set the hardware multiply type explicitly

warning: the given MCU does not support hardware multiply, but ‘-mhwmult’ is set to A

warning: the object size sanitizer has no effect at -O0, but is explicitly enabled: A

warning: optimization level ‘A’ is not supported; using ‘BC’ instead

warning: ignoring extension ‘A’ because the ‘B’ architecture does not support it

-Winvalid-constexpr¶

This diagnostic is an error by default, but the flag -Wno-invalid-constexpr can be used to disable the error.

Diagnostic text:

error: 

constexpr

consteval

 

function

constructor

 never produces a constant expression

-Winvalid-iboutlet¶

This diagnostic is enabled by default.

Diagnostic text:

warning: 

instance variable

property

 with A attribute must be an object type (invalid B)

warning: IBOutletCollection properties should be copy/strong and not assign

-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: 

class

variable

 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 

here

for the remainder of the translation unit

-Wlarge-by-value-copy¶

This diagnostic is enabled by default.

Diagnostic text:

warning: A is a large (B bytes) pass-by-value argument; pass it by reference instead ?

warning: return value of A is a large (B bytes) pass-by-value object; pass it by reference instead ?

-Wliblto¶

This diagnostic flag exists for GCC compatibility, and has no effect in Clang.

-Wlinker-warnings¶

This diagnostic is enabled by default.

Diagnostic text:

warning: linking module ‘A’: B

-Wliteral-conversion¶

This diagnostic is enabled by default.

Diagnostic text:

warning: implicit conversion from A to B changes value from C to D

warning: implicit conversion of out of range value from A to B is undefined

-Wliteral-range¶

This diagnostic is enabled by default.

Diagnostic text:

warning: 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

-Wlogical-not-parentheses¶

This diagnostic is enabled by default.

Diagnostic text:

warning: logical not is only applied to the left hand side of this 

comparison

bitwise operator

-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”)

-Wmax-tokens¶

Diagnostic text:

warning: the number of preprocessor source tokens (A) exceeds this token limit (B)

warning: the total number of preprocessor source tokens (A) exceeds the token limit (B)

The warning is issued if the number of pre-processor tokens exceeds the token limit, which can be set in three ways:

  1. As a limit at a specific point in a file, using the clang max_tokens_here pragma:

  2. As a per-translation unit limit, using the -fmax-tokens= command-line flag:

  3. As a per-translation unit limit using the clang max_tokens_total pragma, which works like and overrides the -fmax-tokens= flag:

These limits can be helpful in limiting code growth through included files.

Setting a token limit of zero means no limit.

Note that the warning is disabled by default, so -Wmax-tokens must be used in addition with the pragmas or -fmax-tokens flag to get any warnings.

-Wmax-unsigned-zero¶

This diagnostic is enabled by default.

Diagnostic text:

warning: taking the max of 

a value and unsigned zero

unsigned zero and a value

 is always equal to the other value

-Wmemset-transposed-args¶

This diagnostic is enabled by default.

Diagnostic text:

warning: 

‘size’ argument to memset is ‘0’

setting buffer to a ‘sizeof’ expression

; did you mean to transpose the last two arguments?

-Wmemsize-comparison¶

This diagnostic is enabled by default.

Diagnostic text:

warning: size argument in A call is a comparison

-Wmethod-signatures¶

Diagnostic text:

warning: conflicting parameter types in implementation of A: B vs C

warning: conflicting return type in implementation of A: B vs C

-Wmicrosoft¶

Some of the diagnostics controlled by this flag are enabled by default.

Controls -Winconsistent-dllimport, -Wmicrosoft-abstract, -Wmicrosoft-anon-tag, -Wmicrosoft-cast, -Wmicrosoft-charize, -Wmicrosoft-comment-paste, -Wmicrosoft-const-init, -Wmicrosoft-cpp-macro, -Wmicrosoft-default-arg-redefinition, -Wmicrosoft-drectve-section, -Wmicrosoft-end-of-file, -Wmicrosoft-enum-forward-reference, -Wmicrosoft-enum-value, -Wmicrosoft-exception-spec, -Wmicrosoft-explicit-constructor-call, -Wmicrosoft-extra-qualification, -Wmicrosoft-fixed-enum, -Wmicrosoft-flexible-array, -Wmicrosoft-goto, -Wmicrosoft-include, -Wmicrosoft-mutable-reference, -Wmicrosoft-pure-definition, -Wmicrosoft-redeclare-static, -Wmicrosoft-sealed, -Wmicrosoft-static-assert, -Wmicrosoft-template, -Wmicrosoft-union-member-reference, -Wmicrosoft-unqualified-friend, -Wmicrosoft-using-decl, -Wmicrosoft-void-pseudo-dtor.

-Wmicrosoft-abstract¶

This diagnostic is enabled by default.

Diagnostic text:

warning: ‘abstract’ keyword is a Microsoft extension

-Wmicrosoft-anon-tag¶

Some of the diagnostics controlled by this flag are enabled by default.

Diagnostic text:

warning: types declared in an anonymous 

struct

union

 are a Microsoft extension

warning: anonymous 

structs

unions

 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-const-init¶

This diagnostic is enabled by default.

Diagnostic text:

warning: default initialization of an object of const type A

 without a user-provided default constructor

 is a Microsoft extension

-Wmicrosoft-drectve-section¶

This diagnostic is enabled by default.

Diagnostic text:

warning: #pragma A(“.drectve”) has undefined behavior, use #pragma comment(linker, …) instead

-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: 

pointer to 

reference to 

incomplete type B is not allowed in exception specification

warning: exception specification in declaration does not match previous declaration

warning: exception specification in explicit instantiation does not match instantiated one

warning: exception specification of overriding function is more lax than base version

-Wmicrosoft-exists¶

This diagnostic is enabled by default.

Diagnostic text:

warning: dependent 

__if_not_exists

__if_exists

 declarations are ignored

-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 

struct

interface

union

class

enum

 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-sealed¶

This diagnostic is enabled by default.

Diagnostic text:

warning: ‘sealed’ keyword is a Microsoft extension

-Wmicrosoft-static-assert¶

This diagnostic is enabled by default.

Diagnostic text:

warning: use of ‘static_assert’ without inclusion of <assert.h> is a Microsoft extension

-Wmicrosoft-template¶

This diagnostic is enabled by default.

Also controls -Wmicrosoft-template-shadow.

Diagnostic text:

warning: duplicate explicit instantiation of A ignored as a Microsoft extension

warning: use of member A found via unqualified lookup into dependent bases of class templates is a Microsoft extension

warning: use of member A before its declaration is a Microsoft extension

warning: using the undeclared type A as a default template argument is a Microsoft extension

warning: non-type template argument containing a dereference operation is a Microsoft extension

warning: 

class template

class template partial

variable template

variable template partial

function template

member function

static data member

member class

member enumeration

 specialization of B not in 

a namespace enclosing C

class C or an enclosing namespace

 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-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

-Wmisleading-indentation¶

Diagnostic text:

warning: misleading indentation; statement is not part of the previous ‘

if

else

for

while

‘

-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

: B vs C

-Wmismatched-return-types¶

This diagnostic is enabled by default.

Diagnostic text:

warning: conflicting return type in implementation of A

: B vs C

-Wmissing-braces¶

Diagnostic text:

warning: suggest braces around initialization of subobject

-Wmissing-constinit¶

This diagnostic is enabled by default.

Diagnostic text:

warning: ‘constinit’ specifier missing on initializing declaration of A

-Wmissing-declarations¶

This diagnostic is enabled by default.

Diagnostic text:

warning: declaration does not declare anything

warning: ’A’ is not permitted on a declaration of a type

warning: typedef requires a name

warning: ’A’ ignored on this declaration

-Wmissing-exception-spec¶

This diagnostic is enabled by default.

Diagnostic text:

warning: A is missing exception specification ‘B’

-Wmissing-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: 

function

method

 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’

-Wmisspelled-assumption¶

This diagnostic is enabled by default.

Diagnostic text:

warning: unknown assumption string ‘A’ may be misspelled; attribute is potentially ignored, did you mean ‘B’?

-Rmodule-build¶

Diagnostic text:

 building module ‘A’ as ‘B’

 finished building module ‘A’

 could not acquire lock file for module ‘A’: B

 timed out waiting to acquire lock file for module ‘A’

-Wmodule-conflict¶

This diagnostic is enabled by default.

Diagnostic text:

warning: module ‘A’ conflicts with already-imported module ‘B’: C

warning: module file ‘A’ was validated as a system module and is now being imported as a non-system module; any difference in diagnostic options will be ignored

-Wmodule-file-config-mismatch¶

This diagnostic is an error by default, but the flag -Wno-module-file-config-mismatch can be used to disable the error.

Diagnostic text:

error: module file A cannot be loaded due to a configuration mismatch with the current compilation

-Wmodule-file-extension¶

This diagnostic is enabled by default.

Diagnostic text:

warning: duplicate module file extension block name ‘A’

-Rmodule-import¶

Diagnostic text:

 importing module ‘A’

 into ‘D’

 from ‘B’

-Wmodule-import-in-extern-c¶

This diagnostic is an error by default, but the flag -Wno-module-import-in-extern-c can be used to disable the error.

Diagnostic text:

error: import of C++ module ‘A’ appears within extern “C” language linkage specification

-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 -Wbool-operation, -Wcast-of-sel-type, -Wchar-subscripts, -Wcomment, -Wdelete-non-virtual-dtor, -Wextern-c-compat, -Wfor-loop-analysis, -Wformat, -Wframe-address, -Wimplicit, -Winfinite-recursion, -Wint-in-bool-context, -Wmismatched-tags, -Wmissing-braces, -Wmove, -Wmultichar, -Wobjc-designated-initializers, -Wobjc-flexible-array, -Wobjc-missing-super-calls, -Woverloaded-virtual, -Wprivate-extern, -Wrange-loop-construct, -Wreorder, -Wreturn-type, -Wself-assign, -Wself-move, -Wsizeof-array-argument, -Wsizeof-array-decay, -Wstring-plus-int, -Wtautological-compare, -Wtrigraphs, -Wuninitialized, -Wunknown-pragmas, -Wunused, -Wuser-defined-warnings, -Wvolatile-register-var.

-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

-Wnested-anon-types¶

Diagnostic text:

warning: anonymous types declared in an anonymous 

struct

union

 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()’

 or ‘noexcept’

-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

-Wnon-c-typedef-for-linkage¶

This diagnostic is enabled by default.

Diagnostic text:

warning: anonymous non-C-compatible type given name for linkage purposes by 

typedef

alias

 declaration; add a tag name here

-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-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 

non-POD

non-trivial

 type B through variadic 

function

block

method

constructor

; call will abort at runtime

error: cannot pass 

non-POD

non-trivial

 object of type B to variadic 

function

block

method

constructor

; expected type from format string was D

error: second argument to ‘va_arg’ is of non-POD type A

error: second argument to ‘va_arg’ is of ARC ownership-qualified type A

-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 

function

method

 that requires a non-null return value

-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

-Wnontrivial-memaccess¶

This diagnostic is enabled by default.

Diagnostic text:

warning: 

destination for

source of

first operand of

second operand of

 this B call is a pointer to record C that is not trivial to 

primitive-default-initialize

primitive-copy

-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_

not_retained

retained

 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 

(B and NULL)

(NULL and B)

-Wnull-character¶

This diagnostic is enabled by default.

Diagnostic text:

warning: null character(s) preserved in 

char

string

 literal

warning: null character ignored

-Wnull-conversion¶

This diagnostic is enabled by default.

Diagnostic text:

warning: implicit conversion of 

NULL

nullptr

 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

 if the offset is nonzero

-Wnull-pointer-subtraction¶

Diagnostic text:

warning: performing pointer subtraction with a null pointer 

has

may have

 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-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 

pointer

block pointer

member pointer

function pointer

member function pointer

?

-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-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-literal-compare¶

This diagnostic is enabled by default.

Also controls -Wobjc-string-compare.

Diagnostic text:

warning: direct comparison of 

an array literal

a dictionary literal

a numeric literal

a boxed expression

 has undefined behavior

-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 

array element type

dictionary key type

dictionary value type

 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-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-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-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-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-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 

struct

union

vector

 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: 

class

instance

 method B has a different number of parameters in different translation units (C vs. D)

warning: 

class

instance

 method B has a parameter with a different types in different translation units (C vs. D)

warning: 

class

instance

 method B has incompatible result types in different translation units (C vs. D)

warning: 

class

instance

 method B is variadic in one translation unit and not variadic in another

warning: property A is implemented with 

@synthesize

@dynamic

 in one translation but 

@dynamic

@synthesize

 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 

not a

a

 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)

-Wopencl-unsupported-rgba¶

This diagnostic is enabled by default.

Diagnostic text:

warning: vector component name ‘A’ is a feature from OpenCL version 3.0 onwards

-Wopenmp-51-extensions¶

This diagnostic is enabled by default.

Diagnostic text:

warning: specifying OpenMP directives with [[]] is an OpenMP 5.1 extension

-Wopenmp-clauses¶

This diagnostic is enabled by default.

Diagnostic text:

warning: aligned clause will be ignored because the requested alignment is not a power of 2

warning: allocator with the ‘thread’ trait access has unspecified behavior on ‘A’ directive

warning: the context property ‘A’ is not valid for the context selector ‘B’ and the context set ‘C’; property ignored

warning: the context selector ‘A’ in the context set ‘B’ cannot have a score (‘C’); score ignored

warning: the context selector ‘A’ is not valid for the context set ‘B’; selector ignored

warning: the context selector ‘A’ in context set ‘B’ requires a context property defined in parentheses; selector ignored

warning: the context 

set

selector

property

 ’B’ was used already in the same ‘omp declare variant’ directive; 

set

selector

property

 ignored

warning: ’A’ is not a valid context property for the context selector ‘B’ and the context set ‘C’; property ignored

warning: ’A’ is not a valid context selector for the context set ‘B’; selector ignored

warning: ’A’ is not a valid context set in a `declare variant`; set ignored

warning: expected ‘A’ after the B; ‘A’ assumed

warning: expected identifier or string literal describing a context 

set

selector

property

; 

set

selector

property

 skipped

warning: zero linear step (A 

and other variables in clause 

should probably be const)

warning: more than one ‘device_type’ clause is specified

warning: interop type ‘A’ cannot be specified more than once

warning: valid A clauses start with B; 

token

tokens

 will be ignored

warning: A clause should not be followed by arguments; tokens will be ignored

warning: allocate directive specifies 

default

‘B’

 allocator while previously used 

default

‘D’

-Wopenmp-loop-form¶

This diagnostic is enabled by default.

Diagnostic text:

warning: initialization clause of OpenMP for loop is not in canonical form (‘var = init’ or ‘T var = init’)

warning: OpenMP loop iteration variable cannot have more than 64 bits size and will be narrowed

-Wopenmp-mapping¶

This diagnostic is enabled by default.

Diagnostic text:

warning: Type A is not trivially copyable and not guaranteed to be mapped correctly

-Wopenmp-target¶

This diagnostic is enabled by default.

Also controls -Wopenmp-mapping.

Diagnostic text:

warning: OpenMP offloading target ‘A’ is similar to target ‘B’ already specified; will be ignored

warning: declaration marked as declare target after first use, it may lead to incorrect results

warning: declaration is not declared in any declare target region

-Woption-ignored¶

This diagnostic is enabled by default.

Diagnostic text:

warning: option ‘-ffine-grained-bitfield-accesses’ cannot be enabled together with a sanitizer; flag ignored

warning: ’A’ does not support ‘-B’; flag ignored

warning: ’A’ does not support ‘-moutline’; flag ignored

warning: A requires HVX, use -mhvx/-mhvx= to enable it

warning: option ‘A’ was ignored by the PS4 toolchain, using ‘-fPIC’

warning: ignoring ‘-mlong-calls’ option as it is not currently supported with 

the implicit usage of 

-mabicalls

warning: ignoring ‘A’ option as it is not currently supported for offload arch ‘B’. Use it with an offload arch containing ‘C’ instead

warning: ignoring ‘A’ option as it is not currently supported for target ‘B’

warning: ignoring ‘A’ option as it cannot be used with 

implicit usage of

 -mabicalls and the N64 ABI

warning: ignoring ‘-msmall-data-limit=’ with -mcmodel=large for -fpic or RV64

-Wordered-compare-function-pointers¶

This diagnostic is enabled by default.

Diagnostic text:

warning: ordered comparison of function pointers (A and B)

warning: ordered comparison of function pointers (A and B)

-Wout-of-line-declaration¶

This diagnostic is an error by default, but the flag -Wno-out-of-line-declaration can be used to disable the error.

Diagnostic text:

error: out-of-line declaration of a member must be a definition

-Wout-of-scope-function¶

This diagnostic is enabled by default.

Diagnostic text:

warning: use of out-of-scope declaration of A

 whose type is not compatible with that of an implicit declaration

-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 

C90

ISO C99

C++

 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-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

: B vs C

warning: conflicting distributed object modifiers on return type in declaration of A

warning: conflicting return type in declaration of A

: B vs C

warning: conflicting variadic declaration of method and its implementation

warning: conflicting parameter types in declaration of A: B vs C

warning: conflicting return type in declaration of A: B vs C

-Woverriding-t-option¶

This diagnostic is enabled by default.

Diagnostic text:

warning: overriding ‘A’ option with ‘B’

-Wpacked¶

Diagnostic text:

warning: packed attribute is unnecessary for A

-Wpadded¶

Diagnostic text:

warning: padding 

struct

interface

class

 B with C 

byte

bit

s

 to align anonymous bit-field

warning: padding 

struct

interface

class

 B with C 

byte

bit

s

 to align E

warning: padding size of A with B 

byte

bit

s

 to alignment boundary

-Wparentheses-equality¶

This diagnostic is enabled by default.

Diagnostic text:

warning: equality comparison with extraneous parentheses

-Rpass¶

Diagnostic text:

The text of this diagnostic is not controlled by Clang.

-Rpass-analysis¶

Diagnostic text:

The text of this diagnostic is not controlled by Clang.

 A; allow reordering by specifying ‘#pragma clang loop vectorize(enable)’ before the loop. If the arrays will always be independent specify ‘#pragma clang loop vectorize(assume_safety)’ before the loop or provide the ‘__restrict__’ qualifier with the independent array arguments. Erroneous results will occur if these options are incorrectly applied!

 A; allow reordering by specifying ‘#pragma clang loop vectorize(enable)’ before the loop or by providing the compiler option ‘-ffast-math’.

-Wpass-failed¶

This diagnostic is enabled by default.

Diagnostic text:

The text of this diagnostic is not controlled by Clang.

-Rpass-missed¶

Diagnostic text:

The text of this diagnostic is not controlled by Clang.

-Wpch-date-time¶

This diagnostic is enabled by default.

Diagnostic text:

warning: 

precompiled header

module

 uses __DATE__ or __TIME__

-Wpedantic¶

Also controls -Wbit-int-extension, -Wc++11-extra-semi, -Wc++11-long-long, -Wc++14-attribute-extensions, -Wc++14-binary-literal, -Wc++17-attribute-extensions, -Wc++20-attribute-extensions, -Wc++20-designator, -Wc11-extensions, -Wcomplex-component-init, -Wdelimited-escape-sequence-extension, -Wdollar-in-identifier-extension, -Wembedded-directive, -Wempty-translation-unit, -Wfixed-enum-extension, -Wflexible-array-extensions, -Wfuture-attribute-extensions, -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-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: expression is not an 

integer

integral

 constant expression; folding it to a constant is a GNU extension

warning: designated initializers are a C99 feature

warning: ISO C++ does not allow ‘main’ to be used by a program

warning: C++98 requires an accessible copy constructor for class C when binding a reference to a temporary; was 

private

protected

warning: anonymous 

struct

union

 cannot be ‘B’

warning: ISO C++ requires the name after ‘::~’ to be found in the same scope as the name before ‘::~’

warning: ISO C++ considers this destructor name lookup to be ambiguous

warning: no viable constructor 

copying variable

copying parameter

initializing template parameter

returning object

initializing statement expression result

throwing object

copying member subobject

copying array element

allocating object

copying temporary

initializing base subobject

initializing vector element

capturing value

 of type B; C++98 requires a copy constructor when binding a reference to a temporary

warning: ISO C++ standards before C++17 do not allow new expression for type A to use list-initialization

warning: parameter A was not declared, defaulting to type ‘int’

warning: invoking a pointer to a ‘const &’ member function on an rvalue is a C++20 extension

warning: qualifier in explicit instantiation of A requires a template-id (a typedef is not permitted)

warning: static 

function

variable

 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 

small

large

)

warning: initializer for aggregate is not a compile-time constant

warning: flexible array members are a C99 feature

warning: invalid application of ‘A’ to a function type

warning: invalid application of ‘A’ to a void type

warning: ISO C90 does not allow subscripting non-lvalue array

warning: subscript of a pointer to void is a GNU extension

warning: ISO C forbids taking the address of an expression of type ‘void’

warning: ordered comparison between pointer and zero (A and B) is an extension

warning: equality comparison between function pointer and void pointer (A and B)

warning: arithmetic on

 a

 pointer

s

 to void is a GNU extension

warning: arithmetic on

 a

 pointer

s

 to

 the

 function type

s

 B

 and D

 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 

integral

enumeration

 type C is a C++11 extension

warning: 

assigning to A from B

assigning to different types

passing A to parameter of type B

passing to parameter of different type

returning A from a function with result type B

returning from function with different return type

converting A to type B

converting between types

initializing A with an expression of type B

initializing with expression of different type

sending A to parameter of type B

sending to parameter of different type

casting A to type B

casting between types

 converts between void pointer and function pointer

warning: kernel function A is a member function; this may not be accepted by nvcc

warning: C99 forbids conditional expressions with only one void side

warning: C99 forbids casting nonscalar type A to the same type

warning: in-class initializer for static data member is not a constant expression; folding it to a constant is a GNU extension

warning: types declared in an anonymous 

struct

union

 are a Microsoft extension

warning: format specifies type A but the argument has 

type

underlying type

 B

warning: void 

function

method

block

 A should not return void expression

warning: mixing declarations and code is a C99 extension

warning: 

qualifier in 

static 

array size 

‘[*] ‘

is a C99 feature

warning: Clang permits use of type ‘double’ regardless pragma if ‘cl_khr_fp64’ is supported

warning: extra ‘;’ 

outside of a function

inside a B

inside instance variable list

after member function definition

warning: ’__thread’ before ‘A’

warning: type-less parameter names in function declaration

warning: variable declaration in for loop is a C99-specific feature

warning: compound literals are a C99-specific feature

warning: commas at the end of enumerator lists are a C99-specific feature

warning: commas at the end of enumerator lists are a C++11 extension

warning: enumeration types with a fixed underlying type are a C++11 extension

warning: ’A’ is a C99 extension

warning: use of GNU array range extension

warning: exception specification of ‘…’ is a Microsoft extension

warning: attributes on 

a namespace

an enumerator

 declaration are a C++17 extension

warning: extern templates are a C++11 extension

warning: multi-line // comment

warning: // comments are not allowed in this language

warning: no newline at end of file

warning: use of non-standard escape character ‘\A’

warning: hexadecimal floating constants are a C99 feature

warning: hexadecimal floating literals are a C++17 feature

warning: #ident is a language extension

warning: #warning is a language extension

warning: comma operator in operand of #if

warning: __VA_ARGS__ can only appear in the expansion of a C99 variadic macro

warning: variadic macros are a C99 feature

warning: named variadic macros are a GNU extension

warning: empty macro arguments are a C99 feature

warning: variadic macros are a Clang extension in OpenCL

warning: C requires #line number to be less than A, allowed as extension

warning: macro expansion producing ‘defined’ has undefined behavior

warning: duplicate ‘A’ declaration specifier

warning: ‘enable_if’ is a clang extension

warning: ‘diagnose_if’ is a clang extension

-Wpedantic-core-features¶

Diagnostic text:

warning: A is a core feature in 

OpenCL C

C++ for OpenCL

 version C but not supported on this target

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

 a

 pointer

s

 to

 the

 function type

s

 B

 and D

 is a GNU extension

warning: subscript of a pointer to void is a GNU extension

warning: arithmetic on

 a

 pointer

s

 to void is a GNU extension

warning: invalid application of ‘A’ to a function type

warning: invalid application of ‘A’ to a void type

warning: subtraction of pointers to type A of zero size has undefined behavior

-Wpointer-bool-conversion¶

This diagnostic is enabled by default.

Diagnostic text:

warning: nonnull 

function call

parameter

 ’B’ will evaluate to ‘true’ on first encounter

warning: address of

 function

 array

 ’B’ will always evaluate to ‘true’

-Wpointer-compare¶

This diagnostic is enabled by default.

Diagnostic text:

warning: comparing a pointer to a null character constant; did you mean to compare to 

NULL

(void *)0

?

-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: 

assigning to A from B

assigning to different types

passing A to parameter of type B

passing to parameter of different type

returning A from a function with result type B

returning from function with different return type

converting A to type B

converting between types

initializing A with an expression of type B

initializing with expression of different type

sending A to parameter of type B

sending to parameter of different type

casting A to type B

casting between types

 converts between pointers to integer types 

with different sign

where one is of the unique plain ‘char’ type and the other is not

-Wpointer-type-mismatch¶

This diagnostic is enabled by default.

Diagnostic text:

warning: pointer type mismatch

 (A and B)

-Wpotentially-direct-selector¶

This diagnostic is enabled by default.

Diagnostic text:

warning: @selector expression formed with potentially direct selector A

-Wpotentially-evaluated-expression¶

This diagnostic is enabled by default.

Diagnostic text:

warning: expression with side effects will be evaluated despite being used as an operand to ‘typeid’

-Wpragma-clang-attribute¶

This diagnostic is enabled by default.

Diagnostic text:

warning: unused attribute A in ‘#pragma clang attribute push’ region

-Wpragma-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

-Wpre-c++14-compat¶

Diagnostic text:

warning: use of this statement in a constexpr 

function

constructor

 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 

function

constructor

 is incompatible with C++ standards before C++14

warning: type definition in a constexpr 

function

constructor

 is incompatible with C++ standards before C++14

warning: ‘decltype(auto)’ type specifier is incompatible with C++ standards before C++14

warning: return type deduction is incompatible with C++ standards before C++14

warning: digit separators are incompatible with C++ standards before C++14

warning: generic lambdas are incompatible with C++11

warning: initialized lambda captures are incompatible with C++ standards before C++14

warning: variable templates are incompatible with C++ standards before C++14

-Wpre-c++17-compat¶

Diagnostic text:

warning: class template argument deduction is incompatible with C++ standards before C++17

; for compatibility, use explicit type name B

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: 

if

switch

 initialization statements are incompatible with C++ standards before C++17

warning: inline variables are incompatible with C++ standards before C++17

warning: nested namespace definition is incompatible with C++ standards before C++17

warning: by value capture of ‘*this’ is incompatible with C++ standards before C++17

warning: ‘static_assert’ with no message is incompatible with C++ standards before C++17

warning: non-type template parameters declared with A are incompatible with C++ standards before C++17

warning: template template parameter using ‘typename’ is incompatible with C++ standards before C++17

warning: unicode literals are incompatible with C++ standards before C++17

warning: default scope specifier for attributes is incompatible with C++ standards before C++17

warning: use of multiple declarators in a single using declaration is incompatible with C++ standards before C++17

warning: pack expansion using declaration is incompatible with C++ standards before C++17

warning: ‘begin’ and ‘end’ returning different types (A and B) is incompatible with C++ standards before C++17

-Wpre-c++17-compat-pedantic¶

Also controls -Wpre-c++17-compat.

Diagnostic text:

warning: attributes on 

a namespace

an enumerator

 declaration are incompatible with C++ standards before C++17

warning: hexadecimal floating literals are incompatible with C++ standards before C++17

-Wpre-c++20-compat¶

Diagnostic text:

warning: use of function template name with no prior function template declaration in function call with explicit template arguments is incompatible with C++ standards before C++20

warning: default member initializer for bit-field is incompatible with C++ standards before C++20

warning: use of this statement in a constexpr 

function

constructor

 is incompatible with C++ standards before C++20

warning: constexpr constructor that does not initialize all members is incompatible with C++ standards before C++20

warning: function try block in constexpr 

function

constructor

 is incompatible with C++ standards before C++20

warning: uninitialized variable in a constexpr 

function

constructor

 is incompatible with C++ standards before C++20

warning: constexpr union constructor that does not initialize any member is incompatible with C++ standards before C++20

warning: virtual constexpr functions are incompatible with C++ standards before C++20

warning: decomposition declaration declared 

‘B’

with ‘B’ specifiers

 is incompatible with C++ standards before C++20

warning: defaulted comparison operators are incompatible with C++ standards before C++20

warning: explicitly defaulting this 

default constructor

copy constructor

move constructor

copy assignment operator

move assignment operator

destructor

 with a type different from the implicit type is incompatible with C++ standards before C++20

warning: explicit capture of ‘this’ with a capture default of ‘=’ is incompatible with C++ standards before C++20

warning: explicit(bool) is incompatible with C++ standards before C++20

warning: range-based for loop initialization statements are incompatible with C++ standards before C++20

warning: initialized lambda capture packs are incompatible with C++ standards before C++20

warning: inline nested namespace definition is incompatible with C++ standards before C++20

warning: 

default construction

assignment

 of lambda is incompatible with C++ standards before C++20

warning: explicit template parameter list for lambdas is incompatible with C++ standards before C++20

warning: passing no argument for the ‘…’ parameter of a variadic macro is incompatible with C++ standards before C++20

warning: ’<=>’ operator is incompatible with C++ standards before C++20

warning: non-type template parameter of type A is incompatible with C++ standards before C++20

warning: ‘char8_t’ type specifier is incompatible with C++ standards before C++20

warning: member using declaration naming a non-member enumerator is incompatible with C++ standards before C++20

warning: member using declaration naming non-class ‘A’ enumerator is incompatible with C++ standards before C++20

warning: using declaration naming a scoped enumerator is incompatible with C++ standards before C++20

warning: using enum declaration is incompatible with C++ standards before C++20

-Wpre-c++20-compat-pedantic¶

Also controls -Wpre-c++20-compat.

Diagnostic text:

warning: designated initializers are incompatible with C++ standards before C++20

warning: invoking a pointer to a ‘const &’ member function on an rvalue is incompatible with C++ standards before C++20

-Wpre-c++2b-compat¶

Diagnostic text:

warning: alias declaration in this context is incompatible with C++ standards before C++2b

warning: consteval if is incompatible with C++ standards before C++2b

warning: an attribute specifier sequence in this position is incompatible with C++ standards before C++2b

warning: ‘size_t’ suffix for literals is incompatible with C++ standards before C++2b

-Wpre-c2x-compat¶

Diagnostic text:

warning: ’_BitInt’ is incompatible with C standards before C2x

warning: ’_Static_assert’ with no message is incompatible with C standards before C2x

warning: digit separators are incompatible with C standards before C2x

-Wpre-openmp-51-compat¶

Diagnostic text:

warning: specifying OpenMP directives with [[]] is incompatible with OpenMP standards before OpenMP 5.1

-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-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

s

, B 

has

have

 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

s

, B 

has

have

 mismatched data that will be ignored

-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 

of type B

with attribute ‘B’

without attribute ‘B’

with getter B

with setter B

 was selected for synthesis

-Wpsabi¶

This diagnostic is enabled by default.

Diagnostic text:

warning: AVX vector 

return

argument

 of type B without ‘C’ enabled changes the ABI

-Wrange-loop-construct¶

Diagnostic text:

warning: loop variable A 

of type B binds to a temporary constructed from type C

binds to a temporary constructed from a different type

warning: loop variable A creates a copy from type B

-Wreadonly-iboutlet-property¶

This diagnostic is enabled by default.

Diagnostic text:

warning: readonly IBOutlet property A when auto-synthesized may not work correctly with ‘nib’ loader

-Wreceiver-expr¶

This diagnostic is enabled by default.

Diagnostic text:

warning: receiver type A is not ‘id’ or interface pointer, consider casting it to ‘id’

-Wreceiver-forward-class¶

Some of the diagnostics controlled by this flag are enabled by default.

Diagnostic text:

warning: receiver A is a forward class and corresponding @interface may not exist

warning: receiver type A for instance message is a forward declaration

-Wredundant-consteval-if¶

This diagnostic is enabled by default.

Diagnostic text:

warning: consteval if is always true in an 

unevaluated

immediate

 context

-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’ 

from

to

 class A 

to

from

 its 

virtual base

base at non-zero offset

 B behaves differently from ‘static_cast’

-Wreorder-ctor¶

Diagnostic text:

warning: 

field

base class

 B will be initialized after 

field

base

 D

warning: initializer order does not match the declaration order

-Wreorder-init-list¶

This diagnostic is enabled by default.

Diagnostic text:

warning: ISO C++ requires field designators to be specified in declaration order; field B will be initialized after field A

-Wrequires-super-attribute¶

This diagnostic is enabled by default.

Diagnostic text:

warning: A attribute cannot be applied to 

methods in protocols

dealloc

-Wreserved-identifier¶

Also controls -Wreserved-macro-identifier.

Diagnostic text:

warning: identifier A is reserved because 

<ERROR>

it starts with ‘_’ at global scope

it starts with ‘_’ and has C language linkage

it starts with ‘__’

it starts with ‘_’ followed by a capital letter

it contains ‘__’

-Wrestrict-expansion¶

This diagnostic is enabled by default.

Diagnostic text:

warning: macro A has been marked as unsafe for use in headers

: C

-Wreturn-stack-address¶

This diagnostic is enabled by default.

Diagnostic text:

warning: returning address of label, which is local

warning: returning 

address of

reference to

 local temporary object

warning: 

address of

reference to

 stack memory associated with 

local variable

parameter

 B returned

-Wreturn-std-move¶

This diagnostic flag exists for GCC compatibility, and has no effect in Clang.

-Wreturn-type¶

This diagnostic is enabled by default.

Also controls -Wreturn-type-c-linkage.

Diagnostic text:

error: 

void function

void method

constructor

destructor

 A should not return a value

error: non-void 

function

method

 A should return a value

warning: non-void coroutine does not return a value

warning: non-void function does not return a value

warning: non-void lambda does not return a value

warning: non-void coroutine does not return a value in all control paths

warning: non-void function does not return a value in all control paths

warning: non-void lambda does not return a value in all control paths

error: non-void 

function

method

 A should return a value

-Wreturn-type-c-linkage¶

This diagnostic is enabled by default.

Diagnostic text:

warning: A has C-linkage specified, but returns user-defined type B which is incompatible with C

warning: A has C-linkage specified, but returns incomplete type B which could be incompatible with C

-Wrewrite-not-bool¶

This diagnostic is enabled by default.

Diagnostic text:

warning: ISO C++20 requires return type of selected ‘operator==’ function for rewritten ‘B’ comparison to be ‘bool’, not A

-Wrtti¶

This diagnostic is enabled by default.

Diagnostic text:

warning: dynamic_cast will not work since RTTI data is disabled by 

-fno-rtti-data

/GR-

warning: typeid will not work since RTTI data is disabled by 

-fno-rtti-data

/GR-

-Rsanitize-address¶

Diagnostic text:

 -fsanitize-address-field-padding applied to A

 -fsanitize-address-field-padding ignored for A because it 

is not C++

is packed

is a union

is trivially copyable

has trivial destructor

is standard layout

is in a ignorelisted file

is ignorelisted

-Wsection¶

This diagnostic is enabled by default.

Diagnostic text:

warning: section attribute is specified on redeclared variable

warning: duplicate code segment specifiers

warning: 

codeseg

section

 does not match previous declaration

-Wselector-type-mismatch¶

Diagnostic text:

warning: several methods with selector A of mismatched types are found for the @selector expression

-Wself-assign-field¶

This diagnostic is enabled by default.

Diagnostic text:

warning: assigning 

field

instance variable

 to itself

-Wself-move¶

Diagnostic text:

warning: explicitly moving variable of type A to itself

-Wsemicolon-before-method-body¶

Diagnostic text:

warning: semicolon before method body is ignored

-Wsentinel¶

This diagnostic is enabled by default.

Diagnostic text:

warning: missing sentinel in 

function call

method dispatch

block call

warning: not enough variable arguments in A declaration to fit a sentinel

-Wserialized-diagnostics¶

This diagnostic is enabled by default.

Diagnostic text:

warning: unable to open file A for serializing diagnostics (B)

warning: Received warning after diagnostic serialization teardown was underway: A

warning: unable to merge a subprocess’s serialized diagnostics

-Wshadow¶

Some of the diagnostics controlled by this flag are enabled by default.

Also controls -Wshadow-field-in-constructor-modified, -Wshadow-ivar.

Diagnostic text:

warning: declaration shadows a 

local variable

variable in C

static data member of C

field of C

typedef in C

type alias in C

structured binding

-Wshadow-field¶

Diagnostic text:

warning: 

parameter

non-static data member

 A 

of B 

shadows member inherited from type C

-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 

local variable

variable in C

static data member of C

field of C

typedef in C

type alias in C

structured binding

-Wshift-negative-value¶

This diagnostic is enabled by default.

Diagnostic text:

warning: shifting a negative signed value is undefined

-Wshift-op-parentheses¶

This diagnostic is enabled by default.

Diagnostic text:

warning: operator ‘A’ has lower precedence than ‘B’; ‘B’ will be evaluated first

-Wshift-overflow¶

This diagnostic is enabled by default.

Diagnostic text:

warning: signed shift result (A) requires B bits to represent, but C only has D bits

-Wshift-sign-overflow¶

Diagnostic text:

warning: signed shift result (A) sets the sign bit of the shift expression’s type (B) and becomes negative

-Wshorten-64-to-32¶

Diagnostic text:

warning: implicit conversion loses integer precision: A to B

-Wsign-compare¶

Diagnostic text:

warning: comparison of integers of different signs: A and B

-Wsign-conversion¶

Diagnostic text:

warning: implicit conversion changes signedness: A to B

warning: operand of ? changes signedness: A to B

warning: the resulting value is always non-negative after implicit conversion

-Wsigned-enum-bitfield¶

Diagnostic text:

warning: enums in the Microsoft ABI are signed integers by default; consider giving the enum A an unsigned underlying type to make this code portable

-Wsigned-unsigned-wchar¶

This diagnostic is an error by default, but the flag -Wno-signed-unsigned-wchar can be used to disable the error.

Diagnostic text:

error: ’A’ cannot be signed or unsigned

-Wsizeof-array-argument¶

This diagnostic is enabled by default.

Diagnostic text:

warning: sizeof on array function parameter will return size of A instead of B

-Wsizeof-array-decay¶

This diagnostic is enabled by default.

Diagnostic text:

warning: sizeof on pointer operation will return size of A instead of B

-Wsizeof-array-div¶

This diagnostic is enabled by default.

Diagnostic text:

warning: expression does not compute the number of elements in this array; element type is A, not B

-Wsizeof-pointer-div¶

This diagnostic is enabled by default.

Diagnostic text:

warning: ’A’ will return the size of the pointer, not the array itself

-Wsizeof-pointer-memaccess¶

This diagnostic is enabled by default.

Diagnostic text:

warning: ’A’ call operates on objects of type B while the size is based on a different type C

warning: argument to ‘sizeof’ in A call is the same pointer type B as the 

destination

source

; expected D or an explicit length

-Wslash-u-filename¶

This diagnostic is enabled by default.

Diagnostic text:

warning: ’/UA’ treated as the ‘/U’ option

-Wslh-asm-goto¶

This diagnostic is enabled by default.

Diagnostic text:

warning: Speculative load hardening does not protect functions with asm goto

-Wsometimes-uninitialized¶

Diagnostic text:

warning: variable A is 

used

captured

 uninitialized whenever 

‘D’ condition is 

true

false

‘D’ loop 

is entered

exits because its condition is false

‘D’ loop 

condition is true

exits because its condition is false

switch D is taken

its declaration is reached

D is called

-Wsource-mgr¶

This diagnostic is enabled by default.

Diagnostic text:

The text of this diagnostic is not controlled by Clang.

-Wsource-uses-openmp¶

Some of the diagnostics controlled by this flag are enabled by default.

Diagnostic text:

warning: ’#pragma omp declare variant’ cannot be applied to the function that was defined already; the original function might be used

warning: ’#pragma omp declare variant’ cannot be applied for function after first usage; the original function might be used

warning: variant function in ‘#pragma omp declare variant’ is itself marked as ‘#pragma omp declare variant’

warning: score expressions in the OpenMP context selector need to be constant; A is not and will be ignored

warning: OpenMP only allows an ordered construct with the simd clause nested in a simd construct

warning: unexpected ‘#pragma omp …’ in program

warning: isa trait ‘A’ is not known to the current target; verify the spelling or consider restricting the context selector with the ‘arch’ selector further

-Wspir-compat¶

Diagnostic text:

warning: sampler initializer has invalid A bits

-Wstack-exhausted¶

This diagnostic is enabled by default.

Diagnostic text:

warning: stack nearly exhausted; compilation time may suffer, and crashes due to stack overflow are likely

-Wstack-protector¶

This diagnostic is enabled by default.

Diagnostic text:

warning: Unable to protect inline asm that clobbers stack pointer against stack clash

-Wstatic-in-inline¶

Some of the diagnostics controlled by this flag are enabled by default.

Diagnostic text:

warning: static 

function

variable

 B is used in an inline function with external linkage

warning: static 

function

variable

 B is used in an inline function with external linkage

-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-overflow¶

This diagnostic flag exists for GCC compatibility, and has no effect in Clang.

-Wstrict-prototypes¶

Diagnostic text:

warning: this 

function declaration is not

block declaration is not

old-style function definition is not preceded by

 a prototype

-Wstring-compare¶

This diagnostic is enabled by default.

Diagnostic text:

warning: result of comparison against 

a string literal

@encode

 is unspecified (use an explicit string comparison function instead)

-Wstring-concatenation¶

Diagnostic text:

warning: suspicious concatenation of string literals in an array initialization; did you mean to separate the elements with a comma?

-Wstring-conversion¶

Diagnostic text:

warning: implicit conversion turns string literal into bool: A to B

-Wstring-plus-char¶

This diagnostic is enabled by default.

Diagnostic text:

warning: adding A to a string pointer does not append to the string

-Wstring-plus-int¶

This diagnostic is enabled by default.

Diagnostic text:

warning: adding A to a string does not append to the string

-Wstrlcpy-strlcat-size¶

This diagnostic is enabled by default.

Diagnostic text:

warning: size argument in A call appears to be size of the source; expected the size of the destination

-Wstrncat-size¶

This diagnostic is enabled by default.

Diagnostic text:

warning: the value of the size argument in ‘strncat’ is too large, might lead to a buffer overflow

warning: size argument in ‘strncat’ call appears to be size of the source

warning: the value of the size argument to ‘strncat’ is wrong

-Wsuggest-override¶

Diagnostic text:

warning: A overrides a member function but is not marked ‘override’

-Wsuper-class-method-mismatch¶

Diagnostic text:

warning: method parameter type 

A does not match super class method parameter type B

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’

-Wswift-name-attribute¶

This diagnostic is enabled by default.

Diagnostic text:

warning: A attribute cannot be applied to this declaration

warning: A attribute cannot be applied to a 

function

method

 with no parameters

warning: A attribute argument must be a string literal specifying a Swift function name

warning: A attribute for getter must not have any parameters besides ‘self:’

warning: A attribute has invalid identifier for the 

base

context

parameter

 name

warning: A attribute is missing parameter label clause

warning: A attribute cannot specify more than one ‘self:’ parameter

warning: too 

few

many

 parameters in the signature specified by the B attribute (expected C; got D)

warning: A attribute for setter must have one parameter for new value

warning: A attribute for ‘subscript’ getter cannot have a ‘newValue:’ parameter

warning: A attribute for ‘subscript’ must 

be a getter or setter

have at least one parameter

have a ‘self:’ parameter

warning: A attribute for ‘subscript’ setter cannot have multiple ‘newValue:’ parameters

warning: A attribute for ‘subscript’ setter must have a ‘newValue:’ parameter

-Wswitch¶

This diagnostic is enabled by default.

Diagnostic text:

warning: overflow converting case value to switch condition type (A to B)

warning: 

enumeration value B not handled in switch

enumeration values B and C not handled in switch

enumeration values B, C, and D not handled in switch

A enumeration values not handled in switch: B, C, D…

warning: case value not in enumerated type A

-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: 

enumeration value B not explicitly handled in switch

enumeration values B and C not explicitly handled in switch

enumeration values B, C, and D not explicitly handled in switch

A enumeration values not explicitly handled in switch: B, C, D…

-Wsync-fetch-and-nand-semantics-changed¶

This diagnostic is enabled by default.

Diagnostic text:

warning: the semantics of this intrinsic changed with GCC version 4.4 - the newer semantics are provided here

-Wsynth¶

This diagnostic flag exists for GCC compatibility, and has no effect in Clang.

-Wtarget-clones-mixed-specifiers¶

This diagnostic is enabled by default.

Diagnostic text:

warning: mixing ‘target_clones’ specifier mechanisms is permitted for GCC compatibility; use a comma separated sequence of string literals, or a string literal containing a comma-separated list of versions

-Wtautological-bitwise-compare¶

Diagnostic text:

warning: bitwise comparison always evaluates to 

false

true

warning: bitwise or with non-zero value always evaluates to true

-Wtautological-constant-compare¶

This diagnostic is enabled by default.

Also controls -Wtautological-constant-out-of-range-compare.

Diagnostic text:

warning: converting the result of ‘?:’ with integer constants to a boolean always evaluates to ‘true’

warning: converting the result of ‘<<’ to a boolean always evaluates to 

false

true

warning: result of comparison of 

constant A

true

false

 with 

expression of type C

boolean expression

 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-pointer-compare¶

This diagnostic is enabled by default.

Diagnostic text:

warning: comparison of nonnull 

function call

parameter

 ’B’ 

not 

equal to a null pointer is ‘

true

false

‘ on first encounter

warning: comparison of 

address of

function

array

 ’B’ 

not 

equal to a null pointer is always 

true

false

-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 

true

false

warning: ‘this’ pointer cannot be null in well-defined C++ code; comparison may be assumed to always evaluate to 

true

false

-Wtcb-enforcement¶

This diagnostic is enabled by default.

Diagnostic text:

warning: calling A is a violation of trusted computing base ‘B’

-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 

‘C’

‘C’ exclusively

warning: calling function A requires negative capability ‘B’

warning: A ’B’ is acquired exclusively and shared in the same scope

warning: A ’B’ is not held on every path through here

warning: A ’B’ is still held at the end of function

warning: releasing A ’B’ that was not held

warning: releasing A ’B’ using 

shared

exclusive

 access, expected 

shared

exclusive

 access

warning: 

reading

writing

 the value pointed to by A requires holding 

any mutex

any mutex exclusively

warning: 

reading

writing

 the value pointed to by B requires holding A 

‘C’

‘C’ exclusively

warning: 

reading

writing

 variable A requires holding 

any mutex

any mutex exclusively

warning: 

reading

writing

 variable B requires holding A 

‘C’

‘C’ exclusively

-Wthread-safety-attributes¶

Diagnostic text:

warning: A attribute requires arguments whose type is annotated with ‘capability’ attribute; type here is B

warning: A attribute can only be applied in a context annotated with ‘capability’ attribute

warning: A only applies to pointer types; type here is B

warning: ignoring A attribute because its argument is invalid

warning: A attribute without capability arguments refers to ‘this’, but B isn’t annotated with ‘capability’ or ‘scoped_lockable’ attribute

warning: A attribute without capability arguments can only be applied to non-static methods of a class

-Wthread-safety-precise¶

Diagnostic text:

warning: calling function B requires holding A 

‘C’

‘C’ exclusively

warning: 

reading

writing

 the value pointed to by B requires holding A 

‘C’

‘C’ exclusively

warning: 

reading

writing

 variable B requires holding A 

‘C’

‘C’ exclusively

-Wthread-safety-reference¶

Diagnostic text:

warning: passing variable B by reference requires holding A 

‘C’

‘C’ exclusively

warning: passing the value that B points to by reference requires holding A 

‘C’

‘C’ exclusively

-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-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 

that requires D

warning: this type tag was not designed to be used with this function

-Wtypedef-redefinition¶

This diagnostic is enabled by default.

Diagnostic text:

warning: redefinition of typedef A is a C11 feature

-Wtypename-missing¶

This diagnostic is enabled by default.

Diagnostic text:

warning: missing ‘typename’ prior to dependent type name ‘AB’

-Wunable-to-open-stats-file¶

This diagnostic is enabled by default.

Diagnostic text:

warning: unable to open statistics output file ‘A’: ‘B’

-Wunaligned-access¶

Diagnostic text:

warning: field B within A is less aligned than C and is usually due to A being packed, which can lead to unaligned accesses

-Wunavailable-declarations¶

This diagnostic is enabled by default.

Diagnostic text:

warning: A may be unavailable because the receiver type is unknown

-Wundeclared-selector¶

Diagnostic text:

warning: undeclared selector A

warning: undeclared selector A; did you mean B?

-Wundef¶

Diagnostic text:

warning: A is not defined, evaluates to 0

-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-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: 

function

variable

 B has internal linkage but is not defined

-Wundefined-internal-type¶

Diagnostic text:

warning: ISO C++ requires a definition in this translation unit for 

function

variable

 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

-Wunicode¶

This diagnostic is enabled by default.

Diagnostic text:

warning: empty delimited universal character name; treating as ‘\’ ‘u’ ‘{‘ ‘}’

warning: incomplete delimited universal character name; treating as ‘\’ ‘u’ ‘{‘ identifier

warning: incomplete universal character name; treating as ‘\’ followed by identifier

warning: \A used with no following hex digits; treating as ‘\’ followed by identifier

warning: universal character name refers to a surrogate character

warning: universal character names are only valid in C99 or C++; treating as ‘\’ followed by identifier

warning: universal character names are only valid in C99 or C++

-Wunicode-homoglyph¶

This diagnostic is enabled by default.

Diagnostic text:

warning: treating Unicode character <U+A> as identifier character rather than as ‘B’ symbol

-Wunicode-whitespace¶

This diagnostic is enabled by default.

Diagnostic text:

warning: treating Unicode character as whitespace

-Wunicode-zero-width¶

This diagnostic is enabled by default.

Diagnostic text:

warning: identifier contains Unicode character <U+A> that is invisible in some environments

-Wuninitialized¶

Some of the diagnostics controlled by this flag are enabled by default.

Also controls -Wsometimes-uninitialized, -Wstatic-self-init, -Wuninitialized-const-reference.

Diagnostic text:

warning: base class A is uninitialized when used here to access B

warning: field A is uninitialized when used here

warning: reference A is not yet bound to a value when used here

warning: block pointer variable A is 

uninitialized

null

 when captured by block

warning: variable A is uninitialized when used within its own initialization

warning: reference A is not yet bound to a value when used within its own initialization

warning: variable A is uninitialized when 

used here

captured by block

-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-assumption¶

This diagnostic is enabled by default.

Diagnostic text:

warning: unknown assumption string ‘A’; attribute is potentially ignored

-Wunknown-attributes¶

This diagnostic is enabled by default.

Diagnostic text:

warning: unknown attribute A ignored

-Wunknown-cuda-version¶

This diagnostic is enabled by default.

Diagnostic text:

warning: CUDA versionA is newer than the latest

 partially

 supported version C

warning: CUDA version A is only partially supported

-Wunknown-pragmas¶

Some of the diagnostics controlled by this flag are enabled by default.

Diagnostic text:

warning: expected ‘ON’ or ‘OFF’ or ‘DEFAULT’ in pragma

warning: expected end of directive in pragma

warning: unknown pragma in STDC namespace

warning: pragma diagnostic pop could not pop, no matching push

warning: pragma diagnostic expected ‘error’, ‘warning’, ‘ignored’, ‘fatal’, ‘push’, or ‘pop’

warning: pragma diagnostic expected option name (e.g. “-Wundef”)

warning: unexpected token in pragma diagnostic

warning: #pragma execution_character_set expected ‘A’

warning: #pragma execution_character_set invalid value ‘A’, only ‘UTF-8’ is supported

warning: #pragma execution_character_set expected ‘push’ or ‘pop’

warning: unknown pragma ignored

warning: pragma include_alias expected ‘A’

warning: pragma include_alias expected include filename

warning: angle-bracketed include <A> cannot be aliased to double-quoted include “B”

warning: double-quoted include “A” cannot be aliased to angle-bracketed include <B>

warning: #pragma warning expected ‘A’

warning: #pragma warning expected a warning number

warning: #pragma warning(push, level) requires a level between 0 and 4

warning: #pragma warning expected ‘push’, ‘pop’, ‘default’, ‘disable’, ‘error’, ‘once’, ‘suppress’, 1, 2, 3, or 4

warning: pragma STDC FENV_ROUND is not supported

-Wunknown-sanitizers¶

This diagnostic is enabled by default.

Diagnostic text:

warning: unknown sanitizer ‘A’ ignored

-Wunknown-warning-option¶

This diagnostic is enabled by default.

Diagnostic text:

warning: unknown warning group ‘A’, ignored

warning: unknown 

warning

remark

 option ‘B’

; did you mean ‘D’?

warning: unknown A warning specifier: ‘B’

-Wunneeded-internal-declaration¶

Diagnostic text:

warning: 

function

variable

 B is not needed and will not be emitted

warning: ‘static’ function A declared in header file should be declared ‘static inline’

-Wunsequenced¶

This diagnostic is enabled by default.

Diagnostic text:

warning: multiple unsequenced modifications to A

warning: unsequenced modification and access to A

-Wunsupported-abi¶

This diagnostic is enabled by default.

Diagnostic text:

warning: float ABI ‘A’ is not supported by current library

-Wunsupported-abs¶

This diagnostic is enabled by default.

Diagnostic text:

warning: ignoring ‘-mabs=2008’ option because the ‘A’ architecture does not support it

warning: ignoring ‘-mabs=legacy’ option because the ‘A’ architecture does not support it

-Wunsupported-availability-guard¶

This diagnostic is enabled by default.

Diagnostic text:

warning: 

@available

__builtin_available

 does not guard availability here; use if (

@available

__builtin_available

) 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 

already instantiated

explicitly specialized

 base class template without dll attribute is not supported

-Wunsupported-floating-point-opt¶

This diagnostic is enabled by default.

Diagnostic text:

warning: overriding currently unsupported use of floating point exceptions on this target

warning: overriding currently unsupported rounding mode on this target

-Wunsupported-friend¶

This diagnostic is enabled by default.

Diagnostic text:

warning: dependent nested name specifier ‘A’ for friend template declaration is not supported; ignoring this friend declaration

warning: dependent nested name specifier ‘A’ for friend class declaration is not supported; turning off access control for B

-Wunsupported-gpopt¶

This diagnostic is enabled by default.

Diagnostic text:

warning: ignoring ‘-mgpopt’ option as it cannot be used with 

the implicit usage of 

-mabicalls

-Wunsupported-nan¶

This diagnostic is enabled by default.

Diagnostic text:

warning: ignoring ‘-mnan=2008’ option because the ‘A’ architecture does not support it

warning: ignoring ‘-mnan=legacy’ option because the ‘A’ architecture does not support it

-Wunsupported-target-opt¶

This diagnostic is enabled by default.

Diagnostic text:

warning: debug information option ‘A’ is not supported; requires DWARF-C but target ‘B’ only provides DWARF-D

warning: debug information option ‘A’ is not supported for target ‘B’

-Wunsupported-visibility¶

This diagnostic is enabled by default.

Diagnostic text:

warning: target does not support ‘protected’ visibility; using ‘default’

-Wunusable-partial-specialization¶

This diagnostic is an error by default, but the flag -Wno-unusable-partial-specialization can be used to disable the error.

Diagnostic text:

error: 

class

variable

 template partial specialization contains 

a template parameter

template parameters

 that cannot be deduced; this partial specialization will never be used

-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

 when ‘D’ is present

warning: A: ‘B’ input unused in cpp mode

warning: ignoring invalid /arch: argument ‘A’; for 

64

32

-bit expected one of C

warning: A: previously preprocessed input

 unused when ‘C’ is present

warning: argument unused during compilation: ‘A’

warning: the flag ‘A’ has been deprecated and will be ignored

warning: ignoring -fdiscard-value-names for LLVM Bitcode

warning: ignoring -fverify-debuginfo-preserve-export=A because -fverify-debuginfo-preserve wasn’t enabled

-Wunused-comparison¶

This diagnostic is enabled by default.

Diagnostic text:

warning: 

equality

inequality

relational

three-way

 comparison result unused

-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-property-ivar¶

Diagnostic text:

warning: ivar A which backs the property is not referenced in this property’s accessor

-Wunused-result¶

This diagnostic is enabled by default.

Diagnostic text:

warning: ignoring return value of function declared with A attribute

warning: ignoring return value of function declared with A attribute: B

-Wunused-value¶

This diagnostic is enabled by default.

Also controls -Wunevaluated-expression, -Wunused-comparison, -Wunused-result.

Diagnostic text:

warning: ignoring return value of function declared with A attribute

warning: left operand of comma operator has no effect

warning: ignoring temporary created by a constructor declared with A attribute

warning: ignoring temporary created by a constructor declared with A attribute: B

warning: container access result unused - container access should not be used for side effects

warning: expression result unused

warning: expression result unused; should this cast be to ‘void’?

-Wunused-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

; no literal will invoke this operator

-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 

an object that undergoes default argument promotion

an object of reference type

a parameter declared with the ‘register’ keyword

 to ‘va_start’ has undefined behavior

-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 

assigning to A from B

assigning to different types

passing A to parameter of type B

passing to parameter of different type

returning A from a function with result type B

returning from function with different return type

converting A to type B

converting between types

initializing A with an expression of type B

initializing with expression of different type

sending A to parameter of type B

sending to parameter of different type

casting A to type B

casting between types

-Wvexing-parse¶

This diagnostic is enabled by default.

Diagnostic text:

warning: empty parentheses interpreted as a function declaration

warning: parentheses were disambiguated as a function declaration

warning: parentheses were disambiguated as redundant parentheses around declaration of variable named A

-Wvisibility¶

This diagnostic is enabled by default.

Diagnostic text:

warning: declaration of A will not be visible outside of this function

warning: redefinition of A will not be visible outside of this function

-Wvla-extension¶

Diagnostic text:

warning: variable length arrays are a C99 feature

-Wvoid-ptr-dereference¶

This diagnostic is enabled by default.

Diagnostic text:

warning: ISO C++ does not allow indirection on operand of type A

-Wwasm-exception-spec¶

This diagnostic is enabled by default.

Diagnostic text:

warning: dynamic exception specifications with types are currently ignored in wasm

-Wweak-template-vtables¶

Diagnostic text:

warning: this warning is no longer in use and will be removed in the next release

-Wweak-vtables¶

Diagnostic text:

warning: A has no out-of-line virtual method definitions; its vtable will be emitted in every translation unit

-Wxor-used-as-pow¶

This diagnostic is enabled by default.

Diagnostic text:

warning: result of ‘A’ is B; did you mean exponentiation?

warning: result of ‘A’ is B; did you mean ‘C’?

warning: result of ‘A’ is B; did you mean ‘C’ (D)?


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4