aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Wennborg <hans@hanshq.net>2019-03-15 08:44:10 +0000
committerHans Wennborg <hans@hanshq.net>2019-03-15 08:44:10 +0000
commitd2298e74235598f15594fe2c99bbac870a507c59 (patch)
tree694d0a63fb0427625f84df34107b96e293c7929c
parent2ffb1b0413efa9a24eb3c49e710e36f92e2cb50b (diff)
downloadllvm-d2298e74235598f15594fe2c99bbac870a507c59.zip
llvm-d2298e74235598f15594fe2c99bbac870a507c59.tar.gz
llvm-d2298e74235598f15594fe2c99bbac870a507c59.tar.bz2
Re-generate DiagnosticsReference.rst (PR41080)llvmorg-8.0.0
$ bin/clang-tblgen -gen-diag-docs -I../cfe.src/include -I../cfe.src/include/clang/Basic/ ../cfe.src/include/clang/Basic/Diagnostic.td -o ../cfe.src/docs/DiagnosticsReference.rst llvm-svn: 356240
-rw-r--r--clang/docs/DiagnosticsReference.rst2107
1 files changed, 1431 insertions, 676 deletions
diff --git a/clang/docs/DiagnosticsReference.rst b/clang/docs/DiagnosticsReference.rst
index 7d9b1e8..ef0218e 100644
--- a/clang/docs/DiagnosticsReference.rst
+++ b/clang/docs/DiagnosticsReference.rst
@@ -207,17 +207,6 @@ This diagnostic is enabled by default.
Controls `-Wpointer-bool-conversion`_, `-Wstring-compare`_, `-Wtautological-pointer-compare`_.
--Waddress-of-array-temporary
-----------------------------
-This diagnostic is enabled by default.
-
-**Diagnostic text:**
-
-+---------------------------------------------------------------------------------------------------------------------------------------------+
-|:warning:`warning:` |nbsp| :diagtext:`pointer is initialized by a temporary array, which will be destroyed at the end of the full-expression`|
-+---------------------------------------------------------------------------------------------------------------------------------------------+
-
-
-Waddress-of-packed-member
--------------------------
This diagnostic is enabled by default.
@@ -244,21 +233,6 @@ This diagnostic is an error by default, but the flag ``-Wno-address-of-temporary
------------------
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
--Waligned-allocation-unavailable
---------------------------------
-This diagnostic is an error by default, but the flag ``-Wno-aligned-allocation-unavailable`` can be used to disable the error.
-
-**Diagnostic text:**
-
-+--------------------------------------------------+--------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|:error:`error:` |nbsp| :diagtext:`aligned` |nbsp| |+------------------------+| |nbsp| :diagtext:`function of type '`:placeholder:`B`:diagtext:`' is only available on` |nbsp| :placeholder:`C` |nbsp| :placeholder:`D` |nbsp| :diagtext:`or newer`|
-| ||:diagtext:`allocation` || |
-| |+------------------------+| |
-| ||:diagtext:`deallocation`|| |
-| |+------------------------+| |
-+--------------------------------------------------+--------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-
-
-Wall
-----
Some of the diagnostics controlled by this flag are enabled by default.
@@ -473,6 +447,17 @@ This diagnostic is enabled by default.
+-----------------------------------------------------------------------------------------------------------------------------+
+-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:`error:` |nbsp| :diagtext:`argument value` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is outside the valid range \[`:placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`\]`|
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
-Warray-bounds
--------------
This diagnostic is enabled by default.
@@ -572,13 +557,41 @@ This diagnostic is enabled by default.
-Wat-protocol
-------------
+This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
+
+-Watimport-in-framework-header
+------------------------------
This diagnostic is enabled by default.
**Diagnostic text:**
-+-------------------------------------------------------------------------------------------------------------------+
-|:warning:`warning:` |nbsp| :diagtext:`@protocol is using a forward protocol declaration of` |nbsp| :placeholder:`A`|
-+-------------------------------------------------------------------------------------------------------------------+
++------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`use of '@import' in framework header is discouraged, including this header requires -fmodules`|
++------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Watomic-alignment
+------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------+------------------------+------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`atomic operation may incur significant performance penalty`|
+| ||:diagtext:`large` || |
+| |+----------------------+| |
+| ||:diagtext:`misaligned`|| |
+| |+----------------------+| |
++---------------------------+------------------------+------------------------------------------------------------------------------+
+
+
+-Watomic-implicit-seq-cst
+-------------------------
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`implicit use of sequentially-consistent atomic may incur stronger memory barriers than necessary`|
++---------------------------------------------------------------------------------------------------------------------------------------+
-Watomic-memory-ordering
@@ -690,6 +703,20 @@ This diagnostic is enabled by default.
|:warning:`warning:` |nbsp| :diagtext:`'unavailable' availability overrides all other availability information`|
+--------------------------------------------------------------------------------------------------------------+
++------------------------------------------------------------------------------+----------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`ignoring availability attribute` |nbsp| |+--------------------------------------+|
+| ||:diagtext:`on '+load' method` ||
+| |+--------------------------------------+|
+| ||:diagtext:`with constructor attribute`||
+| |+--------------------------------------+|
+| ||:diagtext:`with destructor attribute` ||
+| |+--------------------------------------+|
++------------------------------------------------------------------------------+----------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`only 'unavailable' and 'deprecated' are supported for Swift availability`|
++---------------------------------------------------------------------------------------------------------------+
+
+------------------------------------------------------------------------------------------------------------------------+
|:warning:`warning:` |nbsp| :diagtext:`unknown platform` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in availability macro`|
+------------------------------------------------------------------------------------------------------------------------+
@@ -779,31 +806,44 @@ Also controls `-Wc++98-compat-bind-to-temporary-copy`_.
| |+---------------------+|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+
-+--------------------------------------------------------------------+-----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
-|:warning:`warning:` |nbsp| :diagtext:`no viable constructor` |nbsp| |+---------------------------------------+| |nbsp| :diagtext:`of type` |nbsp| :placeholder:`B`:diagtext:`; C++98 requires a copy constructor when binding a reference to a temporary`|
-| ||:diagtext:`copying variable` || |
-| |+---------------------------------------+| |
-| ||:diagtext:`copying parameter` || |
-| |+---------------------------------------+| |
-| ||:diagtext:`returning object` || |
-| |+---------------------------------------+| |
-| ||:diagtext:`throwing object` || |
-| |+---------------------------------------+| |
-| ||:diagtext:`copying member subobject` || |
-| |+---------------------------------------+| |
-| ||:diagtext:`copying array element` || |
-| |+---------------------------------------+| |
-| ||:diagtext:`allocating object` || |
-| |+---------------------------------------+| |
-| ||:diagtext:`copying temporary` || |
-| |+---------------------------------------+| |
-| ||:diagtext:`initializing base subobject`|| |
-| |+---------------------------------------+| |
-| ||:diagtext:`initializing vector element`|| |
-| |+---------------------------------------+| |
-| ||:diagtext:`capturing value` || |
-| |+---------------------------------------+| |
-+--------------------------------------------------------------------+-----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
++--------------------------------------------------------------------+------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`no viable constructor` |nbsp| |+----------------------------------------------------+| |nbsp| :diagtext:`of type` |nbsp| :placeholder:`B`:diagtext:`; C++98 requires a copy constructor when binding a reference to a temporary`|
+| ||:diagtext:`copying variable` || |
+| |+----------------------------------------------------+| |
+| ||:diagtext:`copying parameter` || |
+| |+----------------------------------------------------+| |
+| ||:diagtext:`returning object` || |
+| |+----------------------------------------------------+| |
+| ||:diagtext:`initializing statement expression result`|| |
+| |+----------------------------------------------------+| |
+| ||:diagtext:`throwing object` || |
+| |+----------------------------------------------------+| |
+| ||:diagtext:`copying member subobject` || |
+| |+----------------------------------------------------+| |
+| ||:diagtext:`copying array element` || |
+| |+----------------------------------------------------+| |
+| ||:diagtext:`allocating object` || |
+| |+----------------------------------------------------+| |
+| ||:diagtext:`copying temporary` || |
+| |+----------------------------------------------------+| |
+| ||:diagtext:`initializing base subobject` || |
+| |+----------------------------------------------------+| |
+| ||:diagtext:`initializing vector element` || |
+| |+----------------------------------------------------+| |
+| ||:diagtext:`capturing value` || |
+| |+----------------------------------------------------+| |
++--------------------------------------------------------------------+------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wbinding-in-condition
+----------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`ISO C++17 does not permit structured binding declaration in a condition`|
++--------------------------------------------------------------------------------------------------------------+
-Wbitfield-constant-conversion
@@ -944,9 +984,9 @@ This diagnostic is enabled by default.
**Diagnostic text:**
-+------------------------------------------------------------------------------------------------------+
-|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will always overflow destination buffer`|
-+------------------------------------------------------------------------------------------------------+
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' will always overflow; destination buffer has size` |nbsp| :placeholder:`B`:diagtext:`, but size argument is` |nbsp| :placeholder:`C`|
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-Wbuiltin-requires-header
@@ -1180,28 +1220,6 @@ Also controls `-Wc++11-extra-semi`_, `-Wc++11-inline-namespace`_, `-Wc++11-long-
|:warning:`warning:` |nbsp| :diagtext:`default template arguments for a function template are a C++11 extension`|
+---------------------------------------------------------------------------------------------------------------+
-+-------------------------------------------------------------------+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|:warning:`warning:` |nbsp| :diagtext:`first declaration of` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`specialization of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`outside namespace` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is a C++11 extension`|
-| ||:diagtext:`class template` || |
-| |+-------------------------------------+| |
-| ||:diagtext:`class template partial` || |
-| |+-------------------------------------+| |
-| ||:diagtext:`variable template` || |
-| |+-------------------------------------+| |
-| ||:diagtext:`variable template partial`|| |
-| |+-------------------------------------+| |
-| ||:diagtext:`function template` || |
-| |+-------------------------------------+| |
-| ||:diagtext:`member function` || |
-| |+-------------------------------------+| |
-| ||:diagtext:`static data member` || |
-| |+-------------------------------------+| |
-| ||:diagtext:`member class` || |
-| |+-------------------------------------+| |
-| ||:diagtext:`member enumeration` || |
-| |+-------------------------------------+| |
-+-------------------------------------------------------------------+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-
+------------------------------------------------------------------------------+
|:warning:`warning:` |nbsp| :diagtext:`'typename' occurs outside of a template`|
+------------------------------------------------------------------------------+
@@ -1402,6 +1420,10 @@ Some of the diagnostics controlled by this flag are enabled by default.
**Diagnostic text:**
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`ISO C++ standards before C++17 do not allow new expression for type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to use list-initialization`|
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+------------------------------------------------------------------------+
|:warning:`warning:` |nbsp| :diagtext:`constexpr if is a C++17 extension`|
+------------------------------------------------------------------------+
@@ -1501,8 +1523,22 @@ Synonym for `-Wc++17-extensions`_.
-Wc++2a-compat
--------------
+Some of the diagnostics controlled by this flag are enabled by default.
+
**Diagnostic text:**
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`aggregate initialization of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with user-declared constructors is incompatible with C++2a`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'<=>' is a single token in C++2a; add a space to avoid a change in behavior`|
++------------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`type of UTF-8 string literal will change from array of const char to array of const char8\_t in C++2a`|
++--------------------------------------------------------------------------------------------------------------------------------------------+
+
+-------------------------------------------------------------------------------------------+
|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is a keyword in C++2a`|
+-------------------------------------------------------------------------------------------+
@@ -1523,10 +1559,34 @@ Some of the diagnostics controlled by this flag are enabled by default.
|:warning:`warning:` |nbsp| :diagtext:`default member initializer for bit-field is a C++2a extension`|
+----------------------------------------------------------------------------------------------------+
++-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++2a extension`|
+| ||:diagtext:`function` || |
+| |+-----------------------+| |
+| ||:diagtext:`constructor`|| |
+| |+-----------------------+| |
++-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
+
++------------------------------------------------------------------------------+-------------------------+----------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`function try block in constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++2a extension`|
+| ||:diagtext:`function` || |
+| |+-----------------------+| |
+| ||:diagtext:`constructor`|| |
+| |+-----------------------+| |
++------------------------------------------------------------------------------+-------------------------+----------------------------------------+
+
+--------------------------------------------------------------------------------------------------------------------+
|:warning:`warning:` |nbsp| :diagtext:`explicit capture of 'this' with a capture default of '=' is a C++2a extension`|
+--------------------------------------------------------------------------------------------------------------------+
++-----------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`range-based for loop initialization statements are a C++2a extension`|
++-----------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`inline nested namespace definition is a C++2a extension`|
++----------------------------------------------------------------------------------------------+
+
+--------------------------------------------------------------------------------------------------------------------------+
|:warning:`warning:` |nbsp| :diagtext:`invoking a pointer to a 'const &' member function on an rvalue is a C++2a extension`|
+--------------------------------------------------------------------------------------------------------------------------+
@@ -1540,10 +1600,66 @@ Some of the diagnostics controlled by this flag are enabled by default.
|:warning:`warning:` |nbsp| :diagtext:`default member initializer for bit-field is incompatible with C++ standards before C++2a`|
+-------------------------------------------------------------------------------------------------------------------------------+
++-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++2a`|
+| ||:diagtext:`function` || |
+| |+-----------------------+| |
+| ||:diagtext:`constructor`|| |
+| |+-----------------------+| |
++-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
+
++------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`function try block in constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++2a`|
+| ||:diagtext:`function` || |
+| |+-----------------------+| |
+| ||:diagtext:`constructor`|| |
+| |+-----------------------+| |
++------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
+
++-------------------------------------------------------------------------+--------------------------------------+----------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`explicitly defaulting this` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`with a type different from the implicit type is incompatible with C++ standards before C++2a`|
+| ||:diagtext:`default constructor` || |
+| |+------------------------------------+| |
+| ||:diagtext:`copy constructor` || |
+| |+------------------------------------+| |
+| ||:diagtext:`move constructor` || |
+| |+------------------------------------+| |
+| ||:diagtext:`copy assignment operator`|| |
+| |+------------------------------------+| |
+| ||:diagtext:`move assignment operator`|| |
+| |+------------------------------------+| |
+| ||:diagtext:`destructor` || |
+| |+------------------------------------+| |
++-------------------------------------------------------------------------+--------------------------------------+----------------------------------------------------------------------------------------------------------------+
+
+-----------------------------------------------------------------------------------------------------------------------------------------------+
|:warning:`warning:` |nbsp| :diagtext:`explicit capture of 'this' with a capture default of '=' is incompatible with C++ standards before C++2a`|
+-----------------------------------------------------------------------------------------------------------------------------------------------+
++--------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`range-based for loop initialization statements are incompatible with C++ standards before C++2a`|
++--------------------------------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`inline nested namespace definition is incompatible with C++ standards before C++2a`|
++-------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------+----------------------------------+-----------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`of lambda is incompatible with C++ standards before C++2a`|
+| ||:diagtext:`default construction`|| |
+| |+--------------------------------+| |
+| ||:diagtext:`assignment` || |
+| |+--------------------------------+| |
++---------------------------+----------------------------------+-----------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'<=>' operator is incompatible with C++ standards before C++2a`|
++-----------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'char8\_t' type specifier is incompatible with C++ standards before C++20`|
++----------------------------------------------------------------------------------------------------------------+
+
-Wc++98-c++11-c++14-c++17-compat-pedantic
-----------------------------------------
@@ -1560,6 +1676,16 @@ Also controls `-Wc++98-c++11-c++14-c++17-compat`_.
--------------------------
**Diagnostic text:**
++------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`class template argument deduction is incompatible with C++ standards before C++17`|+---------------------------------------------------------------------------------+|
+| || ||
+| |+---------------------------------------------------------------------------------+|
+| ||+-------------------------------------------------------------------------------+||
+| |||:diagtext:`; for compatibility, use explicit type name` |nbsp| :placeholder:`B`|||
+| ||+-------------------------------------------------------------------------------+||
+| |+---------------------------------------------------------------------------------+|
++------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+
+
+---------------------------------------------------------------------------------------------------+
|:warning:`warning:` |nbsp| :diagtext:`constexpr if is incompatible with C++ standards before C++17`|
+---------------------------------------------------------------------------------------------------+
@@ -1688,10 +1814,18 @@ Also controls `-Wc++98-c++11-c++14-compat`_.
|:warning:`warning:` |nbsp| :diagtext:`'decltype(auto)' type specifier is incompatible with C++ standards before C++14`|
+----------------------------------------------------------------------------------------------------------------------+
++------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`return type deduction is incompatible with C++ standards before C++14`|
++------------------------------------------------------------------------------------------------------------+
+
+--------------------------------------------------------------------------------------------------------+
|:warning:`warning:` |nbsp| :diagtext:`digit separators are incompatible with C++ standards before C++14`|
+--------------------------------------------------------------------------------------------------------+
++----------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`generic lambdas are incompatible with C++11`|
++----------------------------------------------------------------------------------+
+
+-------------------------------------------------------------------------------------------------------------------+
|:warning:`warning:` |nbsp| :diagtext:`initialized lambda captures are incompatible with C++ standards before C++14`|
+-------------------------------------------------------------------------------------------------------------------+
@@ -1855,7 +1989,7 @@ Also controls `-Wc++98-c++11-c++14-c++17-compat`_, `-Wc++98-c++11-c++14-compat`_
+---------------------------+------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+----------------------------------------------+
|:warning:`warning:` |nbsp| |+----------------------------+| |nbsp| :diagtext:`member` |nbsp| :placeholder:`B` |nbsp| :diagtext:`with a non-trivial` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`is incompatible with C++98`|
-| ||:diagtext:`anonymous struct`|| ||:diagtext:`constructor` || |
+| ||:diagtext:`anonymous struct`|| ||:diagtext:`default constructor` || |
| |+----------------------------+| |+------------------------------------+| |
| ||:diagtext:`union` || ||:diagtext:`copy constructor` || |
| |+----------------------------+| |+------------------------------------+| |
@@ -1949,28 +2083,6 @@ Also controls `-Wc++98-c++11-c++14-c++17-compat`_, `-Wc++98-c++11-c++14-compat`_
|:warning:`warning:` |nbsp| :diagtext:`default template arguments for a function template are incompatible with C++98`|
+---------------------------------------------------------------------------------------------------------------------+
-+---------------------------+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|:warning:`warning:` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`specialization of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`outside namespace` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is incompatible with C++98`|
-| ||:diagtext:`class template` || |
-| |+-------------------------------------+| |
-| ||:diagtext:`class template partial` || |
-| |+-------------------------------------+| |
-| ||:diagtext:`variable template` || |
-| |+-------------------------------------+| |
-| ||:diagtext:`variable template partial`|| |
-| |+-------------------------------------+| |
-| ||:diagtext:`function template` || |
-| |+-------------------------------------+| |
-| ||:diagtext:`member function` || |
-| |+-------------------------------------+| |
-| ||:diagtext:`static data member` || |
-| |+-------------------------------------+| |
-| ||:diagtext:`member class` || |
-| |+-------------------------------------+| |
-| ||:diagtext:`member enumeration` || |
-| |+-------------------------------------+| |
-+---------------------------+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-
+----------------------------------------------------------------------------------------+
|:warning:`warning:` |nbsp| :diagtext:`trailing return types are incompatible with C++98`|
+----------------------------------------------------------------------------------------+
@@ -2022,29 +2134,42 @@ Also controls `-Wc++98-c++11-c++14-c++17-compat`_, `-Wc++98-c++11-c++14-compat`_
-------------------------------------
**Diagnostic text:**
-+---------------------------+-----------------------------------------+----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------+----------------------------+
-|:warning:`warning:` |nbsp| |+---------------------------------------+| |nbsp| :diagtext:`of type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`when binding a reference to a temporary would` |nbsp| |+----------------------------------------------+| |nbsp| :diagtext:`in C++98`|
-| ||:diagtext:`copying variable` || ||:diagtext:`invoke an inaccessible constructor`|| |
-| |+---------------------------------------+| |+----------------------------------------------+| |
-| ||:diagtext:`copying parameter` || ||:diagtext:`find no viable constructor` || |
-| |+---------------------------------------+| |+----------------------------------------------+| |
-| ||:diagtext:`returning object` || ||:diagtext:`find ambiguous constructors` || |
-| |+---------------------------------------+| |+----------------------------------------------+| |
-| ||:diagtext:`throwing object` || ||:diagtext:`invoke a deleted constructor` || |
-| |+---------------------------------------+| |+----------------------------------------------+| |
-| ||:diagtext:`copying member subobject` || | | |
-| |+---------------------------------------+| | | |
-| ||:diagtext:`copying array element` || | | |
-| |+---------------------------------------+| | | |
-| ||:diagtext:`allocating object` || | | |
-| |+---------------------------------------+| | | |
-| ||:diagtext:`copying temporary` || | | |
-| |+---------------------------------------+| | | |
-| ||:diagtext:`initializing base subobject`|| | | |
-| |+---------------------------------------+| | | |
-| ||:diagtext:`initializing vector element`|| | | |
-| |+---------------------------------------+| | | |
-+---------------------------+-----------------------------------------+----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------+----------------------------+
++---------------------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------+----------------------------+
+|:warning:`warning:` |nbsp| |+----------------------------------------------------+| |nbsp| :diagtext:`of type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`when binding a reference to a temporary would` |nbsp| |+----------------------------------------------+| |nbsp| :diagtext:`in C++98`|
+| ||:diagtext:`copying variable` || ||:diagtext:`invoke an inaccessible constructor`|| |
+| |+----------------------------------------------------+| |+----------------------------------------------+| |
+| ||:diagtext:`copying parameter` || ||:diagtext:`find no viable constructor` || |
+| |+----------------------------------------------------+| |+----------------------------------------------+| |
+| ||:diagtext:`returning object` || ||:diagtext:`find ambiguous constructors` || |
+| |+----------------------------------------------------+| |+----------------------------------------------+| |
+| ||:diagtext:`initializing statement expression result`|| ||:diagtext:`invoke a deleted constructor` || |
+| |+----------------------------------------------------+| |+----------------------------------------------+| |
+| ||:diagtext:`throwing object` || | | |
+| |+----------------------------------------------------+| | | |
+| ||:diagtext:`copying member subobject` || | | |
+| |+----------------------------------------------------+| | | |
+| ||:diagtext:`copying array element` || | | |
+| |+----------------------------------------------------+| | | |
+| ||:diagtext:`allocating object` || | | |
+| |+----------------------------------------------------+| | | |
+| ||:diagtext:`copying temporary` || | | |
+| |+----------------------------------------------------+| | | |
+| ||:diagtext:`initializing base subobject` || | | |
+| |+----------------------------------------------------+| | | |
+| ||:diagtext:`initializing vector element` || | | |
+| |+----------------------------------------------------+| | | |
+| ||:diagtext:`capturing value` || | | |
+| |+----------------------------------------------------+| | | |
++---------------------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------+----------------------------+
+
+
+-Wc++98-compat-extra-semi
+-------------------------
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`extra ';' outside of a function is incompatible with C++98`|
++-------------------------------------------------------------------------------------------------+
-Wc++98-compat-local-type-template-args
@@ -2058,7 +2183,7 @@ Also controls `-Wc++98-c++11-c++14-c++17-compat`_, `-Wc++98-c++11-c++14-compat`_
-Wc++98-compat-pedantic
-----------------------
-Also controls `-Wc++98-c++11-c++14-c++17-compat-pedantic`_, `-Wc++98-c++11-c++14-compat-pedantic`_, `-Wc++98-c++11-compat-pedantic`_, `-Wc++98-compat`_, `-Wc++98-compat-bind-to-temporary-copy`_.
+Also controls `-Wc++98-c++11-c++14-c++17-compat-pedantic`_, `-Wc++98-c++11-c++14-compat-pedantic`_, `-Wc++98-c++11-compat-pedantic`_, `-Wc++98-compat`_, `-Wc++98-compat-bind-to-temporary-copy`_, `-Wc++98-compat-extra-semi`_.
**Diagnostic text:**
@@ -2098,10 +2223,6 @@ Also controls `-Wc++98-c++11-c++14-c++17-compat-pedantic`_, `-Wc++98-c++11-c++14
|:warning:`warning:` |nbsp| :diagtext:`#line number greater than 32767 is incompatible with C++98`|
+-------------------------------------------------------------------------------------------------+
-+-------------------------------------------------------------------------------------------------+
-|:warning:`warning:` |nbsp| :diagtext:`extra ';' outside of a function is incompatible with C++98`|
-+-------------------------------------------------------------------------------------------------+
-
+----------------------------------------------------------------------------------+
|:warning:`warning:` |nbsp| :diagtext:`variadic macros are incompatible with C++98`|
+----------------------------------------------------------------------------------+
@@ -2225,6 +2346,21 @@ Some of the diagnostics controlled by this flag are enabled by default.
+---------------------------------------------------------------------------------------+
+-Wcall-to-pure-virtual-from-ctor-dtor
+-------------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`call to pure virtual member function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has undefined behavior; overrides of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in subclasses are not available in the` |nbsp| |+-----------------------+| |nbsp| :diagtext:`of` |nbsp| :placeholder:`C`|
+| ||:diagtext:`constructor`|| |
+| |+-----------------------+| |
+| ||:diagtext:`destructor` || |
+| |+-----------------------+| |
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+
+
+
-Wcast-align
------------
**Diagnostic text:**
@@ -2275,6 +2411,29 @@ This diagnostic is enabled by default.
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+-Wcast-qual-unrelated
+---------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`from` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to` |nbsp| :placeholder:`C` |nbsp| :diagtext:`because it casts away qualifiers, even though the source and destination types are unrelated`|
+| ||:diagtext:`const\_cast` || |
+| |+---------------------------------+| |
+| ||:diagtext:`static\_cast` || |
+| |+---------------------------------+| |
+| ||:diagtext:`reinterpret\_cast` || |
+| |+---------------------------------+| |
+| ||:diagtext:`dynamic\_cast` || |
+| |+---------------------------------+| |
+| ||:diagtext:`C-style cast` || |
+| |+---------------------------------+| |
+| ||:diagtext:`functional-style cast`|| |
+| |+---------------------------------+| |
++---------------------------------------------------------------------+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
-Wchar-align
------------
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
@@ -2310,14 +2469,18 @@ This diagnostic is enabled by default.
|:warning:`warning:` |nbsp| :diagtext:`support for '/Yc' and '/Yu' with different filenames not implemented yet; flags ignored`|
+------------------------------------------------------------------------------------------------------------------------------+
-+--------------------------------------------------------------------------------------------------------------------------------------+
-|:warning:`warning:` |nbsp| :diagtext:`support for '`:placeholder:`A`:diagtext:`' without a filename not implemented yet; flag ignored`|
-+--------------------------------------------------------------------------------------------------------------------------------------+
-
+----------------------------------------------------------------------------------------------------------------------------------------------------+
|:warning:`warning:` |nbsp| :diagtext:`support for '`:placeholder:`A`:diagtext:`' without a corresponding /FI flag not implemented yet; flag ignored`|
+----------------------------------------------------------------------------------------------------------------------------------------------------+
++-------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`#pragma hdrstop filename not supported, /Fp can be used to specify precompiled header filename`|
++-------------------------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`definition of macro` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not match definition in precompiled header`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------+
+
-Wclass-varargs
---------------
@@ -2516,7 +2679,7 @@ This diagnostic is enabled by default.
------------
Some of the diagnostics controlled by this flag are enabled by default.
-Also controls `-Wbitfield-enum-conversion`_, `-Wbool-conversion`_, `-Wconstant-conversion`_, `-Wenum-conversion`_, `-Wfloat-conversion`_, `-Wint-conversion`_, `-Wliteral-conversion`_, `-Wnon-literal-null-conversion`_, `-Wnull-conversion`_, `-Wobjc-literal-conversion`_, `-Wshorten-64-to-32`_, `-Wsign-conversion`_, `-Wstring-conversion`_.
+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:**
@@ -2524,18 +2687,14 @@ Also controls `-Wbitfield-enum-conversion`_, `-Wbool-conversion`_, `-Wconstant-c
|:warning:`warning:` |nbsp| :diagtext:`implicit conversion discards imaginary component:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
-+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses floating-point precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
-+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-
-+---------------------------------------------------------------------------------------------------------------------------------------------------------+
-|:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses integer precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
-+---------------------------------------------------------------------------------------------------------------------------------------------------------+
-
+--------------------------------------------------------------------------------------------------------------------------------------------------------+
|:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns vector to scalar:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
+--------------------------------------------------------------------------------------------------------------------------------------------------------+
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`passing non-generic address space pointer to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may cause dynamic conversion affecting performance`|
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|:warning:`warning:` |nbsp| :diagtext:`non-type template argument with value '`:placeholder:`A`:diagtext:`' converted to '`:placeholder:`B`:diagtext:`' for unsigned template parameter of type` |nbsp| :placeholder:`C`|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -2597,6 +2756,17 @@ Synonym for `-W#warnings`_.
-------------------
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
+-Wctu
+-----
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`imported AST from '`:placeholder:`A`:diagtext:`' had been generated for a different target, current:` |nbsp| :placeholder:`B`:diagtext:`, imported:` |nbsp| :placeholder:`C`|
++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
-Wcuda-compat
-------------
Some of the diagnostics controlled by this flag are enabled by default.
@@ -2637,6 +2807,55 @@ Some of the diagnostics controlled by this flag are enabled by default.
+---------------------------------------------------------------------------------------------------------------------------------------+--------------------+----------------------------------------------------------------------------+
+-Wdangling
+----------
+This diagnostic is enabled by default.
+
+Also controls `-Wdangling-field`_, `-Wdangling-initializer-list`_, `-Wreturn-stack-address`_.
+
+**Diagnostic text:**
+
++---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------+----------------------------+---------------------------------------------------------------+
+|:warning:`warning:` |nbsp| |+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| |nbsp| |+--------------------------+|:diagtext:`will be destroyed at the end of the full-expression`|
+| ||+-----------------------------+---------------------------------------------------------+--------+------------------------------------------------------------------------+|| ||+------------------------+|| |
+| |||:diagtext:`temporary` |nbsp| |+-------------------------------------------------------+| |nbsp| |+----------------------------------------------------------------------+||| |||:placeholder:`D` |nbsp| ||| |
+| ||| ||:diagtext:`whose address is used as value of` || ||+-------------------------------+------------------------------------+|||| ||+------------------------+|| |
+| ||| |+-------------------------------------------------------+| |||+-----------------------------+|:diagtext:`member of local variable`||||| |+--------------------------+| |
+| ||| ||+--------------------------------+--------------------+|| |||| || ||||| || || |
+| ||| |||+------------------------------+|:diagtext:`bound to`||| |||+-----------------------------+| ||||| |+--------------------------+| |
+| ||| |||| || ||| ||||:diagtext:`reference` |nbsp| || ||||| | | |
+| ||| |||+------------------------------+| ||| |||+-----------------------------+| ||||| | | |
+| ||| ||||:diagtext:`implicitly` |nbsp| || ||| ||+-------------------------------+------------------------------------+|||| | | |
+| ||| |||+------------------------------+| ||| |+----------------------------------------------------------------------+||| | | |
+| ||| ||+--------------------------------+--------------------+|| ||+-------------------------+-----------------------+ |||| | | |
+| ||| |+-------------------------------------------------------+| |||:diagtext:`local` |nbsp| |+---------------------+| |||| | | |
+| ||| | | ||| ||:diagtext:`variable` || |||| | | |
+| ||| | | ||| |+---------------------+| |||| | | |
+| ||| | | ||| ||:diagtext:`reference`|| |||| | | |
+| ||| | | ||| |+---------------------+| |||| | | |
+| ||| | | ||+-------------------------+-----------------------+ |||| | | |
+| ||| | | |+----------------------------------------------------------------------+||| | | |
+| ||+-----------------------------+---------------------------------------------------------+--------+------------------------------------------------------------------------+|| | | |
+| |+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| | | |
+| ||+---------------------------------+----------------------------------------------------------+ || | | |
+| |||:diagtext:`array backing` |nbsp| |+--------------------------------------------------------+| || | | |
+| ||| ||:diagtext:`initializer list subobject of local variable`|| || | | |
+| ||| |+--------------------------------------------------------+| || | | |
+| ||| ||:diagtext:`local initializer list` || || | | |
+| ||| |+--------------------------------------------------------+| || | | |
+| ||+---------------------------------+----------------------------------------------------------+ || | | |
+| |+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| | | |
++---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------+----------------------------+---------------------------------------------------------------+
+
++---------------------------------------------------------------------------+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+---------------------------+--------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`sorry, lifetime extension of` |nbsp| |+---------------------------------------------+| |nbsp| :diagtext:`created by aggregate initialization using default member initializer is not supported; lifetime of` |nbsp| |+-------------------------+| |nbsp| :diagtext:`will end at the end of the full-expression`|
+| ||:diagtext:`temporary` || ||:diagtext:`temporary` || |
+| |+---------------------------------------------+| |+-------------------------+| |
+| ||:diagtext:`backing array of initializer list`|| ||:diagtext:`backing array`|| |
+| |+---------------------------------------------+| |+-------------------------+| |
++---------------------------------------------------------------------------+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+---------------------------+--------------------------------------------------------------+
+
+
-Wdangling-else
---------------
This diagnostic is enabled by default.
@@ -2654,21 +2873,33 @@ This diagnostic is enabled by default.
**Diagnostic text:**
-+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|:warning:`warning:` |nbsp| :diagtext:`binding reference member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to stack allocated parameter` |nbsp| :placeholder:`B`|
-+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
++-------------------------------------------------------------------------------------------------------------------------------------+-----------------------+------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`binding reference member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to stack allocated` |nbsp| |+---------------------+| |nbsp| :placeholder:`B`|
+| ||:diagtext:`variable` || |
+| |+---------------------+| |
+| ||:diagtext:`parameter`|| |
+| |+---------------------+| |
++-------------------------------------------------------------------------------------------------------------------------------------+-----------------------+------------------------+
-+----------------------------------------------------------------+----------------------------------+----------------------------------------------------------------------------------+
-|:warning:`warning:` |nbsp| :diagtext:`binding reference` |nbsp| |+--------------------------------+|:diagtext:`member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to a temporary value`|
-| || || |
-| |+--------------------------------+| |
-| ||:diagtext:`subobject of` |nbsp| || |
-| |+--------------------------------+| |
-+----------------------------------------------------------------+----------------------------------+----------------------------------------------------------------------------------+
++---------------------------+--------------------------------------------------------+--------+----------------------------------+--------------------------------------------------+----------------------+------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| |+------------------------------------------------------+| |nbsp| |+--------------------------------+|:diagtext:`member` |nbsp| :placeholder:`A` |nbsp| |+--------------------+| |nbsp| :diagtext:`a temporary object whose lifetime is shorter than the lifetime of the constructed object`|
+| ||:diagtext:`reference` || || || ||:diagtext:`binds to`|| |
+| |+------------------------------------------------------+| |+--------------------------------+| |+--------------------+| |
+| ||:diagtext:`backing array for 'std::initializer\_list'`|| ||:diagtext:`subobject of` |nbsp| || ||:diagtext:`is` || |
+| |+------------------------------------------------------+| |+--------------------------------+| |+--------------------+| |
++---------------------------+--------------------------------------------------------+--------+----------------------------------+--------------------------------------------------+----------------------+------------------------------------------------------------------------------------------------------------+
-+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|:warning:`warning:` |nbsp| :diagtext:`initializing pointer member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with the stack address of parameter` |nbsp| :placeholder:`B`|
-+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
++-----------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`initializing pointer member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with the stack address of` |nbsp| |+---------------------+| |nbsp| :placeholder:`B`|
+| ||:diagtext:`variable` || |
+| |+---------------------+| |
+| ||:diagtext:`parameter`|| |
+| |+---------------------+| |
++-----------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+------------------------+
+
++--------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`temporary bound to reference member of allocated object will be destroyed at the end of the full-expression`|
++--------------------------------------------------------------------------------------------------------------------------------------------------+
-Wdangling-initializer-list
@@ -2677,13 +2908,24 @@ This diagnostic is enabled by default.
**Diagnostic text:**
-+-----------------------------------------------------------------------------------------------------------------+---------------------------------+
-|:warning:`warning:` |nbsp| :diagtext:`array backing the initializer list will be destroyed at the end of` |nbsp| |+-------------------------------+|
-| ||:diagtext:`the full-expression`||
-| |+-------------------------------+|
-| ||:diagtext:`the constructor` ||
-| |+-------------------------------+|
-+-----------------------------------------------------------------------------------------------------------------+---------------------------------+
++------------------------------------------------------------+----------------------------------------------------------------+-----------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`array backing` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`will be destroyed at the end of the full-expression`|
+| ||:diagtext:`initializer list subobject of the allocated object`|| |
+| |+--------------------------------------------------------------+| |
+| ||:diagtext:`the allocated initializer list` || |
+| |+--------------------------------------------------------------+| |
++------------------------------------------------------------+----------------------------------------------------------------+-----------------------------------------------------------------------+
+
+
+-Wdarwin-sdk-settings
+---------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`SDK settings were ignored as 'SDKSettings.json' could not be parsed`|
++----------------------------------------------------------------------------------------------------------+
-Wdate-time
@@ -2726,6 +2968,29 @@ This diagnostic is enabled by default.
+-----------------------------------------------------------------------------------+
+-Wdefaulted-function-deleted
+----------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------+--------------------------------------+-----------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`explicitly defaulted` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`is implicitly deleted`|
+| ||:diagtext:`default constructor` || |
+| |+------------------------------------+| |
+| ||:diagtext:`copy constructor` || |
+| |+------------------------------------+| |
+| ||:diagtext:`move constructor` || |
+| |+------------------------------------+| |
+| ||:diagtext:`copy assignment operator`|| |
+| |+------------------------------------+| |
+| ||:diagtext:`move assignment operator`|| |
+| |+------------------------------------+| |
+| ||:diagtext:`destructor` || |
+| |+------------------------------------+| |
++-------------------------------------------------------------------+--------------------------------------+-----------------------------------------+
+
+
-Wdelegating-ctor-cycles
------------------------
This diagnostic is an error by default, but the flag ``-Wno-delegating-ctor-cycles`` can be used to disable the error.
@@ -2737,6 +3002,21 @@ This diagnostic is an error by default, but the flag ``-Wno-delegating-ctor-cycl
+------------------------------------------------------------------------------------------------------------------------+
+-Wdelete-abstract-non-virtual-dtor
+----------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`called on` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that is abstract but has non-virtual destructor`|
+| ||:diagtext:`delete` || |
+| |+----------------------+| |
+| ||:diagtext:`destructor`|| |
+| |+----------------------+| |
++---------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------+
+
+
-Wdelete-incomplete
-------------------
This diagnostic is enabled by default.
@@ -2752,20 +3032,10 @@ This diagnostic is enabled by default.
+--------------------------------------------------------------------------------------------------------------------------------------------------+
--Wdelete-non-virtual-dtor
--------------------------
-Some of the diagnostics controlled by this flag are enabled by default.
-
+-Wdelete-non-abstract-non-virtual-dtor
+--------------------------------------
**Diagnostic text:**
-+---------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------+
-|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`called on` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that is abstract but has non-virtual destructor`|
-| ||:diagtext:`delete` || |
-| |+----------------------+| |
-| ||:diagtext:`destructor`|| |
-| |+----------------------+| |
-+---------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------+
-
+---------------------------+------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`called on non-final` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that has virtual functions but non-virtual destructor`|
| ||:diagtext:`delete` || |
@@ -2775,11 +3045,18 @@ Some of the diagnostics controlled by this flag are enabled by default.
+---------------------------+------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+-Wdelete-non-virtual-dtor
+-------------------------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+Controls `-Wdelete-abstract-non-virtual-dtor`_, `-Wdelete-non-abstract-non-virtual-dtor`_.
+
+
-Wdeprecated
------------
Some of the diagnostics controlled by this flag are enabled by default.
-Also controls `-Wdeprecated-attributes`_, `-Wdeprecated-declarations`_, `-Wdeprecated-dynamic-exception-spec`_, `-Wdeprecated-increment-bool`_, `-Wdeprecated-register`_, `-Wdeprecated-writable-strings`_.
+Also controls `-Wdeprecated-attributes`_, `-Wdeprecated-declarations`_, `-Wdeprecated-dynamic-exception-spec`_, `-Wdeprecated-increment-bool`_, `-Wdeprecated-register`_, `-Wdeprecated-this-capture`_, `-Wdeprecated-writable-strings`_.
**Diagnostic text:**
@@ -2957,6 +3234,15 @@ This diagnostic is enabled by default.
+-------------------------------------------------------------------------------------------------------------------+
+-Wdeprecated-this-capture
+-------------------------
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`implicit capture of 'this' with a capture default of '=' is deprecated`|
++-------------------------------------------------------------------------------------------------------------+
+
+
-Wdeprecated-writable-strings
-----------------------------
Synonym for `-Wc++11-compat-deprecated-writable-strings`_.
@@ -3283,7 +3569,7 @@ Also controls `-Wdocumentation-unknown-command`_.
-Wduplicate-decl-specifier
--------------------------
-This diagnostic is enabled by default.
+Some of the diagnostics controlled by this flag are enabled by default.
**Diagnostic text:**
@@ -3295,6 +3581,14 @@ This diagnostic is enabled by default.
|:warning:`warning:` |nbsp| :diagtext:`duplicate '`:placeholder:`A`:diagtext:`' declaration specifier`|
+-----------------------------------------------------------------------------------------------------+
++-------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`multiple identical address spaces specified for type`|
++-------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`duplicate '`:placeholder:`A`:diagtext:`' declaration specifier`|
++-----------------------------------------------------------------------------------------------------+
+
-Wduplicate-enum
----------------
@@ -3418,6 +3712,21 @@ This diagnostic is enabled by default.
+-------------------------------------------------------------------------------------------------+
+-Wempty-init-stmt
+-----------------
+**Diagnostic text:**
+
++--------------------------------------------------------------------------+-----------------------------+---------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`empty initialization statement of '`|+---------------------------+|:diagtext:`' has no effect`|
+| ||:diagtext:`if` || |
+| |+---------------------------+| |
+| ||:diagtext:`switch` || |
+| |+---------------------------+| |
+| ||:diagtext:`range-based for`|| |
+| |+---------------------------+| |
++--------------------------------------------------------------------------+-----------------------------+---------------------------+
+
+
-Wempty-translation-unit
------------------------
**Diagnostic text:**
@@ -3540,6 +3849,21 @@ Some of the diagnostics controlled by this flag are enabled by default.
+-------------------------------------------------------------------------------------------------+
+-Wexperimental-isel
+-------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`-fexperimental-isel support for the '`:placeholder:`A`:diagtext:`' architecture is incomplete`|
++------------------------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`-fexperimental-isel support is incomplete for this architecture at the current optimization level`|
++----------------------------------------------------------------------------------------------------------------------------------------+
+
+
-Wexplicit-initialize-call
--------------------------
This diagnostic is enabled by default.
@@ -3564,15 +3888,6 @@ This diagnostic is enabled by default.
+-------------------------------------------------------------------------------------------------------------------------------------+
--Wextended-offsetof
--------------------
-**Diagnostic text:**
-
-+--------------------------------------------------------------------------------------+
-|:warning:`warning:` |nbsp| :diagtext:`using extended field designator is an extension`|
-+--------------------------------------------------------------------------------------+
-
-
-Wextern-c-compat
-----------------
This diagnostic is enabled by default.
@@ -3603,7 +3918,7 @@ This diagnostic is enabled by default.
-------
Some of the diagnostics controlled by this flag are enabled by default.
-Also controls `-Wignored-qualifiers`_, `-Winitializer-overrides`_, `-Wmissing-field-initializers`_, `-Wmissing-method-return-type`_, `-Wnull-pointer-arithmetic`_, `-Wsemicolon-before-method-body`_, `-Wsign-compare`_, `-Wunused-parameter`_.
+Also controls `-Wempty-init-stmt`_, `-Wignored-qualifiers`_, `-Winitializer-overrides`_, `-Wmissing-field-initializers`_, `-Wmissing-method-return-type`_, `-Wnull-pointer-arithmetic`_, `-Wsemicolon-before-method-body`_, `-Wsign-compare`_, `-Wunused-parameter`_.
**Diagnostic text:**
@@ -3625,7 +3940,7 @@ This diagnostic is enabled by default.
-Wextra-semi
------------
-Also controls `-Wc++11-extra-semi`_.
+Also controls `-Wc++11-extra-semi`_, `-Wc++98-compat-extra-semi`_.
**Diagnostic text:**
@@ -3648,6 +3963,17 @@ Also controls `-Wc++11-extra-semi`_.
+---------------------------------------------------------------------------------+
+-Wextra-semi-stmt
+-----------------
+Also controls `-Wempty-init-stmt`_.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`empty expression statement has no effect; remove unnecessary ';' to silence this warning`|
++-------------------------------------------------------------------------------------------------------------------------------+
+
+
-Wextra-tokens
--------------
This diagnostic is enabled by default.
@@ -3674,6 +4000,15 @@ This diagnostic is enabled by default.
+------------------------------------------------------------------------------+
+-Wfixed-enum-extension
+----------------------
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a Clang extension`|
++-----------------------------------------------------------------------------------------------------------+
+
+
-Wflag-enum
-----------
This diagnostic is enabled by default.
@@ -3722,9 +4057,13 @@ Also controls `-Wfloat-overflow-conversion`_, `-Wfloat-zero-conversion`_.
---------------------------
**Diagnostic text:**
-+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|:warning:`warning:` |nbsp| :diagtext:`implicit conversion of out of range value from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`changes value from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`|
-+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`changes value from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`|
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`implicit conversion of out of range value from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is undefined`|
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-Wfloat-zero-conversion
@@ -3960,6 +4299,14 @@ This diagnostic is enabled by default.
-----------------
**Diagnostic text:**
++---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| |+--------------------------------------------+| |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' should not be used as format arguments; add an explicit cast to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`instead`|
+| ||:diagtext:`values of type` || |
+| |+--------------------------------------------+| |
+| ||:diagtext:`enum values with underlying type`|| |
+| |+--------------------------------------------+| |
++---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
|:warning:`warning:` |nbsp| :diagtext:`format specifies type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`but the argument has` |nbsp| |+---------------------------+| |nbsp| :placeholder:`B`|
| ||:diagtext:`type` || |
@@ -4024,6 +4371,17 @@ The text of this diagnostic is not controlled by Clang.
+--------------------------------------------------------------------------------------------------------------------------------------+
+-Wframework-include-private-from-public
+---------------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`public framework header includes private framework header '`:placeholder:`A`:diagtext:`'`|
++-------------------------------------------------------------------------------------------------------------------------------+
+
+
-Wfunction-def-in-objc-container
--------------------------------
This diagnostic is enabled by default.
@@ -4035,6 +4393,21 @@ This diagnostic is enabled by default.
+--------------------------------------------------------------------------------------------------------+
+-Wfunction-multiversion
+-----------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`body of cpu\_dispatch function will be ignored`|
++-------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`CPU list contains duplicate entries; attribute ignored`|
++---------------------------------------------------------------------------------------------+
+
+
-Wfuture-compat
---------------
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
@@ -4073,6 +4446,14 @@ Some of the diagnostics controlled by this flag are enabled by default.
|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow an attribute in this position on a function declaration`|
+-----------------------------------------------------------------------------------------------------------------+
++------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute to be written on a type`|
++------------------------------------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow variable declarations in for loop initializers before C99`|
++-------------------------------------------------------------------------------------------------------------------+
+
+----------------------------------------------------------------------------------------------------------------------------------+
|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is bound to current loop, GCC binds it to the enclosing loop`|
+----------------------------------------------------------------------------------------------------------------------------------+
@@ -4433,6 +4814,10 @@ This diagnostic is enabled by default.
**Diagnostic text:**
++--------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'trivial\_abi' cannot be applied to` |nbsp| :placeholder:`A`|
++--------------------------------------------------------------------------------------------------+
+
+---------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|:warning:`warning:` |nbsp| |+-----------------+| |nbsp| :diagtext:`will always resolve to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`even if weak definition of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is overridden`|
| ||:diagtext:`alias`|| |
@@ -4557,103 +4942,39 @@ This diagnostic is enabled by default.
|:warning:`warning:` |nbsp| :diagtext:`\_\_weak attribute cannot be specified on an automatic variable when ARC is not enabled`|
+------------------------------------------------------------------------------------------------------------------------------+
-+------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------+
-|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`functions` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`unions` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`variables and functions` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`functions and global variables` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`functions, variables, and Objective-C interfaces` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`functions and methods` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`parameters` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`functions, methods and blocks` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`functions, methods, and classes` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`functions, methods, and parameters` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`functions, methods, and global variables` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`classes` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`enums` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`variables` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`methods` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`fields and global variables` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`structs` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`parameters and typedefs` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`variables and typedefs` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`thread-local variables` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`variables and fields` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`variables, data members and tag types` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`types and namespaces` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`Objective-C interfaces` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`methods and properties` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`functions, methods, and properties` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`struct or union` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`struct, union or class` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`types` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`Objective-C instance methods` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`init methods of interface or class extension declarations` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`variables, functions and classes` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`functions, variables, classes, and Objective-C interfaces` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`Objective-C protocols` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`variables with static or thread storage duration` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`functions, methods, properties, and global variables` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`structs, unions, and typedefs` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`structs and typedefs` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`interface or protocol declarations` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`kernel functions` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`non-K&R-style functions` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`variables, enums, fields and typedefs` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`functions, methods, enums, and classes` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`structs, classes, variables, functions, and inline namespaces` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`variables, functions, methods, types, enumerations, enumerators, labels, and non-static data members`||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`classes and enumerations` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-| ||:diagtext:`named declarations` ||
-| |+----------------------------------------------------------------------------------------------------------------+|
-+------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------+
++------------------------------------------------------------------------------------------------+---------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+-------------------------------------------------+|
+| ||:diagtext:`functions` ||
+| |+-------------------------------------------------+|
+| ||:diagtext:`unions` ||
+| |+-------------------------------------------------+|
+| ||:diagtext:`variables and functions` ||
+| |+-------------------------------------------------+|
+| ||:diagtext:`functions and methods` ||
+| |+-------------------------------------------------+|
+| ||:diagtext:`functions, methods and blocks` ||
+| |+-------------------------------------------------+|
+| ||:diagtext:`functions, methods, and parameters` ||
+| |+-------------------------------------------------+|
+| ||:diagtext:`variables` ||
+| |+-------------------------------------------------+|
+| ||:diagtext:`variables and fields` ||
+| |+-------------------------------------------------+|
+| ||:diagtext:`variables, data members and tag types`||
+| |+-------------------------------------------------+|
+| ||:diagtext:`types and namespaces` ||
+| |+-------------------------------------------------+|
+| ||:diagtext:`variables, functions and classes` ||
+| |+-------------------------------------------------+|
+| ||:diagtext:`kernel functions` ||
+| |+-------------------------------------------------+|
+| ||:diagtext:`non-K&R-style functions` ||
+| |+-------------------------------------------------+|
++------------------------------------------------------------------------------------------------+---------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| :placeholder:`B`|
++----------------------------------------------------------------------------------------------------------------+
+--------------------------------------------------------------------------------------------------------------------------------------------------------+
|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it cannot be applied to omitted return type`|
@@ -4721,6 +5042,14 @@ This diagnostic is enabled by default.
| |+----------------------------------+|
+---------------------------------------------------------------------------+------------------------------------+
++------------------------------------------------------------------------------------------------------------------+-----------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'objc\_externally\_retained' can only be applied to local variables` |nbsp| |+---------------------------------+|
+| ||:diagtext:`of retainable type` ||
+| |+---------------------------------+|
+| ||:diagtext:`with strong ownership`||
+| |+---------------------------------+|
++------------------------------------------------------------------------------------------------------------------+-----------------------------------+
+
+--------------------------------------------------------------------------------------------------------------+
|:warning:`warning:` |nbsp| :diagtext:`'internal\_linkage' attribute on a non-static local variable is ignored`|
+--------------------------------------------------------------------------------------------------------------+
@@ -4741,15 +5070,33 @@ This diagnostic is enabled by default.
|:warning:`warning:` |nbsp| :diagtext:`unknown attribute '`:placeholder:`A`:diagtext:`'`|
+---------------------------------------------------------------------------------------+
-+------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------+
-|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`parameters`|
-| ||:diagtext:`Objective-C object` || |
-| |+---------------------------------+| |
-| ||:diagtext:`pointer` || |
-| |+---------------------------------+| |
-| ||:diagtext:`pointer-to-CF-pointer`|| |
-| |+---------------------------------+| |
-+------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------+
++---------------------------------------------------------------------------------------------------------------+----------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`MSP430 'interrupt' attribute only applies to functions that have` |nbsp| |+--------------------------------+|
+| ||:diagtext:`no parameters` ||
+| |+--------------------------------+|
+| ||:diagtext:`a 'void' return type`||
+| |+--------------------------------+|
++---------------------------------------------------------------------------------------------------------------+----------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'nocf\_check' attribute ignored; use -fcf-protection to enable the attribute`|
++-------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'noderef' can only be used on an array or pointer type`|
++---------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------+---------------------------------------------------+------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+-------------------------------------------------+| |nbsp| :diagtext:`parameters`|
+| ||:diagtext:`Objective-C object` || |
+| |+-------------------------------------------------+| |
+| ||:diagtext:`pointer` || |
+| |+-------------------------------------------------+| |
+| ||:diagtext:`pointer-to-CF-pointer` || |
+| |+-------------------------------------------------+| |
+| ||:diagtext:`pointer/reference-to-OSObject-pointer`|| |
+| |+-------------------------------------------------+| |
++------------------------------------------------------------------------------------------------+---------------------------------------------------+------------------------------+
+------------------------------------------------------------------------------------------------+------------------------+---------------------------------------+--------------------------------------+
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+----------------------+| |nbsp| :diagtext:`that return` |nbsp| |+------------------------------------+|
@@ -4765,6 +5112,18 @@ This diagnostic is enabled by default.
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is deprecated and ignored in OpenCL version` |nbsp| :placeholder:`B`|
+--------------------------------------------------------------------------------------------------------------------------------------------+
++---------------------------------------------------------------------------------------------------------------+----------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`RISC-V 'interrupt' attribute only applies to functions that have` |nbsp| |+--------------------------------+|
+| ||:diagtext:`no parameters` ||
+| |+--------------------------------+|
+| ||:diagtext:`a 'void' return type`||
+| |+--------------------------------+|
++---------------------------------------------------------------------------------------------------------------+----------------------------------+
+
++----------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`repeated RISC-V 'interrupt' attribute`|
++----------------------------------------------------------------------------+
+
+---------------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------------------------------------------------------+
|:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`of field` |nbsp| :placeholder:`B` |nbsp| :diagtext:`(`:placeholder:`C` |nbsp| :diagtext:`bits) does not match the` |nbsp| |+---------------------+| |nbsp| :diagtext:`of the first field in transparent union; transparent\_union attribute ignored`|
| ||:diagtext:`alignment`|| ||:diagtext:`alignment`|| |
@@ -4803,13 +5162,17 @@ This diagnostic is enabled by default.
|:warning:`warning:` |nbsp| :diagtext:`\_\_declspec attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not supported`|
+-------------------------------------------------------------------------------------------------------------------------+
-+-------------------------------------------------------+-------------------------+----------------------------------+---------------------------------------------------------------------------------+
-|:warning:`warning:` |nbsp| :diagtext:`ignoring` |nbsp| |+-----------------------+|+--------------------------------+| |nbsp| :diagtext:`'`:placeholder:`C`:diagtext:`' in the target attribute string`|
-| ||:diagtext:`unsupported`||| || |
-| |+-----------------------+|+--------------------------------+| |
-| ||:diagtext:`duplicate` ||| |nbsp| :diagtext:`architecture`|| |
-| |+-----------------------+|+--------------------------------+| |
-+-------------------------------------------------------+-------------------------+----------------------------------+---------------------------------------------------------------------------------+
++---------------------------+-------------------------+----------------------------------+---------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| |+-----------------------+|+--------------------------------+| |nbsp| :diagtext:`'`:placeholder:`C`:diagtext:`' in the 'target' attribute string; 'target' attribute ignored`|
+| ||:diagtext:`unsupported`||| || |
+| |+-----------------------+|+--------------------------------+| |
+| ||:diagtext:`duplicate` ||| |nbsp| :diagtext:`architecture`|| |
+| |+-----------------------+|+--------------------------------+| |
++---------------------------+-------------------------+----------------------------------+---------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'\_\_clang\_\_' is a predefined macro name, not an attribute scope specifier; did you mean '\_Clang' instead?`|
++----------------------------------------------------------------------------------------------------------------------------------------------------+
-Wignored-optimization-argument
@@ -4842,11 +5205,22 @@ This diagnostic is enabled by default.
+------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+
+-Wignored-pragma-optimize
+-------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'#pragma optimize' is not supported`|
++--------------------------------------------------------------------------+
+
+
-Wignored-pragmas
-----------------
This diagnostic is enabled by default.
-Also controls `-Wignored-pragma-intrinsic`_.
+Also controls `-Wignored-pragma-intrinsic`_, `-Wignored-pragma-optimize`_.
**Diagnostic text:**
@@ -4894,6 +5268,10 @@ Also controls `-Wignored-pragma-intrinsic`_.
|:warning:`warning:` |nbsp| :diagtext:`missing ':' or ')' after` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`|
+---------------------------------------------------------------------------------------------------------------------+
++----------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`expected ',' in '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`|
++----------------------------------------------------------------------------------------------------+
+
+---------------------------------------------------------------------------------------------------------------------+
|:warning:`warning:` |nbsp| :diagtext:`expected identifier in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
+---------------------------------------------------------------------------------------------------------------------+
@@ -4942,6 +5320,10 @@ Also controls `-Wignored-pragma-intrinsic`_.
|:warning:`warning:` |nbsp| :diagtext:`expected push, pop or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
++--------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`expected string literal in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignoring`|
++--------------------------------------------------------------------------------------------------------------------------+
+
+---------------------------------------------------------------------------------------------------------------------+
|:warning:`warning:` |nbsp| :diagtext:`extra tokens at end of '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
+---------------------------------------------------------------------------------------------------------------------+
@@ -4958,10 +5340,30 @@ Also controls `-Wignored-pragma-intrinsic`_.
|:warning:`warning:` |nbsp| :diagtext:`unknown action for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
+-----------------------------------------------------------------------------------------------------------------+
++------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unexpected argument '`:placeholder:`A`:diagtext:`' to '#pragma` |nbsp| :placeholder:`B`:diagtext:`'`|+------------------------------------------------+|
+| || ||
+| |+------------------------------------------------+|
+| ||+----------------------------------------------+||
+| |||:diagtext:`; expected` |nbsp| :placeholder:`D`|||
+| ||+----------------------------------------------+||
+| |+------------------------------------------------+|
++------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+
+
+------------------------------------------------------------------------------------------------------------------------------------------------+
|:warning:`warning:` |nbsp| :diagtext:`unknown action '`:placeholder:`B`:diagtext:`' for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
+------------------------------------------------------------------------------------------------------------------------------------------------+
++--------------------------------------------------------------------------------------------------------+--------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`missing argument to '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`|+------------------------------------------------+|
+| || ||
+| |+------------------------------------------------+|
+| ||+----------------------------------------------+||
+| |||:diagtext:`; expected` |nbsp| :placeholder:`C`|||
+| ||+----------------------------------------------+||
+| |+------------------------------------------------+|
++--------------------------------------------------------------------------------------------------------+--------------------------------------------------+
+
+----------------------------------------------------------------------------------------------+
|:warning:`warning:` |nbsp| :diagtext:`incorrect use of '#pragma ms\_struct on\|off' - ignored`|
+----------------------------------------------------------------------------------------------+
@@ -5039,13 +5441,13 @@ Some of the diagnostics controlled by this flag are enabled by default.
|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on omitted return type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-+------------------------------------------------------------------------------------+---------------+------------------------------------------+-------------------+-----------------------------+
-|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' type qualifier`|+-------------+| |nbsp| :diagtext:`on return type` |nbsp| |+-----------------+| |nbsp| :diagtext:`no effect`|
-| || || ||:diagtext:`:has` || |
-| |+-------------+| |+-----------------+| |
-| ||:diagtext:`s`|| ||:diagtext:`:have`|| |
-| |+-------------+| |+-----------------+| |
-+------------------------------------------------------------------------------------+---------------+------------------------------------------+-------------------+-----------------------------+
++------------------------------------------------------------------------------------+---------------+------------------------------------------+------------------+-----------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' type qualifier`|+-------------+| |nbsp| :diagtext:`on return type` |nbsp| |+----------------+| |nbsp| :diagtext:`no effect`|
+| || || ||:diagtext:`has` || |
+| |+-------------+| |+----------------+| |
+| ||:diagtext:`s`|| ||:diagtext:`have`|| |
+| |+-------------+| |+----------------+| |
++------------------------------------------------------------------------------------+---------------+------------------------------------------+------------------+-----------------------------+
+---------------------------------------------------------------------------------------------------------------------------------------------------------+
|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on function type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`|
@@ -5126,19 +5528,28 @@ Also controls `-Wimplicit-fallthrough-per-function`_.
+------------------------------------------------------------------------------------------------------------------+
+-Wimplicit-float-conversion
+---------------------------
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses floating-point precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`implicit conversion when assigning computation result loses floating-point precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
-Wimplicit-function-declaration
-------------------------------
Some of the diagnostics controlled by this flag are enabled by default.
**Diagnostic text:**
-+----------------------------------------------------------------------------------------------------------------------------------------+--------------------+
-|:warning:`warning:` |nbsp| :diagtext:`implicit declaration of function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is invalid in` |nbsp| |+------------------+|
-| ||:diagtext:`C99` ||
-| |+------------------+|
-| ||:diagtext:`OpenCL`||
-| |+------------------+|
-+----------------------------------------------------------------------------------------------------------------------------------------+--------------------+
++------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`implicit declaration of function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is invalid in C99`|
++------------------------------------------------------------------------------------------------------------------------------------+
+---------------------------------------------------------------------------------------------------------------------------------------------+
|:warning:`warning:` |nbsp| :diagtext:`implicitly declaring library function '`:placeholder:`A`:diagtext:`' with type` |nbsp| :placeholder:`B`|
@@ -5164,6 +5575,19 @@ This diagnostic is enabled by default.
+--------------------------------------------------------------------------------+
+-Wimplicit-int-conversion
+-------------------------
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`higher order bits are zeroes after implicit conversion`|
++---------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses integer precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
++---------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
-Wimplicit-retain-self
----------------------
**Diagnostic text:**
@@ -5295,6 +5719,10 @@ This diagnostic is an error by default, but the flag ``-Wno-incompatible-ms-stru
|:error:`error:` |nbsp| :diagtext:`ms\_struct may not produce Microsoft-compatible layouts for classes with base classes or virtual functions`|
+---------------------------------------------------------------------------------------------------------------------------------------------+
++------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:error:`error:` |nbsp| :diagtext:`ms\_struct may not produce Microsoft-compatible layouts with fundamental data types with sizes that aren't a power of two`|
++------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
-Wincompatible-pointer-types
----------------------------
@@ -5388,6 +5816,17 @@ This diagnostic is enabled by default.
+------------------------------------------------------------------------------------------------------------------------------------+
+-Wincomplete-framework-module-declaration
+-----------------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`skipping '`:placeholder:`A`:diagtext:`' because module declaration of '`:placeholder:`B`:diagtext:`' lacks the 'framework' qualifier`|
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
-Wincomplete-implementation
---------------------------
This diagnostic is enabled by default.
@@ -5642,6 +6081,18 @@ Also controls `-Wignored-optimization-argument`_.
**Diagnostic text:**
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`the given MCU supports` |nbsp| :placeholder:`A` |nbsp| :diagtext:`hardware multiply, but -mhwmult is set to` |nbsp| :placeholder:`B`:diagtext:`.`|
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`no MCU device specified, but '-mhwmult' is set to 'auto', assuming no hardware multiply. Use -mmcu to specify a MSP430 device, or -mhwmult to set hardware multiply type explicitly.`|
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`the given MCU does not support hardware multiply, but -mhwmult is set to` |nbsp| :placeholder:`A`:diagtext:`.`|
++----------------------------------------------------------------------------------------------------------------------------------------------------+
+
+-----------------------------------------------------------------------------------------------------------------------------------------+
|:warning:`warning:` |nbsp| :diagtext:`the object size sanitizer has no effect at -O0, but is explicitly enabled:` |nbsp| :placeholder:`A`|
+-----------------------------------------------------------------------------------------------------------------------------------------+
@@ -5900,6 +6351,10 @@ This diagnostic is enabled by default.
|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`changes value from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`implicit conversion of out of range value from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is undefined`|
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
-Wliteral-range
---------------
@@ -6065,6 +6520,21 @@ This diagnostic is enabled by default.
+----------------------------------------------------------------+---------------------------------------+------------------------------------------------------+
+-Wmemset-transposed-args
+------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------+-----------------------------------------------------+---------------------------------------------------------------+
+|:warning:`warning:` |nbsp| |+---------------------------------------------------+|:diagtext:`; did you mean to transpose the last two arguments?`|
+| ||:diagtext:`'size' argument to memset is '0'` || |
+| |+---------------------------------------------------+| |
+| ||:diagtext:`setting buffer to a 'sizeof' expression`|| |
+| |+---------------------------------------------------+| |
++---------------------------+-----------------------------------------------------+---------------------------------------------------------------+
+
+
-Wmemsize-comparison
--------------------
This diagnostic is enabled by default.
@@ -6333,6 +6803,17 @@ This diagnostic is enabled by default.
+----------------------------------------------------------------------------------------------------------+
+-Wmicrosoft-inaccessible-base
+-----------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`accessing inaccessible direct base` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is a Microsoft extension`|
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
-Wmicrosoft-include
-------------------
This diagnostic is enabled by default.
@@ -6400,10 +6881,6 @@ This diagnostic is enabled by default.
|:warning:`warning:` |nbsp| :diagtext:`use of identifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found via unqualified lookup into dependent bases of class templates is a Microsoft extension`|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-+--------------------------------------------------------------------------------------------------------------------------------------------------------+
-|:warning:`warning:` |nbsp| :diagtext:`explicit specialization of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`within class scope is a Microsoft extension`|
-+--------------------------------------------------------------------------------------------------------------------------------------------------------+
-
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|:warning:`warning:` |nbsp| :diagtext:`using the undeclared type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as a default template argument is a Microsoft extension`|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -6412,27 +6889,27 @@ This diagnostic is enabled by default.
|:warning:`warning:` |nbsp| :diagtext:`non-type template argument containing a dereference operation is a Microsoft extension`|
+-----------------------------------------------------------------------------------------------------------------------------+
-+---------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|:warning:`warning:` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`specialization of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`outside namespace enclosing` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is a Microsoft extension`|
-| ||:diagtext:`class template` || |
-| |+-------------------------------------+| |
-| ||:diagtext:`class template partial` || |
-| |+-------------------------------------+| |
-| ||:diagtext:`variable template` || |
-| |+-------------------------------------+| |
-| ||:diagtext:`variable template partial`|| |
-| |+-------------------------------------+| |
-| ||:diagtext:`function template` || |
-| |+-------------------------------------+| |
-| ||:diagtext:`member function` || |
-| |+-------------------------------------+| |
-| ||:diagtext:`static data member` || |
-| |+-------------------------------------+| |
-| ||:diagtext:`member class` || |
-| |+-------------------------------------+| |
-| ||:diagtext:`member enumeration` || |
-| |+-------------------------------------+| |
-+---------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
++---------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------+--------------------------------------------+
+|:warning:`warning:` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`specialization of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not in` |nbsp| |+----------------------------------------------------------------------------------------+| |nbsp| :diagtext:`is a Microsoft extension`|
+| ||:diagtext:`class template` || ||+---------------------------------------------------------+ || |
+| |+-------------------------------------+| |||:diagtext:`a namespace enclosing` |nbsp| :placeholder:`C`| || |
+| ||:diagtext:`class template partial` || ||+---------------------------------------------------------+ || |
+| |+-------------------------------------+| |+----------------------------------------------------------------------------------------+| |
+| ||:diagtext:`variable template` || ||+--------------------------------------------------------------------------------------+|| |
+| |+-------------------------------------+| |||:diagtext:`class` |nbsp| :placeholder:`C` |nbsp| :diagtext:`or an enclosing namespace`||| |
+| ||:diagtext:`variable template partial`|| ||+--------------------------------------------------------------------------------------+|| |
+| |+-------------------------------------+| |+----------------------------------------------------------------------------------------+| |
+| ||:diagtext:`function template` || | | |
+| |+-------------------------------------+| | | |
+| ||:diagtext:`member function` || | | |
+| |+-------------------------------------+| | | |
+| ||:diagtext:`static data member` || | | |
+| |+-------------------------------------+| | | |
+| ||:diagtext:`member class` || | | |
+| |+-------------------------------------+| | | |
+| ||:diagtext:`member enumeration` || | | |
+| |+-------------------------------------+| | | |
++---------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------+--------------------------------------------+
+------------------------------------------------------------------------------------------------------------------------------------------------+
|:warning:`warning:` |nbsp| :diagtext:`template argument for template type parameter must be a type; omitted 'typename' is a Microsoft extension`|
@@ -6528,25 +7005,25 @@ This diagnostic is enabled by default.
-----------------
**Diagnostic text:**
-+---------------------------------------------------------------------------------+--------------------------+------------------------------+-----------------------------------------------------------+--------------------------+------------------------------+
-|:warning:`warning:` |nbsp| :placeholder:`C` |nbsp| :diagtext:`defined as` |nbsp| |+------------------------+|+----------------------------+| |nbsp| :diagtext:`here but previously declared as` |nbsp| |+------------------------+|+----------------------------+|
-| ||:diagtext:`a struct` ||| || ||:diagtext:`a struct` ||| ||
-| |+------------------------+|+----------------------------+| |+------------------------+|+----------------------------+|
-| ||:diagtext:`an interface`||| |nbsp| :diagtext:`template`|| ||:diagtext:`an interface`||| |nbsp| :diagtext:`template`||
-| |+------------------------+|+----------------------------+| |+------------------------+|+----------------------------+|
-| ||:diagtext:`a class` || | ||:diagtext:`a class` || |
-| |+------------------------+| | |+------------------------+| |
-+---------------------------------------------------------------------------------+--------------------------+------------------------------+-----------------------------------------------------------+--------------------------+------------------------------+
++---------------------------------------------------------------------------------+--------------------------+------------------------------+-----------------------------------------------------------+--------------------------+------------------------------+----------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`C` |nbsp| :diagtext:`defined as` |nbsp| |+------------------------+|+----------------------------+| |nbsp| :diagtext:`here but previously declared as` |nbsp| |+------------------------+|+----------------------------+|:diagtext:`; this is valid, but may result in linker errors under the Microsoft C++ ABI`|
+| ||:diagtext:`a struct` ||| || ||:diagtext:`a struct` ||| || |
+| |+------------------------+|+----------------------------+| |+------------------------+|+----------------------------+| |
+| ||:diagtext:`an interface`||| |nbsp| :diagtext:`template`|| ||:diagtext:`an interface`||| |nbsp| :diagtext:`template`|| |
+| |+------------------------+|+----------------------------+| |+------------------------+|+----------------------------+| |
+| ||:diagtext:`a class` || | ||:diagtext:`a class` || | |
+| |+------------------------+| | |+------------------------+| | |
++---------------------------------------------------------------------------------+--------------------------+------------------------------+-----------------------------------------------------------+--------------------------+------------------------------+----------------------------------------------------------------------------------------+
-+---------------------------+-----------------------+------------------------------+--------------------------------------------------------------------------------+-----------------------+------------------------------+
-|:warning:`warning:` |nbsp| |+---------------------+|+----------------------------+| |nbsp| :placeholder:`C` |nbsp| :diagtext:`was previously declared as a` |nbsp| |+---------------------+|+----------------------------+|
-| ||:diagtext:`struct` ||| || ||:diagtext:`struct` ||| ||
-| |+---------------------+|+----------------------------+| |+---------------------+|+----------------------------+|
-| ||:diagtext:`interface`||| |nbsp| :diagtext:`template`|| ||:diagtext:`interface`||| |nbsp| :diagtext:`template`||
-| |+---------------------+|+----------------------------+| |+---------------------+|+----------------------------+|
-| ||:diagtext:`class` || | ||:diagtext:`class` || |
-| |+---------------------+| | |+---------------------+| |
-+---------------------------+-----------------------+------------------------------+--------------------------------------------------------------------------------+-----------------------+------------------------------+
++---------------------------+-----------------------+------------------------------+--------------------------------------------------------------------------------+-----------------------+------------------------------+----------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| |+---------------------+|+----------------------------+| |nbsp| :placeholder:`C` |nbsp| :diagtext:`was previously declared as a` |nbsp| |+---------------------+|+----------------------------+|:diagtext:`; this is valid, but may result in linker errors under the Microsoft C++ ABI`|
+| ||:diagtext:`struct` ||| || ||:diagtext:`struct` ||| || |
+| |+---------------------+|+----------------------------+| |+---------------------+|+----------------------------+| |
+| ||:diagtext:`interface`||| |nbsp| :diagtext:`template`|| ||:diagtext:`interface`||| |nbsp| :diagtext:`template`|| |
+| |+---------------------+|+----------------------------+| |+---------------------+|+----------------------------+| |
+| ||:diagtext:`class` || | ||:diagtext:`class` || | |
+| |+---------------------+| | |+---------------------+| | |
++---------------------------+-----------------------+------------------------------+--------------------------------------------------------------------------------+-----------------------+------------------------------+----------------------------------------------------------------------------------------+
-Wmissing-braces
@@ -6797,7 +7274,7 @@ Controls `-Wcast-of-sel-type`_, `-Wchar-subscripts`_, `-Wcomment`_, `-Wdelete-no
-Wmove
------
-Controls `-Wpessimizing-move`_, `-Wredundant-move`_, `-Wself-move`_.
+Controls `-Wpessimizing-move`_, `-Wredundant-move`_, `-Wreturn-std-move`_, `-Wself-move`_.
-Wmsvc-include
@@ -6888,6 +7365,25 @@ This diagnostic is enabled by default.
+----------------------------------------------------------------+
+-Wnoderef
+---------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`dereferencing` |nbsp| :placeholder:`A`:diagtext:`; was declared with a 'noderef' type`|
++----------------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`dereferencing expression marked as 'noderef'`|
++-----------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`casting to dereferenceable pointer removes 'noderef' attribute`|
++-----------------------------------------------------------------------------------------------------+
+
+
-Wnoexcept-type
---------------
Synonym for `-Wc++17-compat-mangling`_.
@@ -7033,6 +7529,25 @@ This diagnostic is enabled by default.
+---------------------------------------------------------------------------------------------------------------------+
+-Wnontrivial-memaccess
+----------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------+
+|:warning:`warning:` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`this` |nbsp| :placeholder:`B` |nbsp| :diagtext:`call is a pointer to record` |nbsp| :placeholder:`C` |nbsp| :diagtext:`that is not trivial to` |nbsp| |+----------------------------------------+|
+| ||:diagtext:`destination for` || ||:diagtext:`primitive-default-initialize`||
+| |+-----------------------------+| |+----------------------------------------+|
+| ||:diagtext:`source of` || ||:diagtext:`primitive-copy` ||
+| |+-----------------------------+| |+----------------------------------------+|
+| ||:diagtext:`first operand of` || | |
+| |+-----------------------------+| | |
+| ||:diagtext:`second operand of`|| | |
+| |+-----------------------------+| | |
++---------------------------+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------+
+
+
-Wnsconsumed-mismatch
---------------------
This diagnostic is enabled by default.
@@ -7280,9 +7795,9 @@ This diagnostic is enabled by default.
**Diagnostic text:**
-+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
-|:warning:`warning:` |nbsp| :diagtext:`adding '`:placeholder:`A`:diagtext:`' to '`:placeholder:`B`:diagtext:`' might cause circular dependency in container`|
-+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`adding` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`might cause circular dependency in container`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-Wobjc-cocoa-api
@@ -7504,6 +8019,15 @@ This diagnostic is enabled by default.
+-----------------------------------------------------------------------------------------------------------------------------+
+-Wobjc-property-assign-on-object-type
+-------------------------------------
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'assign' property of object type may become a dangling reference; consider using 'unsafe\_unretained'`|
++--------------------------------------------------------------------------------------------------------------------------------------------+
+
+
-Wobjc-property-implementation
------------------------------
This diagnostic is enabled by default.
@@ -7772,6 +8296,14 @@ This diagnostic is enabled by default.
|:warning:`warning:` |nbsp| :diagtext:`The OpenMP offloading target '`:placeholder:`A`:diagtext:`' is similar to target '`:placeholder:`B`:diagtext:`' already specified - will be ignored.`|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`No library '`:placeholder:`A`:diagtext:`' found in the default clang lib directory or in LIBRARY\_PATH. Expect degraded performance due to no inlining of runtime functions on target devices.`|
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`Non-trivial type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is mapped, only trivial types are guaranteed to be mapped correctly`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+-----------------------------------------------------------------------------------------------+
|:warning:`warning:` |nbsp| :diagtext:`declaration is not declared in any declare target region`|
+-----------------------------------------------------------------------------------------------+
@@ -7787,14 +8319,14 @@ This diagnostic is enabled by default.
|:warning:`warning:` |nbsp| :diagtext:`option '-ffine-grained-bitfield-accesses' cannot be enabled together with a sanitizer; flag ignored`|
+------------------------------------------------------------------------------------------------------------------------------------------+
++-------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`The '`:placeholder:`A`:diagtext:`' architecture does not support -moutline; flag ignored`|
++-------------------------------------------------------------------------------------------------------------------------------+
+
+----------------------------------------------------------------------------------------------------------------------------+
|:warning:`warning:` |nbsp| :diagtext:`option '`:placeholder:`A`:diagtext:`' was ignored by the PS4 toolchain, using '-fPIC'`|
+----------------------------------------------------------------------------------------------------------------------------+
-+-------------------------------------------------------------------------------------------------------------------------------------------+
-|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mabicalls' option as it cannot be used with non position-independent code and the N64 ABI`|
-+-------------------------------------------------------------------------------------------------------------------------------------------+
-
+-------------------------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+
|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mlong-calls' option as it is not currently supported with` |nbsp| |+-----------------------------------------+|:diagtext:`-mabicalls`|
| || || |
@@ -7803,6 +8335,29 @@ This diagnostic is enabled by default.
| |+-----------------------------------------+| |
+-------------------------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+
++-----------------------------------------------------------------------------------------------------------------------+-------------------------------+----------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`ignoring '`:placeholder:`A`:diagtext:`' option as it cannot be used with` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`-mabicalls and the N64 ABI`|
+| ||:diagtext:`implicit usage of`|| |
+| |+-----------------------------+| |
+| || || |
+| |+-----------------------------+| |
++-----------------------------------------------------------------------------------------------------------------------+-------------------------------+----------------------------------------------+
+
++----------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`auto-vectorization requires HVX, use -mhvx to enable it`|
++----------------------------------------------------------------------------------------------+
+
+
+-Wordered-compare-function-pointers
+-----------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`ordered comparison of function pointers (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`|
++------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
-Wout-of-line-declaration
-------------------------
@@ -7885,6 +8440,7 @@ This diagnostic is enabled by default.
| |+---------------------+|
+-----------------------------------------------------------------------------------------------+-----------------------+
+
-Woverride-init
---------------
Synonym for `-Winitializer-overrides`_.
@@ -8079,10 +8635,14 @@ This diagnostic is enabled by default.
-Wpedantic
----------
-Also controls `-Wc++11-extra-semi`_, `-Wc++11-long-long`_, `-Wc++14-binary-literal`_, `-Wc11-extensions`_, `-Wcomplex-component-init`_, `-Wdeclaration-after-statement`_, `-Wdollar-in-identifier-extension`_, `-Wembedded-directive`_, `-Wempty-translation-unit`_, `-Wextended-offsetof`_, `-Wflexible-array-extensions`_, `-Wformat-pedantic`_, `-Wfour-char-constants`_, `-Wgnu-anonymous-struct`_, `-Wgnu-auto-type`_, `-Wgnu-binary-literal`_, `-Wgnu-case-range`_, `-Wgnu-complex-integer`_, `-Wgnu-compound-literal-initializer`_, `-Wgnu-conditional-omitted-operand`_, `-Wgnu-empty-initializer`_, `-Wgnu-empty-struct`_, `-Wgnu-flexible-array-initializer`_, `-Wgnu-flexible-array-union-member`_, `-Wgnu-folding-constant`_, `-Wgnu-imaginary-constant`_, `-Wgnu-include-next`_, `-Wgnu-label-as-value`_, `-Wgnu-redeclared-enum`_, `-Wgnu-statement-expression`_, `-Wgnu-union-cast`_, `-Wgnu-zero-line-directive`_, `-Wgnu-zero-variadic-macro-arguments`_, `-Wimport-preprocessor-directive-pedantic`_, `-Wkeyword-macro`_, `-Wlanguage-extension-token`_, `-Wlong-long`_, `-Wmicrosoft-charize`_, `-Wmicrosoft-comment-paste`_, `-Wmicrosoft-cpp-macro`_, `-Wmicrosoft-end-of-file`_, `-Wmicrosoft-enum-value`_, `-Wmicrosoft-fixed-enum`_, `-Wmicrosoft-flexible-array`_, `-Wmicrosoft-redeclare-static`_, `-Wnested-anon-types`_, `-Wnullability-extension`_, `-Woverlength-strings`_, `-Wretained-language-linkage`_, `-Wundefined-internal-type`_, `-Wvla-extension`_, `-Wzero-length-array`_.
+Also controls `-Wc++11-extra-semi`_, `-Wc++11-long-long`_, `-Wc++14-binary-literal`_, `-Wc11-extensions`_, `-Wcomplex-component-init`_, `-Wdeclaration-after-statement`_, `-Wdollar-in-identifier-extension`_, `-Wembedded-directive`_, `-Wempty-translation-unit`_, `-Wfixed-enum-extension`_, `-Wflexible-array-extensions`_, `-Wfour-char-constants`_, `-Wgnu-anonymous-struct`_, `-Wgnu-auto-type`_, `-Wgnu-binary-literal`_, `-Wgnu-case-range`_, `-Wgnu-complex-integer`_, `-Wgnu-compound-literal-initializer`_, `-Wgnu-conditional-omitted-operand`_, `-Wgnu-empty-initializer`_, `-Wgnu-empty-struct`_, `-Wgnu-flexible-array-initializer`_, `-Wgnu-flexible-array-union-member`_, `-Wgnu-folding-constant`_, `-Wgnu-imaginary-constant`_, `-Wgnu-include-next`_, `-Wgnu-label-as-value`_, `-Wgnu-redeclared-enum`_, `-Wgnu-statement-expression`_, `-Wgnu-union-cast`_, `-Wgnu-zero-line-directive`_, `-Wgnu-zero-variadic-macro-arguments`_, `-Wimport-preprocessor-directive-pedantic`_, `-Wkeyword-macro`_, `-Wlanguage-extension-token`_, `-Wlong-long`_, `-Wmicrosoft-charize`_, `-Wmicrosoft-comment-paste`_, `-Wmicrosoft-cpp-macro`_, `-Wmicrosoft-end-of-file`_, `-Wmicrosoft-enum-value`_, `-Wmicrosoft-fixed-enum`_, `-Wmicrosoft-flexible-array`_, `-Wmicrosoft-redeclare-static`_, `-Wnested-anon-types`_, `-Wnullability-extension`_, `-Woverlength-strings`_, `-Wretained-language-linkage`_, `-Wundefined-internal-type`_, `-Wvla-extension`_, `-Wzero-length-array`_.
**Diagnostic text:**
++-----------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`duplicate '`:placeholder:`A`:diagtext:`' declaration specifier`|
++-----------------------------------------------------------------------------------------------------+
+
+------------------------------------------------------------------------+
|:warning:`warning:` |nbsp| :diagtext:`'enable\_if' is a clang extension`|
+------------------------------------------------------------------------+
@@ -8115,31 +8675,37 @@ Also controls `-Wc++11-extra-semi`_, `-Wc++11-long-long`_, `-Wc++14-binary-liter
| |+------------------+| |
+--------------------------------------------------------+--------------------+------------------------------------------------------------+
-+--------------------------------------------------------------------+-----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
-|:warning:`warning:` |nbsp| :diagtext:`no viable constructor` |nbsp| |+---------------------------------------+| |nbsp| :diagtext:`of type` |nbsp| :placeholder:`B`:diagtext:`; C++98 requires a copy constructor when binding a reference to a temporary`|
-| ||:diagtext:`copying variable` || |
-| |+---------------------------------------+| |
-| ||:diagtext:`copying parameter` || |
-| |+---------------------------------------+| |
-| ||:diagtext:`returning object` || |
-| |+---------------------------------------+| |
-| ||:diagtext:`throwing object` || |
-| |+---------------------------------------+| |
-| ||:diagtext:`copying member subobject` || |
-| |+---------------------------------------+| |
-| ||:diagtext:`copying array element` || |
-| |+---------------------------------------+| |
-| ||:diagtext:`allocating object` || |
-| |+---------------------------------------+| |
-| ||:diagtext:`copying temporary` || |
-| |+---------------------------------------+| |
-| ||:diagtext:`initializing base subobject`|| |
-| |+---------------------------------------+| |
-| ||:diagtext:`initializing vector element`|| |
-| |+---------------------------------------+| |
-| ||:diagtext:`capturing value` || |
-| |+---------------------------------------+| |
-+--------------------------------------------------------------------+-----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
++--------------------------------------------------------------------+------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`no viable constructor` |nbsp| |+----------------------------------------------------+| |nbsp| :diagtext:`of type` |nbsp| :placeholder:`B`:diagtext:`; C++98 requires a copy constructor when binding a reference to a temporary`|
+| ||:diagtext:`copying variable` || |
+| |+----------------------------------------------------+| |
+| ||:diagtext:`copying parameter` || |
+| |+----------------------------------------------------+| |
+| ||:diagtext:`returning object` || |
+| |+----------------------------------------------------+| |
+| ||:diagtext:`initializing statement expression result`|| |
+| |+----------------------------------------------------+| |
+| ||:diagtext:`throwing object` || |
+| |+----------------------------------------------------+| |
+| ||:diagtext:`copying member subobject` || |
+| |+----------------------------------------------------+| |
+| ||:diagtext:`copying array element` || |
+| |+----------------------------------------------------+| |
+| ||:diagtext:`allocating object` || |
+| |+----------------------------------------------------+| |
+| ||:diagtext:`copying temporary` || |
+| |+----------------------------------------------------+| |
+| ||:diagtext:`initializing base subobject` || |
+| |+----------------------------------------------------+| |
+| ||:diagtext:`initializing vector element` || |
+| |+----------------------------------------------------+| |
+| ||:diagtext:`capturing value` || |
+| |+----------------------------------------------------+| |
++--------------------------------------------------------------------+------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`ISO C++ standards before C++17 do not allow new expression for type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to use list-initialization`|
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+--------------------------------------------------------------------------------------------------------------------------------------+
|:warning:`warning:` |nbsp| :diagtext:`parameter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`was not declared, defaulting to type 'int'`|
@@ -8185,25 +8751,33 @@ Also controls `-Wc++11-extra-semi`_, `-Wc++11-long-long`_, `-Wc++14-binary-liter
|:warning:`warning:` |nbsp| :diagtext:`flexible array members are a C99 feature`|
+-------------------------------------------------------------------------------+
-+---------------------------------------------------------------+-----------------------+--------------------------------+
-|:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------+|:diagtext:`' to a function type`|
-| ||:diagtext:`sizeof` || |
-| |+---------------------+| |
-| ||:diagtext:`alignof` || |
-| |+---------------------+| |
-| ||:diagtext:`vec\_step`|| |
-| |+---------------------+| |
-+---------------------------------------------------------------+-----------------------+--------------------------------+
-
-+---------------------------------------------------------------+-----------------------+----------------------------+
-|:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------+|:diagtext:`' to a void type`|
-| ||:diagtext:`sizeof` || |
-| |+---------------------+| |
-| ||:diagtext:`alignof` || |
-| |+---------------------+| |
-| ||:diagtext:`vec\_step`|| |
-| |+---------------------+| |
-+---------------------------------------------------------------+-----------------------+----------------------------+
++---------------------------------------------------------------+-----------------------------------------------------+--------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------------------------------------+|:diagtext:`' to a function type`|
+| ||:diagtext:`sizeof` || |
+| |+---------------------------------------------------+| |
+| ||:diagtext:`alignof` || |
+| |+---------------------------------------------------+| |
+| ||:diagtext:`vec\_step` || |
+| |+---------------------------------------------------+| |
+| ||:diagtext:`\_\_builtin\_omp\_required\_simd\_align`|| |
+| |+---------------------------------------------------+| |
+| ||:diagtext:`\_\_alignof` || |
+| |+---------------------------------------------------+| |
++---------------------------------------------------------------+-----------------------------------------------------+--------------------------------+
+
++---------------------------------------------------------------+-----------------------------------------------------+----------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------------------------------------+|:diagtext:`' to a void type`|
+| ||:diagtext:`sizeof` || |
+| |+---------------------------------------------------+| |
+| ||:diagtext:`alignof` || |
+| |+---------------------------------------------------+| |
+| ||:diagtext:`vec\_step` || |
+| |+---------------------------------------------------+| |
+| ||:diagtext:`\_\_builtin\_omp\_required\_simd\_align`|| |
+| |+---------------------------------------------------+| |
+| ||:diagtext:`\_\_alignof` || |
+| |+---------------------------------------------------+| |
++---------------------------------------------------------------+-----------------------------------------------------+----------------------------+
+-------------------------------------------------------------------------------------------+
|:warning:`warning:` |nbsp| :diagtext:`ISO C90 does not allow subscripting non-lvalue array`|
@@ -8313,6 +8887,14 @@ Also controls `-Wc++11-extra-semi`_, `-Wc++11-long-long`_, `-Wc++14-binary-liter
| |+------------------+| |
+-----------------------------------------------------------------------------+--------------------+---------------------------------------------+
++------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`format specifies type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`but the argument has` |nbsp| |+---------------------------+| |nbsp| :placeholder:`B`|
+| ||:diagtext:`type` || |
+| |+---------------------------+| |
+| ||:diagtext:`underlying type`|| |
+| |+---------------------------+| |
++------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
+
+---------------------------------------------------+----------------------+-----------------------------------------------------------------------------+
|:warning:`warning:` |nbsp| :diagtext:`void` |nbsp| |+--------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return void expression`|
| ||:diagtext:`function`|| |
@@ -8510,25 +9092,33 @@ Some of the diagnostics controlled by this flag are enabled by default.
| |+---------------------+| |+-------------+| |
+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+
-+---------------------------------------------------------------+-----------------------+--------------------------------+
-|:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------+|:diagtext:`' to a function type`|
-| ||:diagtext:`sizeof` || |
-| |+---------------------+| |
-| ||:diagtext:`alignof` || |
-| |+---------------------+| |
-| ||:diagtext:`vec\_step`|| |
-| |+---------------------+| |
-+---------------------------------------------------------------+-----------------------+--------------------------------+
-
-+---------------------------------------------------------------+-----------------------+----------------------------+
-|:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------+|:diagtext:`' to a void type`|
-| ||:diagtext:`sizeof` || |
-| |+---------------------+| |
-| ||:diagtext:`alignof` || |
-| |+---------------------+| |
-| ||:diagtext:`vec\_step`|| |
-| |+---------------------+| |
-+---------------------------------------------------------------+-----------------------+----------------------------+
++---------------------------------------------------------------+-----------------------------------------------------+--------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------------------------------------+|:diagtext:`' to a function type`|
+| ||:diagtext:`sizeof` || |
+| |+---------------------------------------------------+| |
+| ||:diagtext:`alignof` || |
+| |+---------------------------------------------------+| |
+| ||:diagtext:`vec\_step` || |
+| |+---------------------------------------------------+| |
+| ||:diagtext:`\_\_builtin\_omp\_required\_simd\_align`|| |
+| |+---------------------------------------------------+| |
+| ||:diagtext:`\_\_alignof` || |
+| |+---------------------------------------------------+| |
++---------------------------------------------------------------+-----------------------------------------------------+--------------------------------+
+
++---------------------------------------------------------------+-----------------------------------------------------+----------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------------------------------------+|:diagtext:`' to a void type`|
+| ||:diagtext:`sizeof` || |
+| |+---------------------------------------------------+| |
+| ||:diagtext:`alignof` || |
+| |+---------------------------------------------------+| |
+| ||:diagtext:`vec\_step` || |
+| |+---------------------------------------------------+| |
+| ||:diagtext:`\_\_builtin\_omp\_required\_simd\_align`|| |
+| |+---------------------------------------------------+| |
+| ||:diagtext:`\_\_alignof` || |
+| |+---------------------------------------------------+| |
++---------------------------------------------------------------+-----------------------------------------------------+----------------------------+
+-----------------------------------------------------------------------------------------------------------------------------------------------------+
|:warning:`warning:` |nbsp| :diagtext:`subtraction of pointers to type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of zero size has undefined behavior`|
@@ -8560,6 +9150,17 @@ This diagnostic is enabled by default.
+-------------------------------------------------+------------------------------+---------------------------------------------------------------------------------+
+-Wpointer-integer-compare
+-------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`comparison between pointer and integer (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
-Wpointer-sign
--------------
This diagnostic is enabled by default.
@@ -8726,26 +9327,34 @@ This diagnostic is enabled by default.
**Diagnostic text:**
-+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|:warning:`warning:` |nbsp| :diagtext:`top-level module '`:placeholder:`A`:diagtext:`' in private module map, expected a submodule of '`:placeholder:`B`:diagtext:`'`|
-+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
++----------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`expected canonical name for private module '`:placeholder:`A`:diagtext:`'`|
++----------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`private submodule '`:placeholder:`A`:diagtext:`' in private module map, expected top-level module`|
++----------------------------------------------------------------------------------------------------------------------------------------+
+----------------------------------------------------------------------------------------------------------------------------------+
|:warning:`warning:` |nbsp| :diagtext:`module '`:placeholder:`A`:diagtext:`' already re-exported as '`:placeholder:`B`:diagtext:`'`|
+----------------------------------------------------------------------------------------------------------------------------------+
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`no submodule named` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in module '`:placeholder:`B`:diagtext:`'; using top level '`:placeholder:`C`:diagtext:`'`|
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
-Wprofile-instr-missing
-----------------------
**Diagnostic text:**
-+-----------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+-------------------+---------------------------+
-|:warning:`warning:` |nbsp| :diagtext:`profile data may be incomplete: of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`function`|+-------------+|:diagtext:`,` |nbsp| :placeholder:`B` |nbsp| |+-----------------+| |nbsp| :diagtext:`no data`|
-| || || ||:diagtext:`:has` || |
-| |+-------------+| |+-----------------+| |
-| ||:diagtext:`s`|| ||:diagtext:`:have`|| |
-| |+-------------+| |+-----------------+| |
-+-----------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+-------------------+---------------------------+
++-----------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+------------------+---------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`profile data may be incomplete: of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`function`|+-------------+|:diagtext:`,` |nbsp| :placeholder:`B` |nbsp| |+----------------+| |nbsp| :diagtext:`no data`|
+| || || ||:diagtext:`has` || |
+| |+-------------+| |+----------------+| |
+| ||:diagtext:`s`|| ||:diagtext:`have`|| |
+| |+-------------+| |+----------------+| |
++-----------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+------------------+---------------------------+
-Wprofile-instr-out-of-date
@@ -8754,13 +9363,13 @@ This diagnostic is enabled by default.
**Diagnostic text:**
-+------------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+-------------------+--------------------------------------------------------+
-|:warning:`warning:` |nbsp| :diagtext:`profile data may be out of date: of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`function`|+-------------+|:diagtext:`,` |nbsp| :placeholder:`B` |nbsp| |+-----------------+| |nbsp| :diagtext:`mismatched data that will be ignored`|
-| || || ||:diagtext:`:has` || |
-| |+-------------+| |+-----------------+| |
-| ||:diagtext:`s`|| ||:diagtext:`:have`|| |
-| |+-------------+| |+-----------------+| |
-+------------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+-------------------+--------------------------------------------------------+
++------------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+------------------+--------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`profile data may be out of date: of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`function`|+-------------+|:diagtext:`,` |nbsp| :placeholder:`B` |nbsp| |+----------------+| |nbsp| :diagtext:`mismatched data that will be ignored`|
+| || || ||:diagtext:`has` || |
+| |+-------------+| |+----------------+| |
+| ||:diagtext:`s`|| ||:diagtext:`have`|| |
+| |+-------------+| |+----------------+| |
++------------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+------------------+--------------------------------------------------------+
-Wprofile-instr-unprofiled
@@ -8861,6 +9470,15 @@ This diagnostic is enabled by default.
+---------------------------------------------------------------------------------------------------------+
+-Wquoted-include-in-framework-header
+------------------------------------
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`double-quoted include "`:placeholder:`A`:diagtext:`" in framework header, expected angle-bracketed instead`|
++-------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
-Wrange-loop-analysis
---------------------
**Diagnostic text:**
@@ -9064,13 +9682,35 @@ This diagnostic is enabled by default.
| |+------------------------+| |
+--------------------------------------------------------+--------------------------+------------------------------------------+
-+---------------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------+
-|:warning:`warning:` |nbsp| |+------------------------+| |nbsp| :diagtext:`stack memory associated with local variable` |nbsp| :placeholder:`B` |nbsp| :diagtext:`returned`|
-| ||:diagtext:`address of` || |
-| |+------------------------+| |
-| ||:diagtext:`reference to`|| |
-| |+------------------------+| |
-+---------------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------+
++---------------------------+--------------------------+--------------------------------------------------------+----------------------------+----------------------------------------------------+
+|:warning:`warning:` |nbsp| |+------------------------+| |nbsp| :diagtext:`stack memory associated with` |nbsp| |+--------------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`returned`|
+| ||:diagtext:`address of` || ||:diagtext:`local variable`|| |
+| |+------------------------+| |+--------------------------+| |
+| ||:diagtext:`reference to`|| ||:diagtext:`parameter` || |
+| |+------------------------+| |+--------------------------+| |
++---------------------------+--------------------------+--------------------------------------------------------+----------------------------+----------------------------------------------------+
+
+
+-Wreturn-std-move
+-----------------
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------------+----------------------+---------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`local variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will be copied despite being` |nbsp| |+--------------------+| |nbsp| :diagtext:`by name`|
+| ||:diagtext:`returned`|| |
+| |+--------------------+| |
+| ||:diagtext:`thrown` || |
+| |+--------------------+| |
++-------------------------------------------------------------------------------------------------------------------------------------+----------------------+---------------------------+
+
+
+-Wreturn-std-move-in-c++11
+--------------------------
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`prior to the resolution of a defect report against ISO C++11, local variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`would have been copied despite being returned by name, due to its not matching the function return type`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-Wreturn-type
@@ -9149,17 +9789,6 @@ This diagnostic is enabled by default.
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
--Wrtti-for-exceptions
----------------------
-This diagnostic is enabled by default.
-
-**Diagnostic text:**
-
-+--------------------------------------------------------------------------------------+
-|:warning:`warning:` |nbsp| :diagtext:`implicitly enabling rtti for exception handling`|
-+--------------------------------------------------------------------------------------+
-
-
-Rsanitize-address
------------------
**Diagnostic text:**
@@ -9199,9 +9828,17 @@ This diagnostic is enabled by default.
|:warning:`warning:` |nbsp| :diagtext:`section attribute is specified on redeclared variable`|
+--------------------------------------------------------------------------------------------+
-+----------------------------------------------------------------------------------+
-|:warning:`warning:` |nbsp| :diagtext:`section does not match previous declaration`|
-+----------------------------------------------------------------------------------+
++------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`duplicate code segment specifiers`|
++------------------------------------------------------------------------+
+
++---------------------------+---------------------+-------------------------------------------------------+
+|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`does not match previous declaration`|
+| ||:diagtext:`codeseg`|| |
+| |+-------------------+| |
+| ||:diagtext:`section`|| |
+| |+-------------------+| |
++---------------------------+---------------------+-------------------------------------------------------+
-Wselector
@@ -9228,7 +9865,7 @@ Also controls `-Wselector-type-mismatch`_.
-------------
Some of the diagnostics controlled by this flag are enabled by default.
-Also controls `-Wself-assign-field`_.
+Also controls `-Wself-assign-field`_, `-Wself-assign-overloaded`_.
**Diagnostic text:**
@@ -9252,6 +9889,15 @@ This diagnostic is enabled by default.
+--------------------------------------------------------+-------------------------------+-----------------------------+
+-Wself-assign-overloaded
+------------------------
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`explicitly assigning value of variable of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to itself`|
++------------------------------------------------------------------------------------------------------------------------------------------+
+
+
-Wself-move
-----------
**Diagnostic text:**
@@ -9357,9 +10003,15 @@ Controls `-Wshadow`_, `-Wshadow-field`_, `-Wshadow-field-in-constructor`_, `-Wsh
--------------
**Diagnostic text:**
-+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|:warning:`warning:` |nbsp| :diagtext:`non-static data member '`:placeholder:`A`:diagtext:`' of '`:placeholder:`B`:diagtext:`' shadows member inherited from type '`:placeholder:`C`:diagtext:`'`|
-+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
++---------------------------+------------------------------------+--------------------------------+--------------------------------------------------+----------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| |+----------------------------------+| |nbsp| :placeholder:`A` |nbsp| |+------------------------------------------------+|:diagtext:`shadows member inherited from type` |nbsp| :placeholder:`C`|
+| ||:diagtext:`parameter` || || || |
+| |+----------------------------------+| |+------------------------------------------------+| |
+| ||:diagtext:`non-static data member`|| ||+----------------------------------------------+|| |
+| |+----------------------------------+| |||:diagtext:`of` |nbsp| :placeholder:`B` |nbsp| ||| |
+| | | ||+----------------------------------------------+|| |
+| | | |+------------------------------------------------+| |
++---------------------------+------------------------------------+--------------------------------+--------------------------------------------------+----------------------------------------------------------------------+
-Wshadow-field-in-constructor
@@ -9518,6 +10170,10 @@ This diagnostic is enabled by default.
|:warning:`warning:` |nbsp| :diagtext:`operand of ? changes signedness:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
+---------------------------------------------------------------------------------------------------------------------------------------------+
++-----------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`the resulting value is always non-negative after implicit conversion`|
++-----------------------------------------------------------------------------------------------------------+
+
-Wsign-promo
------------
@@ -9554,6 +10210,17 @@ This diagnostic is enabled by default.
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+-Wsizeof-pointer-div
+--------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' will return the size of the pointer, not the array itself`|
++-------------------------------------------------------------------------------------------------------------------------------+
+
+
-Wsizeof-pointer-memaccess
--------------------------
This diagnostic is enabled by default.
@@ -9728,6 +10395,17 @@ This diagnostic is enabled by default.
+----------------------------------------------------------------------------------------------------------------------------------------------------+
+-Wstdlibcxx-not-found
+---------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`include path for stdlibc++ 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.
@@ -9896,6 +10574,24 @@ This diagnostic is enabled by default.
+--------------------------------------------------------------------------------------------------------------------------------+
+-Wsuspicious-bzero
+------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'size' argument to bzero is '0'`|
++----------------------------------------------------------------------+
+
+
+-Wsuspicious-memaccess
+----------------------
+This diagnostic is enabled by default.
+
+Controls `-Wdynamic-class-memaccess`_, `-Wmemset-transposed-args`_, `-Wnontrivial-memaccess`_, `-Wsizeof-pointer-memaccess`_, `-Wsuspicious-bzero`_.
+
+
-Wswitch
--------
This diagnostic is enabled by default.
@@ -9906,25 +10602,25 @@ This diagnostic is enabled by default.
|:warning:`warning:` |nbsp| :diagtext:`overflow converting case value to switch condition type (`:placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`:diagtext:`)`|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-+---------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|:warning:`warning:` |nbsp| |+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
-| ||+-----------------------------------------------------------------------------------------------+ ||
-| |||:diagtext:`:enumeration value` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not handled in switch`| ||
-| ||+-----------------------------------------------------------------------------------------------+ ||
-| |+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
-| ||+-----------------------------------------------------------------------------------------------------------------------------------------------+ ||
-| |||:diagtext:`:enumeration values` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C` |nbsp| :diagtext:`not handled in switch`| ||
-| ||+-----------------------------------------------------------------------------------------------------------------------------------------------+ ||
-| |+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
-| ||+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
-| |||:diagtext:`:enumeration values` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D` |nbsp| :diagtext:`not handled in switch`| ||
-| ||+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
-| |+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
-| ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
-| |||:diagtext:`:`:placeholder:`A` |nbsp| :diagtext:`enumeration values not handled in switch:` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`...`|||
-| ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
-| |+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
-+---------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
++---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
+| ||+----------------------------------------------------------------------------------------------+ ||
+| |||:diagtext:`enumeration value` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not handled in switch`| ||
+| ||+----------------------------------------------------------------------------------------------+ ||
+| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
+| ||+----------------------------------------------------------------------------------------------------------------------------------------------+ ||
+| |||:diagtext:`enumeration values` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C` |nbsp| :diagtext:`not handled in switch`| ||
+| ||+----------------------------------------------------------------------------------------------------------------------------------------------+ ||
+| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
+| ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
+| |||:diagtext:`enumeration values` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D` |nbsp| :diagtext:`not handled in switch`| ||
+| ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
+| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
+| ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
+| |||:placeholder:`A` |nbsp| :diagtext:`enumeration values not handled in switch:` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`...`|||
+| ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
+| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
++---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+------------------------------------------------------------------------------------------------+
|:warning:`warning:` |nbsp| :diagtext:`case value not in enumerated type` |nbsp| :placeholder:`A`|
@@ -9950,25 +10646,25 @@ This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-------------
**Diagnostic text:**
-+---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|:warning:`warning:` |nbsp| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
-| ||+----------------------------------------------------------------------------------------------------------+ ||
-| |||:diagtext:`:enumeration value` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not explicitly handled in switch`| ||
-| ||+----------------------------------------------------------------------------------------------------------+ ||
-| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
-| ||+----------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
-| |||:diagtext:`:enumeration values` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C` |nbsp| :diagtext:`not explicitly handled in switch`| ||
-| ||+----------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
-| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
-| ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
-| |||:diagtext:`:enumeration values` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D` |nbsp| :diagtext:`not explicitly handled in switch`| ||
-| ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
-| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
-| ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
-| |||:diagtext:`:`:placeholder:`A` |nbsp| :diagtext:`enumeration values not explicitly handled in switch:` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`...`|||
-| ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
-| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
-+---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
++---------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
+| ||+---------------------------------------------------------------------------------------------------------+ ||
+| |||:diagtext:`enumeration value` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not explicitly handled in switch`| ||
+| ||+---------------------------------------------------------------------------------------------------------+ ||
+| |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
+| ||+---------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
+| |||:diagtext:`enumeration values` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C` |nbsp| :diagtext:`not explicitly handled in switch`| ||
+| ||+---------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
+| |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
+| ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
+| |||:diagtext:`enumeration values` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D` |nbsp| :diagtext:`not explicitly handled in switch`| ||
+| ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
+| |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
+| ||+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
+| |||:placeholder:`A` |nbsp| :diagtext:`enumeration values not explicitly handled in switch:` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`...`|||
+| ||+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
+| |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
++---------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-Wsync-fetch-and-nand-semantics-changed
@@ -9996,12 +10692,10 @@ Also controls `-Wtautological-constant-compare`_, `-Wtautological-overlap-compar
+---------------------------+---------------------------+--------------------------------------------------+------------------------+
|:warning:`warning:` |nbsp| |+-------------------------+|:diagtext:`comparison always evaluates to` |nbsp| |+----------------------+|
-| ||:diagtext:`self-` || ||:diagtext:`false` ||
+| ||:diagtext:`self-` || ||:diagtext:`a constant`||
| |+-------------------------+| |+----------------------+|
-| ||:diagtext:`array` |nbsp| || ||:diagtext:`true` ||
+| ||:diagtext:`array` |nbsp| || ||:placeholder:`C` ||
| |+-------------------------+| |+----------------------+|
-| | | ||:diagtext:`a constant`||
-| | | |+----------------------+|
+---------------------------+---------------------------+--------------------------------------------------+------------------------+
+-------------------------------------------------------------------------------------+-------------------+
@@ -10017,17 +10711,26 @@ Also controls `-Wtautological-constant-compare`_, `-Wtautological-overlap-compar
-------------------------------
This diagnostic is enabled by default.
-Also controls `-Wtautological-constant-out-of-range-compare`_, `-Wtautological-unsigned-enum-zero-compare`_, `-Wtautological-unsigned-zero-compare`_.
+Also controls `-Wtautological-constant-out-of-range-compare`_.
**Diagnostic text:**
-+---------------------------------------------------------+------------------+--------------------------------+------------------+-------------------------------------+-------------------+
-|:warning:`warning:` |nbsp| :diagtext:`comparison` |nbsp| |+----------------+| |nbsp| :placeholder:`C` |nbsp| |+----------------+| |nbsp| :diagtext:`is always` |nbsp| |+-----------------+|
-| ||:placeholder:`D`|| ||:placeholder:`B`|| ||:diagtext:`false`||
-| |+----------------+| |+----------------+| |+-----------------+|
-| ||:placeholder:`B`|| ||:placeholder:`D`|| ||:diagtext:`true` ||
-| |+----------------+| |+----------------+| |+-----------------+|
-+---------------------------------------------------------+------------------+--------------------------------+------------------+-------------------------------------+-------------------+
++----------------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-----------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`result of comparison of` |nbsp| |+----------------------------------------------+| |nbsp| :diagtext:`with` |nbsp| |+--------------------------------------------------------+| |nbsp| :diagtext:`is always` |nbsp| :placeholder:`E`|
+| ||+--------------------------------------------+|| ||+------------------------------------------------------+|| |
+| |||:diagtext:`constant` |nbsp| :placeholder:`A`||| |||:diagtext:`expression of type` |nbsp| :placeholder:`C`||| |
+| ||+--------------------------------------------+|| ||+------------------------------------------------------+|| |
+| |+----------------------------------------------+| |+--------------------------------------------------------+| |
+| ||:diagtext:`true` || ||:diagtext:`boolean expression` || |
+| |+----------------------------------------------+| |+--------------------------------------------------------+| |
+| ||:diagtext:`false` || | | |
+| |+----------------------------------------------+| | | |
++----------------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-----------------------------------------------------+
+
+
+-Wtautological-constant-in-range-compare
+----------------------------------------
+Controls `-Wtautological-type-limit-compare`_, `-Wtautological-unsigned-enum-zero-compare`_, `-Wtautological-unsigned-zero-compare`_.
-Wtautological-constant-out-of-range-compare
@@ -10036,17 +10739,17 @@ This diagnostic is enabled by default.
**Diagnostic text:**
-+------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-------------------------------------+-------------------+
-|:warning:`warning:` |nbsp| :diagtext:`comparison of` |nbsp| |+----------------------------------------------+| |nbsp| :diagtext:`with` |nbsp| |+--------------------------------------------------------+| |nbsp| :diagtext:`is always` |nbsp| |+-----------------+|
-| ||+--------------------------------------------+|| ||+------------------------------------------------------+|| ||:diagtext:`false`||
-| |||:diagtext:`constant` |nbsp| :placeholder:`A`||| |||:diagtext:`expression of type` |nbsp| :placeholder:`C`||| |+-----------------+|
-| ||+--------------------------------------------+|| ||+------------------------------------------------------+|| ||:diagtext:`true` ||
-| |+----------------------------------------------+| |+--------------------------------------------------------+| |+-----------------+|
-| ||:diagtext:`true` || ||:diagtext:`boolean expression` || | |
-| |+----------------------------------------------+| |+--------------------------------------------------------+| | |
-| ||:diagtext:`false` || | | | |
-| |+----------------------------------------------+| | | | |
-+------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-------------------------------------+-------------------+
++----------------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-----------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`result of comparison of` |nbsp| |+----------------------------------------------+| |nbsp| :diagtext:`with` |nbsp| |+--------------------------------------------------------+| |nbsp| :diagtext:`is always` |nbsp| :placeholder:`E`|
+| ||+--------------------------------------------+|| ||+------------------------------------------------------+|| |
+| |||:diagtext:`constant` |nbsp| :placeholder:`A`||| |||:diagtext:`expression of type` |nbsp| :placeholder:`C`||| |
+| ||+--------------------------------------------+|| ||+------------------------------------------------------+|| |
+| |+----------------------------------------------+| |+--------------------------------------------------------+| |
+| ||:diagtext:`true` || ||:diagtext:`boolean expression` || |
+| |+----------------------------------------------+| |+--------------------------------------------------------+| |
+| ||:diagtext:`false` || | | |
+| |+----------------------------------------------+| | | |
++----------------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-----------------------------------------------------+
-Wtautological-overlap-compare
@@ -10087,6 +10790,19 @@ This diagnostic is enabled by default.
+------------------------------------------------------------+------------------------+----------------------------------------------------------+-------------------------+-----------------------------------------------------+-------------------+
+-Wtautological-type-limit-compare
+---------------------------------
+**Diagnostic text:**
+
++-------------------------------------------------------------------+------------------+--------------------------------+------------------+-----------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`result of comparison` |nbsp| |+----------------+| |nbsp| :placeholder:`C` |nbsp| |+----------------+| |nbsp| :diagtext:`is always` |nbsp| :placeholder:`E`|
+| ||:placeholder:`D`|| ||:placeholder:`B`|| |
+| |+----------------+| |+----------------+| |
+| ||:placeholder:`B`|| ||:placeholder:`D`|| |
+| |+----------------+| |+----------------+| |
++-------------------------------------------------------------------+------------------+--------------------------------+------------------+-----------------------------------------------------+
+
+
-Wtautological-undefined-compare
--------------------------------
This diagnostic is enabled by default.
@@ -10112,32 +10828,28 @@ This diagnostic is enabled by default.
-Wtautological-unsigned-enum-zero-compare
-----------------------------------------
-This diagnostic is enabled by default.
-
**Diagnostic text:**
-+------------------------------------------------------------+--------------------------------------+--------------------------------+--------------------------------------+-------------------------------------+-------------------+
-|:warning:`warning:` |nbsp| :diagtext:`comparison of` |nbsp| |+------------------------------------+| |nbsp| :placeholder:`C` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`is always` |nbsp| |+-----------------+|
-| ||:placeholder:`D` || ||:diagtext:`unsigned enum expression`|| ||:diagtext:`false`||
-| |+------------------------------------+| |+------------------------------------+| |+-----------------+|
-| ||:diagtext:`unsigned enum expression`|| ||:placeholder:`D` || ||:diagtext:`true` ||
-| |+------------------------------------+| |+------------------------------------+| |+-----------------+|
-+------------------------------------------------------------+--------------------------------------+--------------------------------+--------------------------------------+-------------------------------------+-------------------+
++----------------------------------------------------------------------+--------------------------------------+--------------------------------+--------------------------------------+-----------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`result of comparison of` |nbsp| |+------------------------------------+| |nbsp| :placeholder:`C` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`is always` |nbsp| :placeholder:`E`|
+| ||:placeholder:`D` || ||:diagtext:`unsigned enum expression`|| |
+| |+------------------------------------+| |+------------------------------------+| |
+| ||:diagtext:`unsigned enum expression`|| ||:placeholder:`D` || |
+| |+------------------------------------+| |+------------------------------------+| |
++----------------------------------------------------------------------+--------------------------------------+--------------------------------+--------------------------------------+-----------------------------------------------------+
-Wtautological-unsigned-zero-compare
------------------------------------
-This diagnostic is enabled by default.
-
**Diagnostic text:**
-+------------------------------------------------------------+---------------------------------+--------------------------------+---------------------------------+-------------------------------------+-------------------+
-|:warning:`warning:` |nbsp| :diagtext:`comparison of` |nbsp| |+-------------------------------+| |nbsp| :placeholder:`C` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`is always` |nbsp| |+-----------------+|
-| ||:placeholder:`D` || ||:diagtext:`unsigned expression`|| ||:diagtext:`false`||
-| |+-------------------------------+| |+-------------------------------+| |+-----------------+|
-| ||:diagtext:`unsigned expression`|| ||:placeholder:`D` || ||:diagtext:`true` ||
-| |+-------------------------------+| |+-------------------------------+| |+-----------------+|
-+------------------------------------------------------------+---------------------------------+--------------------------------+---------------------------------+-------------------------------------+-------------------+
++----------------------------------------------------------------------+---------------------------------+--------------------------------+---------------------------------+-----------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`result of comparison of` |nbsp| |+-------------------------------+| |nbsp| :placeholder:`C` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`is always` |nbsp| :placeholder:`E`|
+| ||:placeholder:`D` || ||:diagtext:`unsigned expression`|| |
+| |+-------------------------------+| |+-------------------------------+| |
+| ||:diagtext:`unsigned expression`|| ||:placeholder:`D` || |
+| |+-------------------------------+| |+-------------------------------+| |
++----------------------------------------------------------------------+---------------------------------+--------------------------------+---------------------------------+-----------------------------------------------------+
-Wtentative-definition-incomplete-type
@@ -10188,17 +10900,17 @@ Controls `-Wthread-safety-analysis`_, `-Wthread-safety-attributes`_, `-Wthread-s
|:warning:`warning:` |nbsp| :diagtext:`cannot call function '`:placeholder:`B`:diagtext:`' while` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`C`:diagtext:`' is held`|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
-|:warning:`warning:` |nbsp| :diagtext:`calling function '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
-| ||+------------------------------------------+ ||
-| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
-| ||+------------------------------------------+ ||
-| |+--------------------------------------------------------+|
-| ||+------------------------------------------------------+||
-| |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
-| ||+------------------------------------------------------+||
-| |+--------------------------------------------------------+|
-+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
++---------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`calling function` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
+| ||+------------------------------------------+ ||
+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
+| ||+------------------------------------------+ ||
+| |+--------------------------------------------------------+|
+| ||+------------------------------------------------------+||
+| |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
+| ||+------------------------------------------------------+||
+| |+--------------------------------------------------------+|
++---------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
+--------------------------------------------------------------------------------------------------------------------------------------------------+
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is acquired exclusively and shared in the same scope`|
@@ -10224,45 +10936,45 @@ Controls `-Wthread-safety-analysis`_, `-Wthread-safety-attributes`_, `-Wthread-s
| |+---------------------+| |+---------------------+| |
+----------------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+-----------------------+--------------------------+
-+---------------------------+---------------------+---------------------------------------------------------------------------------------------------+-----------------------------------+
-|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by '`:placeholder:`A`:diagtext:`' requires holding` |nbsp| |+---------------------------------+|
-| ||:diagtext:`reading`|| ||:diagtext:`any mutex` ||
-| |+-------------------+| |+---------------------------------+|
-| ||:diagtext:`writing`|| ||:diagtext:`any mutex exclusively`||
-| |+-------------------+| |+---------------------------------+|
-+---------------------------+---------------------+---------------------------------------------------------------------------------------------------+-----------------------------------+
-
-+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
-|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
-| ||:diagtext:`reading`|| ||+------------------------------------------+ ||
-| |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
-| ||:diagtext:`writing`|| ||+------------------------------------------+ ||
-| |+-------------------+| |+--------------------------------------------------------+|
-| | | ||+------------------------------------------------------+||
-| | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
-| | | ||+------------------------------------------------------+||
-| | | |+--------------------------------------------------------+|
-+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
-
-+---------------------------+---------------------+------------------------------------------------------------------------------------+-----------------------------------+
-|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable '`:placeholder:`A`:diagtext:`' requires holding` |nbsp| |+---------------------------------+|
-| ||:diagtext:`reading`|| ||:diagtext:`any mutex` ||
-| |+-------------------+| |+---------------------------------+|
-| ||:diagtext:`writing`|| ||:diagtext:`any mutex exclusively`||
-| |+-------------------+| |+---------------------------------+|
-+---------------------------+---------------------+------------------------------------------------------------------------------------+-----------------------------------+
-
-+---------------------------+---------------------+------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
-|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
-| ||:diagtext:`reading`|| ||+------------------------------------------+ ||
-| |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
-| ||:diagtext:`writing`|| ||+------------------------------------------+ ||
-| |+-------------------+| |+--------------------------------------------------------+|
-| | | ||+------------------------------------------------------+||
-| | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
-| | | ||+------------------------------------------------------+||
-| | | |+--------------------------------------------------------+|
-+---------------------------+---------------------+------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
++---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------+-----------------------------------+
+|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires holding` |nbsp| |+---------------------------------+|
+| ||:diagtext:`reading`|| ||:diagtext:`any mutex` ||
+| |+-------------------+| |+---------------------------------+|
+| ||:diagtext:`writing`|| ||:diagtext:`any mutex exclusively`||
+| |+-------------------+| |+---------------------------------+|
++---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------+-----------------------------------+
+
++---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
+|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
+| ||:diagtext:`reading`|| ||+------------------------------------------+ ||
+| |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
+| ||:diagtext:`writing`|| ||+------------------------------------------+ ||
+| |+-------------------+| |+--------------------------------------------------------+|
+| | | ||+------------------------------------------------------+||
+| | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
+| | | ||+------------------------------------------------------+||
+| | | |+--------------------------------------------------------+|
++---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
+
++---------------------------+---------------------+------------------------------------------------------------------------------------------------+-----------------------------------+
+|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires holding` |nbsp| |+---------------------------------+|
+| ||:diagtext:`reading`|| ||:diagtext:`any mutex` ||
+| |+-------------------+| |+---------------------------------+|
+| ||:diagtext:`writing`|| ||:diagtext:`any mutex exclusively`||
+| |+-------------------+| |+---------------------------------+|
++---------------------------+---------------------+------------------------------------------------------------------------------------------------+-----------------------------------+
+
++---------------------------+---------------------+------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
+|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
+| ||:diagtext:`reading`|| ||+------------------------------------------+ ||
+| |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
+| ||:diagtext:`writing`|| ||+------------------------------------------+ ||
+| |+-------------------+| |+--------------------------------------------------------+|
+| | | ||+------------------------------------------------------+||
+| | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
+| | | ||+------------------------------------------------------+||
+| | | |+--------------------------------------------------------+|
++---------------------------+---------------------+------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
-Wthread-safety-attributes
@@ -10289,6 +11001,14 @@ Controls `-Wthread-safety-analysis`_, `-Wthread-safety-attributes`_, `-Wthread-s
|:warning:`warning:` |nbsp| :diagtext:`ignoring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute because its argument is invalid`|
+------------------------------------------------------------------------------------------------------------------------------------+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute without capability arguments refers to 'this', but` |nbsp| :placeholder:`B` |nbsp| :diagtext:`isn't annotated with 'capability' or 'scoped\_lockable' attribute`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute without capability arguments can only be applied to non-static methods of a class`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------+
+
-Wthread-safety-beta
--------------------
@@ -10312,70 +11032,70 @@ Controls `-Wthread-safety-analysis`_, `-Wthread-safety-attributes`_, `-Wthread-s
-----------------------
**Diagnostic text:**
-+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
-|:warning:`warning:` |nbsp| :diagtext:`calling function '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
-| ||+------------------------------------------+ ||
-| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
-| ||+------------------------------------------+ ||
-| |+--------------------------------------------------------+|
-| ||+------------------------------------------------------+||
-| |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
-| ||+------------------------------------------------------+||
-| |+--------------------------------------------------------+|
-+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
-
-+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
-|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
-| ||:diagtext:`reading`|| ||+------------------------------------------+ ||
-| |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
-| ||:diagtext:`writing`|| ||+------------------------------------------+ ||
-| |+-------------------+| |+--------------------------------------------------------+|
-| | | ||+------------------------------------------------------+||
-| | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
-| | | ||+------------------------------------------------------+||
-| | | |+--------------------------------------------------------+|
-+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
-
-+---------------------------+---------------------+------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
-|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
-| ||:diagtext:`reading`|| ||+------------------------------------------+ ||
-| |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
-| ||:diagtext:`writing`|| ||+------------------------------------------+ ||
-| |+-------------------+| |+--------------------------------------------------------+|
-| | | ||+------------------------------------------------------+||
-| | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
-| | | ||+------------------------------------------------------+||
-| | | |+--------------------------------------------------------+|
-+---------------------------+---------------------+------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
++---------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`calling function` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
+| ||+------------------------------------------+ ||
+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
+| ||+------------------------------------------+ ||
+| |+--------------------------------------------------------+|
+| ||+------------------------------------------------------+||
+| |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
+| ||+------------------------------------------------------+||
+| |+--------------------------------------------------------+|
++---------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
+
++---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
+|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
+| ||:diagtext:`reading`|| ||+------------------------------------------+ ||
+| |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
+| ||:diagtext:`writing`|| ||+------------------------------------------+ ||
+| |+-------------------+| |+--------------------------------------------------------+|
+| | | ||+------------------------------------------------------+||
+| | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
+| | | ||+------------------------------------------------------+||
+| | | |+--------------------------------------------------------+|
++---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
+
++---------------------------+---------------------+------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
+|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
+| ||:diagtext:`reading`|| ||+------------------------------------------+ ||
+| |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
+| ||:diagtext:`writing`|| ||+------------------------------------------+ ||
+| |+-------------------+| |+--------------------------------------------------------+|
+| | | ||+------------------------------------------------------+||
+| | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
+| | | ||+------------------------------------------------------+||
+| | | |+--------------------------------------------------------+|
++---------------------------+---------------------+------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
-Wthread-safety-reference
-------------------------
**Diagnostic text:**
-+----------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
-|:warning:`warning:` |nbsp| :diagtext:`passing variable '`:placeholder:`B`:diagtext:`' by reference requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
-| ||+------------------------------------------+ ||
-| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
-| ||+------------------------------------------+ ||
-| |+--------------------------------------------------------+|
-| ||+------------------------------------------------------+||
-| |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
-| ||+------------------------------------------------------+||
-| |+--------------------------------------------------------+|
-+----------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
-
-+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
-|:warning:`warning:` |nbsp| :diagtext:`passing the value that '`:placeholder:`B`:diagtext:`' points to by reference requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
-| ||+------------------------------------------+ ||
-| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
-| ||+------------------------------------------+ ||
-| |+--------------------------------------------------------+|
-| ||+------------------------------------------------------+||
-| |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
-| ||+------------------------------------------------------+||
-| |+--------------------------------------------------------+|
-+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`passing variable` |nbsp| :placeholder:`B` |nbsp| :diagtext:`by reference requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
+| ||+------------------------------------------+ ||
+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
+| ||+------------------------------------------+ ||
+| |+--------------------------------------------------------+|
+| ||+------------------------------------------------------+||
+| |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
+| ||+------------------------------------------------------+||
+| |+--------------------------------------------------------+|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`passing the value that` |nbsp| :placeholder:`B` |nbsp| :diagtext:`points to by reference requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
+| ||+------------------------------------------+ ||
+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
+| ||+------------------------------------------+ ||
+| |+--------------------------------------------------------+|
+| ||+------------------------------------------------------+||
+| |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
+| ||+------------------------------------------------------+||
+| |+--------------------------------------------------------+|
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
-Wthread-safety-verbose
@@ -10656,6 +11376,17 @@ This diagnostic is enabled by default.
+---------------------------------------------------------------------------------------------+
+-Wunicode-homoglyph
+-------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`treating Unicode character <U+`:placeholder:`A`:diagtext:`> as identifier character rather than as '`:placeholder:`B`:diagtext:`' symbol`|
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
-Wunicode-whitespace
--------------------
This diagnostic is enabled by default.
@@ -10667,6 +11398,17 @@ This diagnostic is enabled by default.
+-------------------------------------------------------------------------------+
+-Wunicode-zero-width
+--------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`identifier contains Unicode character <U+`:placeholder:`A`:diagtext:`> that is invisible in some environments`|
++----------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
-Wuninitialized
---------------
Some of the diagnostics controlled by this flag are enabled by default.
@@ -10718,6 +11460,10 @@ This diagnostic is enabled by default.
|:warning:`warning:` |nbsp| :diagtext:`unknown argument ignored in clang-cl: '`:placeholder:`A`:diagtext:`'`|
+-----------------------------------------------------------------------------------------------------------+
++---------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unknown argument ignored in clang-cl '`:placeholder:`A`:diagtext:`' (did you mean '`:placeholder:`B`:diagtext:`'?)`|
++---------------------------------------------------------------------------------------------------------------------------------------------------------+
+
-Wunknown-attributes
--------------------
@@ -11048,6 +11794,17 @@ This diagnostic is enabled by default.
+-------------------------------------------------------------------------------------------------------------------------------------------------+
+-Wunsupported-target-opt
+------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`debug information option '`:placeholder:`A`:diagtext:`' is not supported for target '`:placeholder:`B`:diagtext:`'`|
++---------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
-Wunsupported-visibility
------------------------
This diagnostic is enabled by default.
@@ -11138,19 +11895,17 @@ This diagnostic is enabled by default.
**Diagnostic text:**
-+---------------------------+-----------------------------------------+--------------------------------------------+
-|:warning:`warning:` |nbsp| |+---------------------------------------+| |nbsp| :diagtext:`comparison result unused`|
-| ||+----------------+--------------------+|| |
-| |||+--------------+|:diagtext:`equality`||| |
-| |||| || ||| |
-| |||+--------------+| ||| |
-| ||||:diagtext:`in`|| ||| |
-| |||+--------------+| ||| |
-| ||+----------------+--------------------+|| |
-| |+---------------------------------------+| |
-| ||:diagtext:`relational` || |
-| |+---------------------------------------+| |
-+---------------------------+-----------------------------------------+--------------------------------------------+
++---------------------------+------------------------+--------------------------------------------+
+|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`comparison result unused`|
+| ||:diagtext:`equality` || |
+| |+----------------------+| |
+| ||:diagtext:`inequality`|| |
+| |+----------------------+| |
+| ||:diagtext:`relational`|| |
+| |+----------------------+| |
+| ||:diagtext:`three-way` || |
+| |+----------------------+| |
++---------------------------+------------------------+--------------------------------------------+
-Wunused-const-variable