[www-releases] r342530 - 7.0.0 files
Hans Wennborg via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 19 02:40:15 PDT 2018
Added: www-releases/trunk/7.0.0/tools/clang/docs/_sources/DiagnosticsReference.rst.txt
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.0/tools/clang/docs/_sources/DiagnosticsReference.rst.txt?rev=342530&view=auto
==============================================================================
--- www-releases/trunk/7.0.0/tools/clang/docs/_sources/DiagnosticsReference.rst.txt (added)
+++ www-releases/trunk/7.0.0/tools/clang/docs/_sources/DiagnosticsReference.rst.txt Wed Sep 19 02:40:08 2018
@@ -0,0 +1,11972 @@
+..
+ -------------------------------------------------------------------
+ NOTE: This file is automatically generated by running clang-tblgen
+ -gen-diag-docs. Do not edit this file by hand!!
+ -------------------------------------------------------------------
+
+.. Add custom CSS to output. FIXME: This should be put into <head> rather
+ than the start of <body>.
+.. raw:: html
+
+ <style>
+ table.docutils {
+ width: 1px;
+ }
+ table.docutils td {
+ border: none;
+ padding: 0 0 0 0.2em;
+ vertical-align: middle;
+ white-space: nowrap;
+ width: 1px;
+ font-family: monospace;
+ }
+ table.docutils tr + tr {
+ border-top: 0.2em solid #aaa;
+ }
+ .error {
+ font-family: monospace;
+ font-weight: bold;
+ color: #c00;
+ }
+ .warning {
+ font-family: monospace;
+ font-weight: bold;
+ color: #80a;
+ }
+ .remark {
+ font-family: monospace;
+ font-weight: bold;
+ color: #00c;
+ }
+ .diagtext {
+ font-family: monospace;
+ font-weight: bold;
+ }
+ </style>
+
+.. FIXME: rST doesn't support formatting this, so we format all <td> elements
+ as monospace font face instead.
+.. |nbsp| unicode:: 0xA0
+ :trim:
+
+.. Roles generated by clang-tblgen.
+.. role:: error
+.. role:: warning
+.. role:: remark
+.. role:: diagtext
+.. role:: placeholder(emphasis)
+
+=========================
+Diagnostic flags in Clang
+=========================
+.. contents::
+ :local:
+
+Introduction
+============
+
+This page lists the diagnostic flags currently supported by Clang.
+
+Diagnostic flags
+================
+
+-W
+--
+Synonym for `-Wextra`_.
+
+
+-W#pragma-messages
+------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
+The text of this diagnostic is not controlled by Clang.
+
+
+-W#warnings
+-----------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
+The text of this diagnostic is not controlled by Clang.
+
+
+-WCFString-literal
+------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`input conversion stopped due to an input byte that does not belong to the input codeset UTF-8`|
++------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-WCL4
+-----
+Some of the diagnostics controlled by this flag are enabled by default.
+
+Controls `-Wall`_, `-Wextra`_.
+
+
+-WIndependentClass-attribute
+----------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'objc\_independent\_class' attribute may be put on a typedef only; attribute is ignored`|
++------------------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'objc\_independent\_class' attribute may be put on Objective-C object pointer type only; attribute is ignored`|
++----------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-WNSObject-attribute
+--------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'NSObject' attribute may be put on a typedef only; attribute is ignored`|
++--------------------------------------------------------------------------------------------------------------+
+
+
+-Wabi
+-----
+This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
+
+-Wabsolute-value
+----------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`absolute value function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`given an argument of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`but has parameter of type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`which may cause truncation of value`|
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------+----------------------+---------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`taking the absolute value of` |nbsp| |+--------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is suspicious`|
+| ||:diagtext:`pointer` || |
+| |+--------------------+| |
+| ||:diagtext:`function`|| |
+| |+--------------------+| |
+| ||:diagtext:`array` || |
+| |+--------------------+| |
++---------------------------------------------------------------------------+----------------------+---------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`taking the absolute value of unsigned type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has no effect`|
++------------------------------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------+----------------------------+------------------------------------------------------------------------------------------------------------------+----------------------------+------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`using` |nbsp| |+--------------------------+| |nbsp| :diagtext:`absolute value function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when argument is of` |nbsp| |+--------------------------+| |nbsp| :diagtext:`type`|
+| ||:diagtext:`integer` || ||:diagtext:`integer` || |
+| |+--------------------------+| |+--------------------------+| |
+| ||:diagtext:`floating point`|| ||:diagtext:`floating point`|| |
+| |+--------------------------+| |+--------------------------+| |
+| ||:diagtext:`complex` || ||:diagtext:`complex` || |
+| |+--------------------------+| |+--------------------------+| |
++----------------------------------------------------+----------------------------+------------------------------------------------------------------------------------------------------------------+----------------------------+------------------------+
+
+
+-Wabstract-final-class
+----------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------+--------------------+-------------+
+|:warning:`warning:` |nbsp| :diagtext:`abstract class is marked '`|+------------------+|:diagtext:`'`|
+| ||:diagtext:`final` || |
+| |+------------------+| |
+| ||:diagtext:`sealed`|| |
+| |+------------------+| |
++-----------------------------------------------------------------+--------------------+-------------+
+
+
+-Wabstract-vbase-init
+---------------------
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`initializer for virtual base class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of abstract class` |nbsp| :placeholder:`B` |nbsp| :diagtext:`will never be used`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Waddress
+---------
+This diagnostic is enabled by default.
+
+Controls `-Wpointer-bool-conversion`_, `-Wstring-compare`_, `-Wtautological-pointer-compare`_.
+
+
+-Waddress-of-packed-member
+--------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`taking address of packed member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of class or structure` |nbsp| :placeholder:`B` |nbsp| :diagtext:`may result in an unaligned pointer value`|
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Waddress-of-temporary
+----------------------
+This diagnostic is an error by default, but the flag ``-Wno-address-of-temporary`` can be used to disable the error.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------+
+|:error:`error:` |nbsp| :diagtext:`taking the address of a temporary object of type` |nbsp| :placeholder:`A`|
++-----------------------------------------------------------------------------------------------------------+
+
+
+-Waggregate-return
+------------------
+This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
+
+-Wall
+-----
+Some of the diagnostics controlled by this flag are enabled by default.
+
+Controls `-Wmost`_, `-Wparentheses`_, `-Wswitch`_, `-Wswitch-bool`_.
+
+
+-Walloca-with-align-alignof
+---------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`second argument to \_\_builtin\_alloca\_with\_align is supposed to be in bits`|
++--------------------------------------------------------------------------------------------------------------------+
+
+
+-Wambiguous-delete
+------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`multiple suitable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`functions for` |nbsp| :placeholder:`B`:diagtext:`; no 'operator delete' function will be invoked if initialization throws an exception`|
++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wambiguous-ellipsis
+--------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------+---------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'...' in this location creates a C-style varargs function`|+-------------------------------------------+|
+| ||:diagtext:`, not a function parameter pack`||
+| |+-------------------------------------------+|
+| || ||
+| |+-------------------------------------------+|
++------------------------------------------------------------------------------------------------+---------------------------------------------+
+
+
+-Wambiguous-macro
+-----------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`ambiguous expansion of macro` |nbsp| :placeholder:`A`|
++-------------------------------------------------------------------------------------------+
+
+
+-Wambiguous-member-template
+---------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`lookup of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in member access expression is ambiguous; using member of` |nbsp| :placeholder:`B`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wanalyzer-incompatible-plugin
+------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`checker plugin '`:placeholder:`A`:diagtext:`' is not compatible with this version of the analyzer`|
++----------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wanonymous-pack-parens
+-----------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`ISO C++11 requires a parenthesized pack declaration to have a name`|
++---------------------------------------------------------------------------------------------------------+
+
+
+-Warc
+-----
+This diagnostic is enabled by default.
+
+Controls `-Warc-non-pod-memaccess`_, `-Warc-retain-cycles`_, `-Warc-unsafe-retained-assign`_.
+
+
+-Warc-bridge-casts-disallowed-in-nonarc
+---------------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' casts have no effect when not using ARC`|
++-------------------------------------------------------------------------------------------------------------+
+
+
+-Warc-maybe-repeated-use-of-weak
+--------------------------------
+**Diagnostic text:**
+
++---------------------------------------------------+-------------------------------+------------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`weak` |nbsp| |+-----------------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`may be accessed multiple times in this` |nbsp| |+--------------------+| |nbsp| :diagtext:`and may be unpredictably set to nil; assign to a strong variable to keep the object alive`|
+| ||:diagtext:`variable` || ||:diagtext:`function`|| |
+| |+-----------------------------+| |+--------------------+| |
+| ||:diagtext:`property` || ||:diagtext:`method` || |
+| |+-----------------------------+| |+--------------------+| |
+| ||:diagtext:`implicit property`|| ||:diagtext:`block` || |
+| |+-----------------------------+| |+--------------------+| |
+| ||:diagtext:`instance variable`|| ||:diagtext:`lambda` || |
+| |+-----------------------------+| |+--------------------+| |
++---------------------------------------------------+-------------------------------+------------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+
+
+
+-Warc-non-pod-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 ownership-qualified type` |nbsp| :placeholder:`C`|
+| ||:diagtext:`destination for`|| |
+| |+---------------------------+| |
+| ||:diagtext:`source of` || |
+| |+---------------------------+| |
++---------------------------+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Warc-performSelector-leaks
+---------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`performSelector may cause a leak because its selector is unknown`|
++-------------------------------------------------------------------------------------------------------+
+
+
+-Warc-repeated-use-of-weak
+--------------------------
+Also controls `-Warc-maybe-repeated-use-of-weak`_.
+
+**Diagnostic text:**
+
++---------------------------------------------------+-------------------------------+--------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`weak` |nbsp| |+-----------------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is accessed multiple times in this` |nbsp| |+--------------------+| |nbsp| :diagtext:`but may be unpredictably set to nil; assign to a strong variable to keep the object alive`|
+| ||:diagtext:`variable` || ||:diagtext:`function`|| |
+| |+-----------------------------+| |+--------------------+| |
+| ||:diagtext:`property` || ||:diagtext:`method` || |
+| |+-----------------------------+| |+--------------------+| |
+| ||:diagtext:`implicit property`|| ||:diagtext:`block` || |
+| |+-----------------------------+| |+--------------------+| |
+| ||:diagtext:`instance variable`|| ||:diagtext:`lambda` || |
+| |+-----------------------------+| |+--------------------+| |
++---------------------------------------------------+-------------------------------+--------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+
+
+
+-Warc-retain-cycles
+-------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`capturing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`strongly in this block is likely to lead to a retain cycle`|
++------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Warc-unsafe-retained-assign
+----------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------+---------------------------------+-------------------------------------+----------------------+------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`assigning` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`to a weak` |nbsp| |+--------------------+|:diagtext:`; object will be released after assignment`|
+| ||:diagtext:`array literal` || ||:diagtext:`property`|| |
+| |+-------------------------------+| |+--------------------+| |
+| ||:diagtext:`dictionary literal` || ||:diagtext:`variable`|| |
+| |+-------------------------------+| |+--------------------+| |
+| ||:diagtext:`numeric literal` || | | |
+| |+-------------------------------+| | | |
+| ||:diagtext:`boxed expression` || | | |
+| |+-------------------------------+| | | |
+| ||:diagtext:`<should not happen>`|| | | |
+| |+-------------------------------+| | | |
+| ||:diagtext:`block literal` || | | |
+| |+-------------------------------+| | | |
++--------------------------------------------------------+---------------------------------+-------------------------------------+----------------------+------------------------------------------------------+
+
++---------------------------------------------------------------------------+--------------------------------+--------+----------------------+------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`assigning retained object to` |nbsp| |+------------------------------+| |nbsp| |+--------------------+|:diagtext:`; object will be released after assignment`|
+| ||:diagtext:`weak` || ||:diagtext:`property`|| |
+| |+------------------------------+| |+--------------------+| |
+| ||:diagtext:`unsafe\_unretained`|| ||:diagtext:`variable`|| |
+| |+------------------------------+| |+--------------------+| |
++---------------------------------------------------------------------------+--------------------------------+--------+----------------------+------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`assigning retained object to unsafe property; object will be released after assignment`|
++-----------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wargument-outside-range
+------------------------
+This diagnostic is an error by default, but the flag ``-Wno-argument-outside-range`` can be used to disable the error.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:error:`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.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+
+|:warning:`warning:` |nbsp| :diagtext:`array index` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is past the end of the array (which contains` |nbsp| :placeholder:`B` |nbsp| :diagtext:`element`|+-------------+|:diagtext:`)`|
+| || || |
+| |+-------------+| |
+| ||:diagtext:`s`|| |
+| |+-------------+| |
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+
+
++----------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`array index` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is before the beginning of the array`|
++----------------------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`array argument is too small; contains` |nbsp| :placeholder:`A` |nbsp| :diagtext:`elements, callee requires at least` |nbsp| :placeholder:`B`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'static' has no effect on zero-length arrays`|
++-----------------------------------------------------------------------------------+
+
+
+-Warray-bounds-pointer-arithmetic
+---------------------------------
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+
+|:warning:`warning:` |nbsp| :diagtext:`the pointer incremented by` |nbsp| :placeholder:`A` |nbsp| :diagtext:`refers past the end of the array (that contains` |nbsp| :placeholder:`B` |nbsp| :diagtext:`element`|+-------------+|:diagtext:`)`|
+| || || |
+| |+-------------+| |
+| ||:diagtext:`s`|| |
+| |+-------------+| |
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`the pointer decremented by` |nbsp| :placeholder:`A` |nbsp| :diagtext:`refers before the beginning of the array`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wasm
+-----
+This diagnostic is enabled by default.
+
+Controls `-Wasm-ignored-qualifier`_, `-Wasm-operand-widths`_.
+
+
+-Wasm-ignored-qualifier
+-----------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`ignored` |nbsp| :placeholder:`A` |nbsp| :diagtext:`qualifier on asm`|
++----------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`meaningless 'volatile' on asm outside function`|
++-------------------------------------------------------------------------------------+
+
+
+-Wasm-operand-widths
+--------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`value size does not match register size specified by the constraint and modifier`|
++-----------------------------------------------------------------------------------------------------------------------+
+
+
+-Wassign-enum
+-------------
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`integer constant not in range of enumerated type` |nbsp| :placeholder:`A`|
++---------------------------------------------------------------------------------------------------------------+
+
+
+-Wassume
+--------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`the argument to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has side effects that will be discarded`|
++-----------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wat-protocol
+-------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`@protocol is using a forward protocol declaration of` |nbsp| :placeholder:`A`|
++-------------------------------------------------------------------------------------------------------------------+
+
+
+-Watimport-in-framework-header
+------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------------------------------+
+|: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| :diagtext:`misaligned or large atomic operation may incur significant performance penalty`|
++---------------------------------------------------------------------------------------------------------------------+
+
+
+-Watomic-memory-ordering
+------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`memory order argument to atomic operation is invalid`|
++-------------------------------------------------------------------------------------------+
+
+
+-Watomic-properties
+-------------------
+Controls `-Wcustom-atomic-properties`_, `-Wimplicit-atomic-properties`_.
+
+
+-Watomic-property-with-user-defined-accessor
+--------------------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------------------------------+--------------------+-----------------------------------------------+--------------------+
+|:warning:`warning:` |nbsp| :diagtext:`writable atomic property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot pair a synthesized` |nbsp| |+------------------+| |nbsp| :diagtext:`with a user defined` |nbsp| |+------------------+|
+| ||:diagtext:`getter`|| ||:diagtext:`getter`||
+| |+------------------+| |+------------------+|
+| ||:diagtext:`setter`|| ||:diagtext:`setter`||
+| |+------------------+| |+------------------+|
++--------------------------------------------------------------------------------------------------------------------------------------------+--------------------+-----------------------------------------------+--------------------+
+
+
+-Wattribute-packed-for-bitfield
+-------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'packed' attribute was ignored on bit-fields with single-byte alignment in older versions of GCC and Clang`|
++-------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wattributes
+------------
+This diagnostic is enabled by default.
+
+Controls `-Wignored-attributes`_, `-Wunknown-attributes`_.
+
+
+-Wauto-disable-vptr-sanitizer
+-----------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`implicitly disabling vptr sanitizer because rtti wasn't enabled`|
++------------------------------------------------------------------------------------------------------+
+
+
+-Wauto-import
+-------------
+**Diagnostic text:**
+
++-------------------------------------------------+---------------------------------+-------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`treating #`|+-------------------------------+| |nbsp| :diagtext:`as an import of module '`:placeholder:`B`:diagtext:`'`|
+| ||:diagtext:`include` || |
+| |+-------------------------------+| |
+| ||:diagtext:`import` || |
+| |+-------------------------------+| |
+| ||:diagtext:`include\_next` || |
+| |+-------------------------------+| |
+| ||:diagtext:`\_\_include\_macros`|| |
+| |+-------------------------------+| |
++-------------------------------------------------+---------------------------------+-------------------------------------------------------------------------+
+
+
+-Wauto-storage-class
+--------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'auto' storage class specifier is not permitted in C++11, and will not be supported in future releases`|
++---------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wauto-var-id
+-------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'auto' deduced as 'id' in declaration of` |nbsp| :placeholder:`A`|
++-------------------------------------------------------------------------------------------------------+
+
+
+-Wavailability
+--------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------+
+|: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:`unknown platform` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in availability macro`|
++------------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------------------------+------------------------+-------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`feature cannot be` |nbsp| |+----------------------+| |nbsp| :diagtext:`in` |nbsp| :placeholder:`B` |nbsp| :diagtext:`version` |nbsp| :placeholder:`C` |nbsp| :diagtext:`before it was` |nbsp| |+----------------------+| |nbsp| :diagtext:`in version` |nbsp| :placeholder:`E`:diagtext:`; attribute ignored`|
+| ||:diagtext:`introduced`|| ||:diagtext:`introduced`|| |
+| |+----------------------+| |+----------------------+| |
+| ||:diagtext:`deprecated`|| ||:diagtext:`deprecated`|| |
+| |+----------------------+| |+----------------------+| |
+| ||:diagtext:`obsoleted` || ||:diagtext:`obsoleted` || |
+| |+----------------------+| |+----------------------+| |
++----------------------------------------------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------------------------+------------------------+-------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`use same version number separators '\_' or '.'; as in 'major\[.minor\[.subminor\]\]'`|
++---------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`availability does not match previous declaration`|
++---------------------------------------------------------------------------------------+
+
++---------------------------+--------------------------------+--------------------------+-------------------------------+--------+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| |+------------------------------+|:diagtext:`method` |nbsp| |+-----------------------------+| |nbsp| |+---------------------------------------------+| |nbsp| :diagtext:`on` |nbsp| :placeholder:`B` |nbsp| :diagtext:`(`:placeholder:`C` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`D`:diagtext:`)`|
+| || || ||:diagtext:`introduced after` || ||:diagtext:`the protocol method it implements`|| |
+| |+------------------------------+| |+-----------------------------+| |+---------------------------------------------+| |
+| ||:diagtext:`overriding` |nbsp| || ||:diagtext:`deprecated before`|| ||:diagtext:`overridden method` || |
+| |+------------------------------+| |+-----------------------------+| |+---------------------------------------------+| |
+| | | ||:diagtext:`obsoleted before` || | | |
+| | | |+-----------------------------+| | | |
++---------------------------+--------------------------------+--------------------------+-------------------------------+--------+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------+--------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------+--------------------------------+
+|:warning:`warning:` |nbsp| |+------------------------------+|:diagtext:`method cannot be unavailable on` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when` |nbsp| |+---------------------------------------------+| |nbsp| :diagtext:`is available`|
+| || || ||:diagtext:`the protocol method it implements`|| |
+| |+------------------------------+| |+---------------------------------------------+| |
+| ||:diagtext:`overriding` |nbsp| || ||:diagtext:`its overridden method` || |
+| |+------------------------------+| |+---------------------------------------------+| |
++---------------------------+--------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------+--------------------------------+
+
+
+-Wbackend-plugin
+----------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
+The text of this diagnostic is not controlled by Clang.
+
+
+-Wbackslash-newline-escape
+--------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`backslash and newline separated by space`|
++-------------------------------------------------------------------------------+
+
+
+-Wbad-function-cast
+-------------------
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`cast from function call of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to non-matching type` |nbsp| :placeholder:`B`|
++--------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wbinary-literal
+----------------
+Controls `-Wc++14-binary-literal`_, `-Wc++98-c++11-compat-binary-literal`_, `-Wgnu-binary-literal`_.
+
+
+-Wbind-to-temporary-copy
+------------------------
+Also controls `-Wc++98-compat-bind-to-temporary-copy`_.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+
+|:warning:`warning:` |nbsp| :diagtext:`C++98 requires an accessible copy constructor for class` |nbsp| :placeholder:`C` |nbsp| :diagtext:`when binding a reference to a temporary; was` |nbsp| |+---------------------+|
+| ||:diagtext:`private` ||
+| |+---------------------+|
+| ||:diagtext:`protected`||
+| |+---------------------+|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+
+
++--------------------------------------------------------------------+------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
+|: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
+------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`implicit truncation from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to bit-field changes value from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wbitfield-enum-conversion
+--------------------------
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`bit-field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not wide enough to store all enumerators of` |nbsp| :placeholder:`B`|
++------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`signed bit-field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`needs an extra bit to represent the largest positive enumerators of` |nbsp| :placeholder:`B`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`assigning value of signed enum type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to unsigned bit-field` |nbsp| :placeholder:`A`:diagtext:`; negative enumerators of enum` |nbsp| :placeholder:`B` |nbsp| :diagtext:`will be converted to positive values`|
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wbitfield-width
+----------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+
+|:warning:`warning:` |nbsp| :diagtext:`width of anonymous bit-field (`:placeholder:`A` |nbsp| :diagtext:`bits) exceeds width of its type; value will be truncated to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`bit`|+-------------+|
+| || ||
+| |+-------------+|
+| ||:diagtext:`s`||
+| |+-------------+|
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+
+|:warning:`warning:` |nbsp| :diagtext:`width of bit-field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`(`:placeholder:`B` |nbsp| :diagtext:`bits) exceeds the width of its type; value will be truncated to` |nbsp| :placeholder:`C` |nbsp| :diagtext:`bit`|+-------------+|
+| || ||
+| |+-------------+|
+| ||:diagtext:`s`||
+| |+-------------+|
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+
+
+
+-Wbitwise-op-parentheses
+------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' within '`:placeholder:`B`:diagtext:`'`|
++-----------------------------------------------------------------------------------------------------------+
+
+
+-Wblock-capture-autoreleasing
+-----------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`block captures an autoreleasing out-parameter, which may result in use-after-free bugs`|
++-----------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wbool-conversion
+-----------------
+This diagnostic is enabled by default.
+
+Also controls `-Wpointer-bool-conversion`_, `-Wundefined-bool-conversion`_.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`initialization of pointer of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to null from a constant boolean expression`|
++--------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wbool-conversions
+------------------
+Synonym for `-Wbool-conversion`_.
+
+
+-Wbraced-scalar-init
+--------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`braces around scalar initializer`|
++-----------------------------------------------------------------------+
+
+
+-Wbridge-cast
+-------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bridges to` |nbsp| :placeholder:`B`:diagtext:`, not` |nbsp| :placeholder:`C`|
++------------------------------------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot bridge to` |nbsp| :placeholder:`B`|
++-------------------------------------------------------------------------------------------------------+
+
+
+-Wbuiltin-macro-redefined
+-------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`redefining builtin macro`|
++---------------------------------------------------------------+
+
++---------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`undefining builtin macro`|
++---------------------------------------------------------------+
+
+
+-Wbuiltin-memcpy-chk-size
+-------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will always overflow destination buffer`|
++------------------------------------------------------------------------------------------------------+
+
+
+-Wbuiltin-requires-header
+-------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`declaration of built-in function '`:placeholder:`B`:diagtext:`' requires inclusion of the header <`:placeholder:`A`:diagtext:`>`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wc++-compat
+------------
+**Diagnostic text:**
+
++---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+
+|:warning:`warning:` |nbsp| |+-------------------------+|+------------------+| |nbsp| :diagtext:`has size 0 in C,` |nbsp| |+-------------------------+| |nbsp| :diagtext:`in C++`|
+| || |||:diagtext:`struct`|| ||:diagtext:`size 1` || |
+| |+-------------------------+|+------------------+| |+-------------------------+| |
+| ||:diagtext:`empty` |nbsp| |||:diagtext:`union` || ||:diagtext:`non-zero size`|| |
+| |+-------------------------+|+------------------+| |+-------------------------+| |
++---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+
+
+
+-Wc++0x-compat
+--------------
+Synonym for `-Wc++11-compat`_.
+
+
+-Wc++0x-extensions
+------------------
+Synonym for `-Wc++11-extensions`_.
+
+
+-Wc++0x-narrowing
+-----------------
+Synonym for `-Wc++11-narrowing`_.
+
+
+-Wc++11-compat
+--------------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+Also controls `-Wc++11-compat-deprecated-writable-strings`_, `-Wc++11-compat-reserved-user-defined-literal`_, `-Wc++11-narrowing`_, `-Wc++98-c++11-c++14-c++17-compat`_, `-Wc++98-c++11-c++14-compat`_, `-Wc++98-c++11-compat`_.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`integer literal is too large to be represented in type 'long' and is subject to undefined behavior under C++98, interpreting as 'unsigned long'; this literal will` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`in C++11 onwards`|
+| ||:diagtext:`have type 'long long'`|| |
+| |+---------------------------------+| |
+| ||:diagtext:`be ill-formed` || |
+| |+---------------------------------+| |
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'auto' storage class specifier is redundant and incompatible with C++11`|
++--------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`identifier after literal will be treated as a user-defined literal suffix in C++11`|
++-------------------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is a keyword in C++11`|
++-------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`use of right-shift operator ('>>') in template argument will require parentheses in C++11`|
++--------------------------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation cannot be 'inline'`|
++--------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`must occur at global scope`|
++--------------------------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not in a namespace enclosing` |nbsp| :placeholder:`B`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`must occur in namespace` |nbsp| :placeholder:`B`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`integer literal is too large to be represented in type 'long', interpreting as 'unsigned long' per C++98; this literal will` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`in C++11 onwards`|
+| ||:diagtext:`have type 'long long'`|| |
+| |+---------------------------------+| |
+| ||:diagtext:`be ill-formed` || |
+| |+---------------------------------+| |
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+
+
+
+-Wc++11-compat-deprecated-writable-strings
+------------------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`conversion from string literal to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated`|
++---------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wc++11-compat-pedantic
+-----------------------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+Controls `-Wc++11-compat`_, `-Wc++98-c++11-c++14-c++17-compat-pedantic`_, `-Wc++98-c++11-c++14-compat-pedantic`_, `-Wc++98-c++11-compat-pedantic`_.
+
+
+-Wc++11-compat-reserved-user-defined-literal
+--------------------------------------------
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`identifier after literal will be treated as a reserved user-defined literal suffix in C++11`|
++----------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wc++11-extensions
+------------------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+Also controls `-Wc++11-extra-semi`_, `-Wc++11-inline-namespace`_, `-Wc++11-long-long`_.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`alias declarations are a C++11 extension`|
++-------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from array size expression of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| |+-----------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is a C++11 extension`|
+| ||:diagtext:`integral` || |
+| |+-----------------------+| |
+| ||:diagtext:`enumeration`|| |
+| |+-----------------------+| |
++---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'auto' type specifier is a C++11 extension`|
++---------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a C++11 extension`|
++-----------------------------------------------------------------------------------------------------------+
+
++---------------------------+-----------------------+--------------------------------------------------------------+
+|:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`function definitions are a C++11 extension`|
+| ||:diagtext:`defaulted`|| |
+| |+---------------------+| |
+| ||:diagtext:`deleted` || |
+| |+---------------------+| |
++---------------------------+-----------------------+--------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`befriending enumeration type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C++11 extension`|
++-----------------------------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C++11 extension`|
++--------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`explicit conversion functions are a C++11 extension`|
++------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`extern templates are a C++11 extension`|
++-----------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`range-based for loop is a C++11 extension`|
++--------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`generalized initializer lists are a C++11 extension`|
++------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`use of enumeration in a nested name specifier is a C++11 extension`|
++---------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`non-class friend type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C++11 extension`|
++----------------------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`in-class initialization of non-static data member is a C++11 extension`|
++-------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' keyword is a C++11 extension`|
++--------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`reference qualifiers on functions are a C++11 extension`|
++----------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`rvalue references are a C++11 extension`|
++------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`scoped enumerations are a C++11 extension`|
++--------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in union is a C++11 extension`|
++----------------------------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`non-type template argument referring to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with internal linkage is a C++11 extension`|
+| ||:diagtext:`function`|| |
+| |+--------------------+| |
+| ||:diagtext:`object` || |
+| |+--------------------+| |
++--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'template' keyword outside of a template`|
++-------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`default template arguments for a function template are a C++11 extension`|
++---------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'typename' occurs outside of a template`|
++------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unelaborated friend declaration is a C++11 extension; specify '`|+---------------------+|:diagtext:`' to befriend` |nbsp| :placeholder:`B`|
+| ||:diagtext:`struct` || |
+| |+---------------------+| |
+| ||:diagtext:`interface`|| |
+| |+---------------------+| |
+| ||:diagtext:`union` || |
+| |+---------------------+| |
+| ||:diagtext:`class` || |
+| |+---------------------+| |
+| ||:diagtext:`enum` || |
+| |+---------------------+| |
++------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------+
+
++-------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`variadic templates are a C++11 extension`|
++-------------------------------------------------------------------------------+
+
+
+-Wc++11-extra-semi
+------------------
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`extra ';' outside of a function is a C++11 extension`|
++-------------------------------------------------------------------------------------------+
+
+
+-Wc++11-inline-namespace
+------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`inline namespaces are a C++11 feature`|
++----------------------------------------------------------------------------+
+
+
+-Wc++11-long-long
+-----------------
+**Diagnostic text:**
+
++-----------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'long long' is a C++11 extension`|
++-----------------------------------------------------------------------+
+
+
+-Wc++11-narrowing
+-----------------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+**Diagnostic text:**
+
++-----------------------+----------------------------------------+--------+--------------------------------------------------------------------------------------------------------------------------+
+|:error:`error:` |nbsp| |+--------------------------------------+| |nbsp| |+------------------------------------------------------------------------------------------------------------------------+|
+| ||:diagtext:`case value` || ||+--------------------------------------------------------------------------------------------------------------+ ||
+| |+--------------------------------------+| |||:diagtext:`cannot be narrowed from type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`| ||
+| ||:diagtext:`enumerator value` || ||+--------------------------------------------------------------------------------------------------------------+ ||
+| |+--------------------------------------+| |+------------------------------------------------------------------------------------------------------------------------+|
+| ||:diagtext:`non-type template argument`|| ||+----------------------------------------------------------------------------------------------------------------------+||
+| |+--------------------------------------+| |||:diagtext:`evaluates to` |nbsp| :placeholder:`C`:diagtext:`, which cannot be narrowed to type` |nbsp| :placeholder:`D`|||
+| ||:diagtext:`array size` || ||+----------------------------------------------------------------------------------------------------------------------+||
+| |+--------------------------------------+| |+------------------------------------------------------------------------------------------------------------------------+|
+| ||:diagtext:`constexpr if condition` || | |
+| |+--------------------------------------+| | |
++-----------------------+----------------------------------------+--------+--------------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:error:`error:` |nbsp| :diagtext:`constant expression evaluates to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`which cannot be narrowed to type` |nbsp| :placeholder:`B`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:error:`error:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be narrowed to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in initializer list`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:error:`error:` |nbsp| :diagtext:`non-constant-expression cannot be narrowed from type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in initializer list`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`constant expression evaluates to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`which cannot be narrowed to type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in C++11`|
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be narrowed to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in initializer list in C++11`|
++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`non-constant-expression cannot be narrowed from type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in initializer list in C++11`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wc++14-binary-literal
+----------------------
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`binary integer literals are a C++14 extension`|
++------------------------------------------------------------------------------------+
+
+
+-Wc++14-compat
+--------------
+Controls `-Wc++98-c++11-c++14-c++17-compat`_, `-Wc++98-c++11-c++14-compat`_.
+
+
+-Wc++14-compat-pedantic
+-----------------------
+Controls `-Wc++14-compat`_, `-Wc++98-c++11-c++14-c++17-compat-pedantic`_, `-Wc++98-c++11-c++14-compat-pedantic`_.
+
+
+-Wc++14-extensions
+------------------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+Also controls `-Wc++14-binary-literal`_.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`|
+| ||:diagtext:`function` || |
+| |+-----------------------+| |
+| ||:diagtext:`constructor`|| |
+| |+-----------------------+| |
++-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
+
++------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`multiple return statements in constexpr function is a C++14 extension`|
++------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`variable declaration in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`|
+| ||:diagtext:`function` || |
+| |+-----------------------+| |
+| ||:diagtext:`constructor`|| |
+| |+-----------------------+| |
++----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
+
++-----------------------------------------------------------------------------+-------------------------+----------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`type definition in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`|
+| ||:diagtext:`function` || |
+| |+-----------------------+| |
+| ||:diagtext:`constructor`|| |
+| |+-----------------------+| |
++-----------------------------------------------------------------------------+-------------------------+----------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++14 extension`|
++---------------------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'decltype(auto)' type specifier is a C++14 extension`|
++-------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`initialized lambda captures are a C++14 extension`|
++----------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`variable templates are a C++14 extension`|
++-------------------------------------------------------------------------------+
+
+
+-Wc++17-compat
+--------------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+Controls `-Wc++17-compat-mangling`_, `-Wc++98-c++11-c++14-c++17-compat`_, `-Wdeprecated-increment-bool`_, `-Wdeprecated-register`_.
+
+
+-Wc++17-compat-mangling
+-----------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`mangled name of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will change in C++17 due to non-throwing exception specification in function signature`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wc++17-compat-pedantic
+-----------------------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+Controls `-Wc++17-compat`_, `-Wc++98-c++11-c++14-c++17-compat-pedantic`_.
+
+
+-Wc++17-extensions
+------------------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`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`|
++------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'constexpr' on lambda expressions is a C++17 extension`|
++---------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++17 extension`|
++---------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`decomposition declarations are a C++17 extension`|
++---------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`pack fold expression is a C++17 extension`|
++--------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'begin' and 'end' returning different types (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`) is a C++17 extension`|
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are a C++17 feature`|
++----------------------------------------------------------------------------------------+
+
++----------------------------------------+--------------------+-------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'`|+------------------+|:diagtext:`' initialization statements are a C++17 extension`|
+| ||:diagtext:`if` || |
+| |+------------------+| |
+| ||:diagtext:`switch`|| |
+| |+------------------+| |
++----------------------------------------+--------------------+-------------------------------------------------------------+
+
++-----------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`inline variables are a C++17 extension`|
++-----------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`use of multiple declarators in a single using declaration is a C++17 extension`|
++---------------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`nested namespace definition is a C++17 extension; define each namespace separately`|
++-------------------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------+---------------------------+-----------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`attributes on` |nbsp| |+-------------------------+| |nbsp| :diagtext:`declaration are a C++17 extension`|
+| ||:diagtext:`a namespace` || |
+| |+-------------------------+| |
+| ||:diagtext:`an enumerator`|| |
+| |+-------------------------+| |
++------------------------------------------------------------+---------------------------+-----------------------------------------------------+
+
++---------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`capture of '\*this' by copy is a C++17 extension`|
++---------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`static\_assert with no message is a C++17 extension`|
++------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`template template parameter using 'typename' is a C++17 extension`|
++--------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`default scope specifier for attributes is a C++17 extension`|
++--------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`pack expansion of using declaration is a C++17 extension`|
++-----------------------------------------------------------------------------------------------+
+
+
+-Wc++1y-extensions
+------------------
+Synonym for `-Wc++14-extensions`_.
+
+
+-Wc++1z-compat
+--------------
+Synonym for `-Wc++17-compat`_.
+
+
+-Wc++1z-compat-mangling
+-----------------------
+Synonym for `-Wc++17-compat-mangling`_.
+
+
+-Wc++1z-extensions
+------------------
+Synonym for `-Wc++17-extensions`_.
+
+
+-Wc++2a-compat
+--------------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'<=>' is a single token in C++2a; add a space to avoid a change in behavior`|
++------------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is a keyword in C++2a`|
++-------------------------------------------------------------------------------------------+
+
+
+-Wc++2a-compat-pedantic
+-----------------------
+Synonym for `-Wc++2a-compat`_.
+
+
+-Wc++2a-extensions
+------------------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`default member initializer for bit-field is a C++2a extension`|
++----------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`explicit capture of 'this' with a capture default of '=' 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`|
++--------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wc++98-c++11-c++14-c++17-compat
+--------------------------------
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`default member initializer for bit-field is incompatible with C++ standards before C++2a`|
++-------------------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------------------------+
+|: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:`'<=>' 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
+-----------------------------------------
+Also controls `-Wc++98-c++11-c++14-c++17-compat`_.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`invoking a pointer to a 'const &' member function on an rvalue is incompatible with C++ standards before C++2a`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wc++98-c++11-c++14-compat
+--------------------------
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`constexpr if is incompatible with C++ standards before C++17`|
++---------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`constexpr on lambda expressions is incompatible with C++ standards before C++17`|
++----------------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`decomposition declarations are incompatible with C++ standards before C++17`|
++------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`pack fold expression is incompatible with C++ standards before C++17`|
++-----------------------------------------------------------------------------------------------------------+
+
++---------------------------+--------------------+----------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| |+------------------+| |nbsp| :diagtext:`initialization statements are incompatible with C++ standards before C++17`|
+| ||:diagtext:`if` || |
+| |+------------------+| |
+| ||:diagtext:`switch`|| |
+| |+------------------+| |
++---------------------------+--------------------+----------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`inline variables are incompatible with C++ standards before C++17`|
++--------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`nested namespace definition is incompatible with C++ standards before C++17`|
++------------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`by value capture of '\*this' is incompatible with C++ standards before C++17`|
++-------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`static\_assert with no message is incompatible with C++ standards before C++17`|
++---------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`non-type template parameters declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`are incompatible with C++ standards before C++17`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`template template parameter using 'typename' is incompatible with C++ standards before C++17`|
++-----------------------------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C++ standards before C++17`|
++--------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`default scope specifier for attributes is incompatible with C++ standards before C++17`|
++-----------------------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`use of multiple declarators in a single using declaration is incompatible with C++ standards before C++17`|
++------------------------------------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`pack expansion using declaration is incompatible with C++ standards before C++17`|
++-----------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'begin' and 'end' returning different types (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`) is incompatible with C++ standards before C++17`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wc++98-c++11-c++14-compat-pedantic
+-----------------------------------
+Also controls `-Wc++98-c++11-c++14-compat`_.
+
+**Diagnostic text:**
+
++------------------------------------------------------------+---------------------------+--------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`attributes on` |nbsp| |+-------------------------+| |nbsp| :diagtext:`declaration are incompatible with C++ standards before C++17`|
+| ||:diagtext:`a namespace` || |
+| |+-------------------------+| |
+| ||:diagtext:`an enumerator`|| |
+| |+-------------------------+| |
++------------------------------------------------------------+---------------------------+--------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are incompatible with C++ standards before C++17`|
++---------------------------------------------------------------------------------------------------------------------+
+
+
+-Wc++98-c++11-compat
+--------------------
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`|
+| ||:diagtext:`function` || |
+| |+-----------------------+| |
+| ||:diagtext:`constructor`|| |
+| |+-----------------------+| |
++-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`multiple return statements in constexpr function is incompatible with C++ standards before C++14`|
++---------------------------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`constexpr function with no return statements is incompatible with C++ standards before C++14`|
++-----------------------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`variable declaration in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`|
+| ||:diagtext:`function` || |
+| |+-----------------------+| |
+| ||:diagtext:`constructor`|| |
+| |+-----------------------+| |
++----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`type definition in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`|
+| ||:diagtext:`function` || |
+| |+-----------------------+| |
+| ||:diagtext:`constructor`|| |
+| |+-----------------------+| |
++-----------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'decltype(auto)' type specifier 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:`initialized lambda captures are incompatible with C++ standards before C++14`|
++-------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`variable templates are incompatible with C++ standards before C++14`|
++----------------------------------------------------------------------------------------------------------+
+
+
+-Wc++98-c++11-compat-binary-literal
+-----------------------------------
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`binary integer literals are incompatible with C++ standards before C++14`|
++---------------------------------------------------------------------------------------------------------------+
+
+
+-Wc++98-c++11-compat-pedantic
+-----------------------------
+Controls `-Wc++98-c++11-compat`_, `-Wc++98-c++11-compat-binary-literal`_.
+
+
+-Wc++98-compat
+--------------
+Also controls `-Wc++98-c++11-c++14-c++17-compat`_, `-Wc++98-c++11-c++14-compat`_, `-Wc++98-c++11-compat`_, `-Wc++98-compat-local-type-template-args`_, `-Wc++98-compat-unnamed-type-template-args`_.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`alias declarations are incompatible with C++98`|
++-------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'alignas' is incompatible with C++98`|
++---------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`alignof expressions are incompatible with C++98`|
++--------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`C++11 attribute syntax is incompatible with C++98`|
++----------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'auto' type specifier is incompatible with C++98`|
++---------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'constexpr' specifier is incompatible with C++98`|
++---------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`constructor call from initializer list is incompatible with C++98`|
++--------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'decltype' type specifier is incompatible with C++98`|
++-------------------------------------------------------------------------------------------+
+
++---------------------------+-----------------------+--------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`function definitions are incompatible with C++98`|
+| ||:diagtext:`defaulted`|| |
+| |+---------------------+| |
+| ||:diagtext:`deleted` || |
+| |+---------------------+| |
++---------------------------+-----------------------+--------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`delegating constructors are incompatible with C++98`|
++------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`scalar initialized from empty initializer list is incompatible with C++98`|
++----------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are incompatible with C++98`|
++-----------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`befriending enumeration type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with C++98`|
++-----------------------------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`enumeration type in nested name specifier is incompatible with C++98`|
++-----------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`explicit conversion functions are incompatible with C++98`|
++------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`range-based for loop is incompatible with C++98`|
++--------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`friend declaration naming a member of the declaring class is incompatible with C++98`|
++---------------------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`generalized initializer lists are incompatible with C++98`|
++------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`jump from this goto statement to its label is incompatible with C++98`|
++------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`jump from this indirect goto statement to one of its possible targets is incompatible with C++98`|
++---------------------------------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`initialization of initializer\_list object is incompatible with C++98`|
++------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`inline namespaces are incompatible with C++98`|
++------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`lambda expressions are incompatible with C++98`|
++-------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'<::' is treated as digraph '<:' (aka '\[') followed by ':' in C++98`|
++-----------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`literal operators are incompatible with C++98`|
++------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`universal character name referring to a control character is incompatible with C++98`|
++---------------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`specifying character '`:placeholder:`A`:diagtext:`' with a universal character name is incompatible with C++98`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`noexcept specifications are incompatible with C++98`|
++------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`noexcept expressions are incompatible with C++98`|
++---------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`use of non-static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in an unevaluated context is incompatible with C++98`|
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`non-class friend type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with C++98`|
++----------------------------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`in-class initialization of non-static data members is incompatible with C++98`|
++--------------------------------------------------------------------------------------------------------------------+
+
++---------------------------+------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+----------------------------------------------+
+|: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:`default constructor` || |
+| |+----------------------------+| |+------------------------------------+| |
+| ||:diagtext:`union` || ||:diagtext:`copy constructor` || |
+| |+----------------------------+| |+------------------------------------+| |
+| | | ||:diagtext:`move constructor` || |
+| | | |+------------------------------------+| |
+| | | ||:diagtext:`copy assignment operator`|| |
+| | | |+------------------------------------+| |
+| | | ||:diagtext:`move assignment operator`|| |
+| | | |+------------------------------------+| |
+| | | ||:diagtext:`destructor` || |
+| | | |+------------------------------------+| |
++---------------------------+------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+----------------------------------------------+
+
++---------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'nullptr' is incompatible with C++98`|
++---------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' keyword is incompatible with C++98`|
++--------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`passing object of trivial but non-POD type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`through variadic` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++98`|
+| ||:diagtext:`function` || |
+| |+-----------------------+| |
+| ||:diagtext:`block` || |
+| |+-----------------------+| |
+| ||:diagtext:`method` || |
+| |+-----------------------+| |
+| ||:diagtext:`constructor`|| |
+| |+-----------------------+| |
++-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+
+
++--------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`raw string literals are incompatible with C++98`|
++--------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`reference qualifiers on functions are incompatible with C++98`|
++----------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`reference initialized from initializer list is incompatible with C++98`|
++-------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`rvalue references are incompatible with C++98`|
++------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`scoped enumerations are incompatible with C++98`|
++--------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`substitution failure due to access control is incompatible with C++98`|
++------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`static\_assert declarations are incompatible with C++98`|
++----------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in union is incompatible with C++98`|
++----------------------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`jump from switch statement to this case label is incompatible with C++98`|
++---------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`redundant parentheses surrounding address non-type template argument are incompatible with C++98`|
++---------------------------------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`use of null pointer as non-type template argument is incompatible with C++98`|
++-------------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`non-type template argument referring to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with internal linkage is incompatible with C++98`|
+| ||:diagtext:`function`|| |
+| |+--------------------+| |
+| ||:diagtext:`object` || |
+| |+--------------------+| |
++--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`use of 'template' keyword outside of a template is incompatible with C++98`|
++-----------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`default template arguments for a function template are incompatible with C++98`|
++---------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`trailing return types are incompatible with C++98`|
++----------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`consecutive right angle brackets are incompatible with C++98 (use '> >')`|
++---------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`use of 'typename' outside of a template is incompatible with C++98`|
++---------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------+-----------------------+------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`befriending` |nbsp| :placeholder:`B` |nbsp| :diagtext:`without '`|+---------------------+|:diagtext:`' keyword is incompatible with C++98`|
+| ||:diagtext:`struct` || |
+| |+---------------------+| |
+| ||:diagtext:`interface`|| |
+| |+---------------------+| |
+| ||:diagtext:`union` || |
+| |+---------------------+| |
+| ||:diagtext:`class` || |
+| |+---------------------+| |
+| ||:diagtext:`enum` || |
+| |+---------------------+| |
++-------------------------------------------------------------------------------------------------------+-----------------------+------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`using this character in an identifier is incompatible with C++98`|
++-------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C++98`|
++-----------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' type specifier is incompatible with C++98`|
++---------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`inheriting constructors are incompatible with C++98`|
++------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`variadic templates are incompatible with C++98`|
++-------------------------------------------------------------------------------------+
+
+
+-Wc++98-compat-bind-to-temporary-copy
+-------------------------------------
+**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:`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
+---------------------------------------
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`local type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as template argument is incompatible with C++98`|
++--------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wc++98-compat-pedantic
+-----------------------
+Also controls `-Wc++98-c++11-c++14-c++17-compat-pedantic`_, `-Wc++98-c++11-c++14-compat-pedantic`_, `-Wc++98-c++11-compat-pedantic`_, `-Wc++98-compat`_, `-Wc++98-compat-bind-to-temporary-copy`_, `-Wc++98-compat-extra-semi`_.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from array size expression of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| |+-----------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is incompatible with C++98`|
+| ||:diagtext:`integral` || |
+| |+-----------------------+| |
+| ||:diagtext:`enumeration`|| |
+| |+-----------------------+| |
++---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`cast between pointer-to-function and pointer-to-object is incompatible with C++98`|
++------------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`empty macro arguments are incompatible with C++98`|
++----------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are incompatible with C++98`|
++--------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`extern templates are incompatible with C++98`|
++-----------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'long long' is incompatible with C++98`|
++-----------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`C++98 requires newline at end of file`|
++----------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`#line number greater than 32767 is incompatible with C++98`|
++-------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`variadic macros are incompatible with C++98`|
++----------------------------------------------------------------------------------+
+
+
+-Wc++98-compat-unnamed-type-template-args
+-----------------------------------------
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unnamed type as template argument is incompatible with C++98`|
++---------------------------------------------------------------------------------------------------+
+
+
+-Wc11-extensions
+----------------
+**Diagnostic text:**
+
++---------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`anonymous unions are a C11 extension`|
++---------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C11-specific feature`|
++----------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`anonymous structs are a C11 extension`|
++----------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`generic selections are a C11-specific feature`|
++------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`\_Noreturn functions are a C11-specific feature`|
++--------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`\_Static\_assert is a C11-specific feature`|
++---------------------------------------------------------------------------------+
+
+
+-Wc99-compat
+------------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+**Diagnostic text:**
+
++---------------------------+--------------------------------------------------------+--------------------------------------------+
+|:warning:`warning:` |nbsp| |+------------------------------------------------------+| |nbsp| :diagtext:`is incompatible with C99`|
+| ||:diagtext:`using this character in an identifier` || |
+| |+------------------------------------------------------+| |
+| ||:diagtext:`starting an identifier with this character`|| |
+| |+------------------------------------------------------+| |
++---------------------------+--------------------------------------------------------+--------------------------------------------+
+
++---------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C99`|
++---------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+----------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`integer literal is too large to be represented in type 'long', interpreting as 'unsigned long' per C89; this literal will` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`in C99 onwards`|
+| ||:diagtext:`have type 'long long'`|| |
+| |+---------------------------------+| |
+| ||:diagtext:`be ill-formed` || |
+| |+---------------------------------+| |
++------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+----------------------------------+
+
+
+-Wc99-extensions
+----------------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`initializer for aggregate is not a compile-time constant`|
++-----------------------------------------------------------------------------------------------+
+
++---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+
+|:warning:`warning:` |nbsp| |+--------------------------------+|:diagtext:`array size` |nbsp| |+---------------------+|:diagtext:`is a C99 feature`|
+| ||:diagtext:`qualifier in` |nbsp| || || || |
+| |+--------------------------------+| |+---------------------+| |
+| ||:diagtext:`static` |nbsp| || || || |
+| |+--------------------------------+| |+---------------------+| |
+| || || ||:diagtext:`'\[\*\] '`|| |
+| |+--------------------------------+| |+---------------------+| |
++---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+
+
++-----------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`compound literals are a C99-specific feature`|
++-----------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`flexible array members are a C99 feature`|
++-------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`variable declaration in for loop is a C99-specific feature`|
++-------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`ISO C99 requires whitespace after the macro name`|
++---------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`designated initializers are a C99 feature`|
++--------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`empty macro arguments are a C99 feature`|
++------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C99-specific feature`|
++-------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating constants are a C99 feature`|
++---------------------------------------------------------------------------------------+
+
+
+-Wcast-align
+------------
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`increases required alignment from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`|
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wcast-calling-convention
+-------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`cast between incompatible calling conventions '`:placeholder:`A`:diagtext:`' and '`:placeholder:`B`:diagtext:`'; calls through this pointer may abort at runtime`|
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wcast-of-sel-type
+------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`cast of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is deprecated; use sel\_getName instead`|
++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wcast-qual
+-----------
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`drops` |nbsp| |+-----------------------------------------+|
+| ||:diagtext:`const and volatile qualifiers`||
+| |+-----------------------------------------+|
+| ||:diagtext:`const qualifier` ||
+| |+-----------------------------------------+|
+| ||:diagtext:`volatile qualifier` ||
+| |+-----------------------------------------+|
++-------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`must have all intermediate pointers const qualified to be safe`|
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-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.
+
+-Wchar-subscripts
+-----------------
+**Diagnostic text:**
+
++------------------------------------------------------------+-------------------------+-------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`array section` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is of type 'char'`|
+| ||:diagtext:`lower bound`|| |
+| |+-----------------------+| |
+| ||:diagtext:`length` || |
+| |+-----------------------+| |
++------------------------------------------------------------+-------------------------+-------------------------------------+
+
++------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`array subscript is of type 'char'`|
++------------------------------------------------------------------------+
+
+
+-Wclang-cl-pch
+--------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`support for '/Yc' with more than one source file not implemented yet; flag ignored`|
++-------------------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------------------------+
+|: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:`definition of macro` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not match definition in precompiled header`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wclass-varargs
+---------------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+Also controls `-Wnon-pod-varargs`_.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`passing object of class type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`through variadic` |nbsp| |+-----------------------+|+--------------------------------------------------------------------+|
+| ||:diagtext:`function` ||| ||
+| |+-----------------------+|+--------------------------------------------------------------------+|
+| ||:diagtext:`block` |||+------------------------------------------------------------------+||
+| |+-----------------------+|||:diagtext:`; did you mean to call '`:placeholder:`D`:diagtext:`'?`|||
+| ||:diagtext:`method` |||+------------------------------------------------------------------+||
+| |+-----------------------+|+--------------------------------------------------------------------+|
+| ||:diagtext:`constructor`|| |
+| |+-----------------------+| |
++---------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------+
+
+
+-Wcomma
+-------
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`possible misuse of comma operator here`|
++-----------------------------------------------------------------------------+
+
+
+-Wcomment
+---------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`escaped newline between \*/ characters at block comment end`|
++--------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`// comments are not allowed in this language`|
++-----------------------------------------------------------------------------------+
+
++------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`multi-line // comment`|
++------------------------------------------------------------+
+
++-----------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'/\*' within block comment`|
++-----------------------------------------------------------------+
+
+
+-Wcomments
+----------
+Synonym for `-Wcomment`_.
+
+
+-Wcompare-distinct-pointer-types
+--------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`comparison of distinct pointer types`|
++---------------------------------------------------------------------------+
+
+
+-Wcomplex-component-init
+------------------------
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`complex initialization specifying real and imaginary components is an extension`|
++----------------------------------------------------------------------------------------------------------------------+
+
+
+-Wconditional-type-mismatch
+---------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`pointer/integer type mismatch in conditional expression`|
++----------------------------------------------------------------------------------------------+
+
+
+-Wconditional-uninitialized
+---------------------------
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------+-------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be uninitialized when` |nbsp| |+-----------------------------+|
+| ||:diagtext:`used here` ||
+| |+-----------------------------+|
+| ||:diagtext:`captured by block`||
+| |+-----------------------------+|
++----------------------------------------------------------------------------------------------------------------------------+-------------------------------+
+
+
+-Wconfig-macros
+---------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+---------------------------------------------------------+
+|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`of configuration macro '`:placeholder:`B`:diagtext:`' has no effect on the import of '`:placeholder:`C`:diagtext:`'; pass '`|+------------------------------------------------+|:diagtext:`' on the command line to configure the module`|
+| ||:diagtext:`definition`|| ||+----------------------------------------------+|| |
+| |+----------------------+| |||:diagtext:`-D`:placeholder:`B`:diagtext:`=...`||| |
+| ||:diagtext:`#undef` || ||+----------------------------------------------+|| |
+| |+----------------------+| |+------------------------------------------------+| |
+| | | ||+------------------------------+ || |
+| | | |||:diagtext:`-U`:placeholder:`B`| || |
+| | | ||+------------------------------+ || |
+| | | |+------------------------------------------------+| |
++---------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+---------------------------------------------------------+
+
+
+-Wconstant-conversion
+---------------------
+This diagnostic is enabled by default.
+
+Also controls `-Wbitfield-constant-conversion`_.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D` |nbsp| :diagtext:`changes value from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wconstant-logical-operand
+--------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`use of logical '`:placeholder:`A`:diagtext:`' with constant operand`|
++----------------------------------------------------------------------------------------------------------+
+
+
+-Wconstexpr-not-const
+---------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'constexpr' non-static member function will not be implicitly 'const' in C++14; add 'const' to avoid a change in behavior`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wconsumed
+----------
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`consumed analysis attribute is attached to member of class '`:placeholder:`A`:diagtext:`' which isn't marked as consumable`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`state of variable '`:placeholder:`A`:diagtext:`' must match at the entry and exit of loop`|
++--------------------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`parameter '`:placeholder:`A`:diagtext:`' not in expected state when the function returns: expected '`:placeholder:`B`:diagtext:`', observed '`:placeholder:`C`:diagtext:`'`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`argument not in expected state; expected '`:placeholder:`A`:diagtext:`', observed '`:placeholder:`B`:diagtext:`'`|
++-------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`return state set for an unconsumable type '`:placeholder:`A`:diagtext:`'`|
++---------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`return value not in expected state; expected '`:placeholder:`A`:diagtext:`', observed '`:placeholder:`B`:diagtext:`'`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`invalid invocation of method '`:placeholder:`A`:diagtext:`' on object '`:placeholder:`B`:diagtext:`' while it is in the '`:placeholder:`C`:diagtext:`' state`|
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`invalid invocation of method '`:placeholder:`A`:diagtext:`' on a temporary object while it is in the '`:placeholder:`B`:diagtext:`' state`|
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wconversion
+------------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+Also controls `-Wbitfield-enum-conversion`_, `-Wbool-conversion`_, `-Wconstant-conversion`_, `-Wenum-conversion`_, `-Wfloat-conversion`_, `-Wint-conversion`_, `-Wliteral-conversion`_, `-Wnon-literal-null-conversion`_, `-Wnull-conversion`_, `-Wobjc-literal-conversion`_, `-Wshorten-64-to-32`_, `-Wsign-conversion`_, `-Wstring-conversion`_.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|: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 when assigning computation result 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:`non-type template argument with value '`:placeholder:`A`:diagtext:`' converted to '`:placeholder:`B`:diagtext:`' for unsigned template parameter of type` |nbsp| :placeholder:`C`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`non-type template argument value '`:placeholder:`A`:diagtext:`' truncated to '`:placeholder:`B`:diagtext:`' for template parameter of type` |nbsp| :placeholder:`C`|
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wconversion-null
+-----------------
+Synonym for `-Wnull-conversion`_.
+
+
+-Wcoroutine
+-----------
+Synonym for `-Wcoroutine-missing-unhandled-exception`_.
+
+
+-Wcoroutine-missing-unhandled-exception
+---------------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is required to declare the member 'unhandled\_exception()' when exceptions are enabled`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wcovered-switch-default
+------------------------
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`default label in switch which covers all enumeration values`|
++--------------------------------------------------------------------------------------------------+
+
+
+-Wcpp
+-----
+Synonym for `-W#warnings`_.
+
+
+-Wcstring-format-directive
+--------------------------
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`using` |nbsp| :placeholder:`A` |nbsp| :diagtext:`directive in` |nbsp| |+--------------------+| |nbsp| :diagtext:`which is being passed as a formatting argument to the formatting` |nbsp| |+----------------------+|
+| ||:diagtext:`NSString`|| ||:diagtext:`method` ||
+| |+--------------------+| |+----------------------+|
+| ||:diagtext:`CFString`|| ||:diagtext:`CFfunction`||
+| |+--------------------+| |+----------------------+|
++------------------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+------------------------+
+
+
+-Wctor-dtor-privacy
+-------------------
+This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
+
+-Wcuda-compat
+-------------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute parameter` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is negative and will be ignored`|
++-------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`nvcc does not allow '\_\_`:placeholder:`A`:diagtext:`\_\_' to appear after '()' in lambdas`|
++---------------------------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`ignored 'inline' attribute on kernel function` |nbsp| :placeholder:`A`|
++------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`kernel function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a member function; this may not be accepted by nvcc`|
++--------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`argument to '#pragma unroll' should not be in parentheses in CUDA C/C++`|
++--------------------------------------------------------------------------------------------------------------+
+
+
+-Wcustom-atomic-properties
+--------------------------
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------------------+--------------------+----------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`atomic by default property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has a user defined` |nbsp| |+------------------+| |nbsp| :diagtext:`(property should be marked 'atomic' if this is intended)`|
+| ||:diagtext:`getter`|| |
+| |+------------------+| |
+| ||:diagtext:`setter`|| |
+| |+------------------+| |
++---------------------------------------------------------------------------------------------------------------------------------------+--------------------+----------------------------------------------------------------------------+
+
+
+-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.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`add explicit braces to avoid dangling else`|
++---------------------------------------------------------------------------------+
+
+
+-Wdangling-field
+----------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------------+-----------------------+------------------------+
+|: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| |+------------------------------------------------------+| |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` |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
+---------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------+----------------------------------------------------------------+-----------------------------------------------------------------------+
+|: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` || |
+| |+--------------------------------------------------------------+| |
++------------------------------------------------------------+----------------------------------------------------------------+-----------------------------------------------------------------------+
+
+
+-Wdate-time
+-----------
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`expansion of date or time macro is not reproducible`|
++------------------------------------------------------------------------------------------+
+
+
+-Wdealloc-in-category
+---------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`-dealloc is being overridden in a category`|
++---------------------------------------------------------------------------------+
+
+
+-Wdebug-compression-unavailable
+-------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`cannot compress debug sections (zlib not installed)`|
++------------------------------------------------------------------------------------------+
+
+
+-Wdeclaration-after-statement
+-----------------------------
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`ISO C90 forbids mixing declarations and code`|
++-----------------------------------------------------------------------------------+
+
+
+-Wdelegating-ctor-cycles
+------------------------
+This diagnostic is an error by default, but the flag ``-Wno-delegating-ctor-cycles`` can be used to disable the error.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------------------+
+|:error:`error:` |nbsp| :diagtext:`constructor for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`creates a delegation cycle`|
++------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wdelete-incomplete
+-------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`cannot delete expression with pointer-to-'void' type` |nbsp| :placeholder:`A`|
++-------------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`deleting pointer to incomplete type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may cause undefined behavior`|
++--------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wdelete-non-virtual-dtor
+-------------------------
+Some of the diagnostics controlled by this flag are 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`|| |
+| |+----------------------+| |
++---------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------+------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`called on non-final` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that has virtual functions but non-virtual destructor`|
+| ||:diagtext:`delete` || |
+| |+----------------------+| |
+| ||:diagtext:`destructor`|| |
+| |+----------------------+| |
++---------------------------+------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wdeprecated
+------------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+Also controls `-Wdeprecated-attributes`_, `-Wdeprecated-declarations`_, `-Wdeprecated-dynamic-exception-spec`_, `-Wdeprecated-increment-bool`_, `-Wdeprecated-register`_, `-Wdeprecated-this-capture`_, `-Wdeprecated-writable-strings`_.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`-O4 is equivalent to -O3`|
++---------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`access declarations are deprecated; use using declarations instead`|
++---------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------+---------------------------------+-----------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`definition of implicit copy` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated because it has a user-declared` |nbsp| |+------------------------------------------------------------+|
+| ||:diagtext:`constructor` || ||+------------------------+---------------------------------+||
+| |+-------------------------------+| |||:diagtext:`copy` |nbsp| |+-------------------------------+|||
+| ||:diagtext:`assignment operator`|| ||| ||:diagtext:`assignment operator`||||
+| |+-------------------------------+| ||| |+-------------------------------+|||
+| | | ||| ||:diagtext:`constructor` ||||
+| | | ||| |+-------------------------------+|||
+| | | ||+------------------------+---------------------------------+||
+| | | |+------------------------------------------------------------+|
+| | | ||:diagtext:`destructor` ||
+| | | |+------------------------------------------------------------+|
++--------------------------------------------------------------------------+---------------------------------+-----------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`out-of-line definition of constexpr static data member is redundant in C++17 and is deprecated`|
++-------------------------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`argument '`:placeholder:`A`:diagtext:`' is deprecated, use '`:placeholder:`B`:diagtext:`' instead`|
++----------------------------------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`treating '`:placeholder:`A`:diagtext:`' input as '`:placeholder:`B`:diagtext:`' when in C++ mode, this behavior is deprecated`|
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`OpenCL version` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not support the option '`:placeholder:`B`:diagtext:`'`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`Use of 'long' with '\_\_vector' is deprecated`|
++------------------------------------------------------------------------------------+
+
+
+-Wdeprecated-attributes
+-----------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`specifying vector types with the 'mode' attribute is deprecated; use the 'vector\_size' attribute instead`|
++------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wdeprecated-declarations
+-------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`specifying 'uuid' as an ATL attribute is deprecated; use \_\_declspec instead`|
++--------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`use of C-style parameters in Objective-C method declarations is deprecated`|
++-----------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated`|
++----------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be deprecated because the receiver type is unknown`|
++---------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated:` |nbsp| :placeholder:`B`|
++-----------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`property access is using` |nbsp| :placeholder:`A` |nbsp| :diagtext:`method which is deprecated`|
++-------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wdeprecated-dynamic-exception-spec
+-----------------------------------
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`dynamic exception specifications are deprecated`|
++--------------------------------------------------------------------------------------+
+
+
+-Wdeprecated-implementations
+----------------------------
+**Diagnostic text:**
+
++----------------------------------------------------------------------+----------------------+
+|:warning:`warning:` |nbsp| :diagtext:`implementing deprecated` |nbsp| |+--------------------+|
+| ||:diagtext:`method` ||
+| |+--------------------+|
+| ||:diagtext:`class` ||
+| |+--------------------+|
+| ||:diagtext:`category`||
+| |+--------------------+|
++----------------------------------------------------------------------+----------------------+
+
++----------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`implementing unavailable method`|
++----------------------------------------------------------------------+
+
+
+-Wdeprecated-increment-bool
+---------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`incrementing expression of type bool is deprecated and incompatible with C++17`|
++---------------------------------------------------------------------------------------------------------------------+
+
+
+-Wdeprecated-objc-isa-usage
+---------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`assignment to Objective-C's isa is deprecated in favor of object\_setClass()`|
++-------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`direct access to Objective-C's isa is deprecated in favor of object\_getClass()`|
++----------------------------------------------------------------------------------------------------------------------+
+
+
+-Wdeprecated-objc-pointer-introspection
+---------------------------------------
+This diagnostic is enabled by default.
+
+Also controls `-Wdeprecated-objc-pointer-introspection-performSelector`_.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`bitmasking for introspection of Objective-C object pointers is strongly discouraged`|
++--------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wdeprecated-objc-pointer-introspection-performSelector
+-------------------------------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`bitmasking for introspection of Objective-C object pointers is strongly discouraged`|
++--------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wdeprecated-register
+---------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'register' storage class specifier is deprecated and incompatible with C++17`|
++-------------------------------------------------------------------------------------------------------------------+
+
+
+-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`_.
+
+
+-Wdirect-ivar-access
+--------------------
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`instance variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is being directly accessed`|
++------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wdisabled-macro-expansion
+--------------------------
+**Diagnostic text:**
+
++----------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`disabled expansion of recursive macro`|
++----------------------------------------------------------------------------+
+
+
+-Wdisabled-optimization
+-----------------------
+This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
+
+-Wdiscard-qual
+--------------
+This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
+
+-Wdistributed-object-modifiers
+------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on parameter type in implementation of` |nbsp| :placeholder:`A`|
++----------------------------------------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on return type in implementation of` |nbsp| :placeholder:`A`|
++-------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wdiv-by-zero
+-------------
+Synonym for `-Wdivision-by-zero`_.
+
+
+-Wdivision-by-zero
+------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------+-----------------------+----------------------------------------+
+|:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`by zero is undefined`|
+| ||:diagtext:`remainder`|| |
+| |+---------------------+| |
+| ||:diagtext:`division` || |
+| |+---------------------+| |
++---------------------------+-----------------------+----------------------------------------+
+
+
+-Wdll-attribute-on-redeclaration
+--------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`redeclaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not add` |nbsp| :placeholder:`B` |nbsp| :diagtext:`attribute`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wdllexport-explicit-instantiation-decl
+---------------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation declaration should not be 'dllexport'`|
++---------------------------------------------------------------------------------------------------+
+
+
+-Wdllimport-static-field-def
+----------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`definition of dllimport static field`|
++---------------------------------------------------------------------------+
+
+
+-Wdocumentation
+---------------
+Also controls `-Wdocumentation-deprecated-sync`_, `-Wdocumentation-html`_.
+
+**Diagnostic text:**
+
++----------------------------------------+----------------+-----------------------+------------------------------------------------------------------------+-----------------------+-------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+---------------------+|:diagtext:`' command should not be used in a comment attached to a non-`|+---------------------+| |nbsp| :diagtext:`declaration`|
+| ||:diagtext:`\\`|||:diagtext:`class` || ||:diagtext:`class` || |
+| |+--------------+|+---------------------+| |+---------------------+| |
+| ||:diagtext:`@` |||:diagtext:`interface`|| ||:diagtext:`interface`|| |
+| |+--------------+|+---------------------+| |+---------------------+| |
+| | ||:diagtext:`protocol` || ||:diagtext:`protocol` || |
+| | |+---------------------+| |+---------------------+| |
+| | ||:diagtext:`struct` || ||:diagtext:`struct` || |
+| | |+---------------------+| |+---------------------+| |
+| | ||:diagtext:`union` || ||:diagtext:`union` || |
+| | |+---------------------+| |+---------------------+| |
++----------------------------------------+----------------+-----------------------+------------------------------------------------------------------------+-----------------------+-------------------------------+
+
++-----------------------------------------------------------+----------------+-----------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`duplicated command '`|+--------------+|:placeholder:`B`:diagtext:`'`|
+| ||:diagtext:`\\`|| |
+| |+--------------+| |
+| ||:diagtext:`@` || |
+| |+--------------+| |
++-----------------------------------------------------------+----------------+-----------------------------+
+
++------------------------------------------------------------------+----------------+-------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`empty paragraph passed to '`|+--------------+|:placeholder:`B`:diagtext:`' command`|
+| ||:diagtext:`\\`|| |
+| |+--------------+| |
+| ||:diagtext:`@` || |
+| |+--------------+| |
++------------------------------------------------------------------+----------------+-------------------------------------+
+
++----------------------------------------+----------------+--------------------------+---------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+------------------------+|:diagtext:`' command should not be used in a comment attached to a non-container declaration`|
+| ||:diagtext:`\\`|||:diagtext:`classdesign` || |
+| |+--------------+|+------------------------+| |
+| ||:diagtext:`@` |||:diagtext:`coclass` || |
+| |+--------------+|+------------------------+| |
+| | ||:diagtext:`dependency` || |
+| | |+------------------------+| |
+| | ||:diagtext:`helper` || |
+| | |+------------------------+| |
+| | ||:diagtext:`helperclass` || |
+| | |+------------------------+| |
+| | ||:diagtext:`helps` || |
+| | |+------------------------+| |
+| | ||:diagtext:`instancesize`|| |
+| | |+------------------------+| |
+| | ||:diagtext:`ownership` || |
+| | |+------------------------+| |
+| | ||:diagtext:`performance` || |
+| | |+------------------------+| |
+| | ||:diagtext:`security` || |
+| | |+------------------------+| |
+| | ||:diagtext:`superclass` || |
+| | |+------------------------+| |
++----------------------------------------+----------------+--------------------------+---------------------------------------------------------------------------------------------+
+
++----------------------------------------+----------------+---------------------------+---------------------------------------------------------------------+-----------------------------------+-------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+-------------------------+|:diagtext:`' command should be used in a comment attached to` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`declaration`|
+| ||:diagtext:`\\`|||:diagtext:`function` || ||:diagtext:`a function` || |
+| |+--------------+|+-------------------------+| |+---------------------------------+| |
+| ||:diagtext:`@` |||:diagtext:`functiongroup`|| ||:diagtext:`a function` || |
+| |+--------------+|+-------------------------+| |+---------------------------------+| |
+| | ||:diagtext:`method` || ||:diagtext:`an Objective-C method`|| |
+| | |+-------------------------+| |+---------------------------------+| |
+| | ||:diagtext:`methodgroup` || ||:diagtext:`an Objective-C method`|| |
+| | |+-------------------------+| |+---------------------------------+| |
+| | ||:diagtext:`callback` || ||:diagtext:`a pointer to function`|| |
+| | |+-------------------------+| |+---------------------------------+| |
++----------------------------------------+----------------+---------------------------+---------------------------------------------------------------------+-----------------------------------+-------------------------------+
+
++-------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`HTML start tag prematurely ended, expected attribute name or '>'`|
++-------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`expected quoted string after equals sign`|
++-------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`parameter '`:placeholder:`A`:diagtext:`' is already documented`|
++-----------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unrecognized parameter passing direction, valid directions are '\[in\]', '\[out\]' and '\[in,out\]'`|
++------------------------------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------+----------------+-------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:diagtext:`param' command used in a comment that is not attached to a function declaration`|
+| ||:diagtext:`\\`|| |
+| |+--------------+| |
+| ||:diagtext:`@` || |
+| |+--------------+| |
++----------------------------------------+----------------+-------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`parameter '`:placeholder:`A`:diagtext:`' not found in the function declaration`|
++---------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------+----------------+-------------------------------------------------------------------------------------+-------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command used in a comment that is attached to a` |nbsp| |+-----------------------------------+|
+| ||:diagtext:`\\`|| ||:diagtext:`function returning void`||
+| |+--------------+| |+-----------------------------------+|
+| ||:diagtext:`@` || ||:diagtext:`constructor` ||
+| |+--------------+| |+-----------------------------------+|
+| | | ||:diagtext:`destructor` ||
+| | | |+-----------------------------------+|
+| | | ||:diagtext:`method returning void` ||
+| | | |+-----------------------------------+|
++----------------------------------------+----------------+-------------------------------------------------------------------------------------+-------------------------------------+
+
++----------------------------------------+----------------+----------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command used in a comment that is not attached to a function or method declaration`|
+| ||:diagtext:`\\`|| |
+| |+--------------+| |
+| ||:diagtext:`@` || |
+| |+--------------+| |
++----------------------------------------+----------------+----------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`template parameter '`:placeholder:`A`:diagtext:`' is already documented`|
++--------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------+----------------+--------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:diagtext:`tparam' command used in a comment that is not attached to a template declaration`|
+| ||:diagtext:`\\`|| |
+| |+--------------+| |
+| ||:diagtext:`@` || |
+| |+--------------+| |
++----------------------------------------+----------------+--------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`template parameter '`:placeholder:`A`:diagtext:`' not found in the template declaration`|
++------------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`not a Doxygen trailing comment`|
++---------------------------------------------------------------------+
+
++----------------------------------------+----------------+------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command does not terminate a verbatim text block`|
+| ||:diagtext:`\\`|| |
+| |+--------------+| |
+| ||:diagtext:`@` || |
+| |+--------------+| |
++----------------------------------------+----------------+------------------------------------------------------------------------------+
+
+
+-Wdocumentation-deprecated-sync
+-------------------------------
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`declaration is marked with '\\deprecated' command but does not have a deprecation attribute`|
++----------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wdocumentation-html
+--------------------
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`HTML end tag '`:placeholder:`A`:diagtext:`' is forbidden`|
++-----------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`HTML end tag does not match any start tag`|
++--------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`HTML tag '`:placeholder:`A`:diagtext:`' requires an end tag`|
++--------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`HTML start tag '`:placeholder:`A`:diagtext:`' closed by '`:placeholder:`B`:diagtext:`'`|
++-----------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wdocumentation-pedantic
+------------------------
+Also controls `-Wdocumentation-unknown-command`_.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`whitespace is not allowed in parameter passing direction`|
++-----------------------------------------------------------------------------------------------+
+
+
+-Wdocumentation-unknown-command
+-------------------------------
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unknown command tag name '`:placeholder:`A`:diagtext:`'; did you mean '`:placeholder:`B`:diagtext:`'?`|
++--------------------------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unknown command tag name`|
++---------------------------------------------------------------+
+
+
+-Wdollar-in-identifier-extension
+--------------------------------
+**Diagnostic text:**
+
++--------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'$' in identifier`|
++--------------------------------------------------------+
+
+
+-Wdouble-promotion
+------------------
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`implicit conversion increases floating-point precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wduplicate-decl-specifier
+--------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------+
+|: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
+----------------
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`element` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has been implicitly assigned` |nbsp| :placeholder:`B` |nbsp| :diagtext:`which another element has been assigned`|
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wduplicate-method-arg
+----------------------
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`redeclaration of method parameter` |nbsp| :placeholder:`A`|
++------------------------------------------------------------------------------------------------+
+
+
+-Wduplicate-method-match
+------------------------
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`multiple declarations of method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found and ignored`|
++-----------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wduplicate-protocol
+--------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`duplicate protocol definition of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is ignored`|
++-----------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wdynamic-class-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` |nbsp| |+--------------------------------------+|:diagtext:`dynamic class` |nbsp| :placeholder:`D`:diagtext:`; vtable pointer will be` |nbsp| |+-----------------------+|
+| ||:diagtext:`destination for` || || || ||:diagtext:`overwritten`||
+| |+-----------------------------+| |+--------------------------------------+| |+-----------------------+|
+| ||:diagtext:`source of` || ||:diagtext:`class containing a` |nbsp| || ||:diagtext:`copied` ||
+| |+-----------------------------+| |+--------------------------------------+| |+-----------------------+|
+| ||:diagtext:`first operand of` || | | ||:diagtext:`moved` ||
+| |+-----------------------------+| | | |+-----------------------+|
+| ||:diagtext:`second operand of`|| | | ||:diagtext:`compared` ||
+| |+-----------------------------+| | | |+-----------------------+|
++---------------------------+-------------------------------+------------------------------------------------------------------------------------------------+----------------------------------------+---------------------------------------------------------------------------------------------+-------------------------+
+
+
+-Wdynamic-exception-spec
+------------------------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+Also controls `-Wdeprecated-dynamic-exception-spec`_.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------+
+|:error:`error:` |nbsp| :diagtext:`ISO C++17 does not allow dynamic exception specifications`|
++--------------------------------------------------------------------------------------------+
+
+
+-Weffc++
+--------
+Synonym for `-Wnon-virtual-dtor`_.
+
+
+-Wembedded-directive
+--------------------
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`embedding a directive within macro arguments has undefined behavior`|
++----------------------------------------------------------------------------------------------------------+
+
+
+-Wempty-body
+------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`for loop has empty body`|
++--------------------------------------------------------------+
+
++------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`if statement has empty body`|
++------------------------------------------------------------------+
+
++--------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`range-based for loop has empty body`|
++--------------------------------------------------------------------------+
+
++----------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`switch statement has empty body`|
++----------------------------------------------------------------------+
+
++----------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`while loop has empty body`|
++----------------------------------------------------------------+
+
+
+-Wempty-decomposition
+---------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`ISO C++17 does not allow a decomposition group to be empty`|
++-------------------------------------------------------------------------------------------------+
+
+
+-Wempty-translation-unit
+------------------------
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`ISO C requires a translation unit to contain at least one declaration`|
++------------------------------------------------------------------------------------------------------------+
+
+
+-Wencode-type
+-------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`encoding of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`type is incomplete because` |nbsp| :placeholder:`B` |nbsp| :diagtext:`component has unknown encoding`|
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wendif-labels
+--------------
+Synonym for `-Wextra-tokens`_.
+
+
+-Wenum-compare
+--------------
+This diagnostic is enabled by default.
+
+Also controls `-Wenum-compare-switch`_.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`comparison of two values with different enumeration types`|
++------------------------------------------------------------------------------------------------+
+
+
+-Wenum-compare-switch
+---------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`comparison of two values with different enumeration types in switch statement`|
++--------------------------------------------------------------------------------------------------------------------+
+
+
+-Wenum-conversion
+-----------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from enumeration type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to different enumeration type` |nbsp| :placeholder:`B`|
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wenum-too-large
+----------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`enumeration values exceed range of largest integer`|
++-----------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`incremented enumerator value` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not representable in the largest integer type`|
++---------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wexceptions
+------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`cannot refer to a non-static member from the handler of a` |nbsp| |+-----------------------+| |nbsp| :diagtext:`function try block`|
+| ||:diagtext:`constructor`|| |
+| |+-----------------------+| |
+| ||:diagtext:`destructor` || |
+| |+-----------------------+| |
++--------------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`exception of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will be caught by earlier handler`|
++-------------------------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has a non-throwing exception specification but can still throw`|
++-----------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wexit-time-destructors
+-----------------------
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`declaration requires an exit-time destructor`|
++-----------------------------------------------------------------------------------+
+
+
+-Wexpansion-to-defined
+----------------------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`macro expansion producing 'defined' has undefined behavior`|
++-------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`macro expansion producing 'defined' has undefined behavior`|
++-------------------------------------------------------------------------------------------------+
+
+
+-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.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`explicit call to +initialize results in duplicate call to +initialize`|
++------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`explicit call to \[super initialize\] should only be in implementation of +initialize`|
++----------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wexplicit-ownership-type
+-------------------------
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`method parameter of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with no explicit ownership`|
++-------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wextern-c-compat
+-----------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+
+|:warning:`warning:` |nbsp| |+-------------------------+|+------------------+| |nbsp| :diagtext:`has size 0 in C,` |nbsp| |+-------------------------+| |nbsp| :diagtext:`in C++`|
+| || |||:diagtext:`struct`|| ||:diagtext:`size 1` || |
+| |+-------------------------+|+------------------+| |+-------------------------+| |
+| ||:diagtext:`empty` |nbsp| |||:diagtext:`union` || ||:diagtext:`non-zero size`|| |
+| |+-------------------------+|+------------------+| |+-------------------------+| |
++---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+
+
+
+-Wextern-initializer
+--------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'extern' variable has an initializer`|
++---------------------------------------------------------------------------+
+
+
+-Wextra
+-------
+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`_.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`call to function without interrupt attribute could clobber interruptee's VFP registers`|
++-----------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wextra-qualification
+---------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`extra qualification on member` |nbsp| :placeholder:`A`|
++--------------------------------------------------------------------------------------------+
+
+
+-Wextra-semi
+------------
+Also controls `-Wc++11-extra-semi`_, `-Wc++98-compat-extra-semi`_.
+
+**Diagnostic text:**
+
++--------------------------------------------------------+------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`extra ';'` |nbsp| |+----------------------------------------------+|
+| ||:diagtext:`outside of a function` ||
+| |+----------------------------------------------+|
+| ||+--------------------------------------------+||
+| |||:diagtext:`inside a` |nbsp| :placeholder:`B`|||
+| ||+--------------------------------------------+||
+| |+----------------------------------------------+|
+| ||:diagtext:`inside instance variable list` ||
+| |+----------------------------------------------+|
+| ||:diagtext:`after member function definition` ||
+| |+----------------------------------------------+|
++--------------------------------------------------------+------------------------------------------------+
+
++---------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`extra ';' after member function definition`|
++---------------------------------------------------------------------------------+
+
+
+-Wextra-tokens
+--------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`extra tokens at end of #`:placeholder:`A` |nbsp| :diagtext:`directive`|
++------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`extra tokens at the end of '#pragma omp` |nbsp| :placeholder:`A`:diagtext:`' are ignored`|
++-------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wfallback
+----------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`falling back to` |nbsp| :placeholder:`A`|
++------------------------------------------------------------------------------+
+
+
+-Wflag-enum
+-----------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`enumeration value` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is out of range of flags in enumeration type` |nbsp| :placeholder:`B`|
++------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wflexible-array-extensions
+---------------------------
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may not be used as an array element due to flexible array member`|
++-------------------------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may not be nested in a struct due to flexible array member`|
++-------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wfloat-conversion
+------------------
+Also controls `-Wfloat-overflow-conversion`_, `-Wfloat-zero-conversion`_.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns floating-point number into integer:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wfloat-equal
+-------------
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`comparing floating point with == or != is unsafe`|
++---------------------------------------------------------------------------------------+
+
+
+-Wfloat-overflow-conversion
+---------------------------
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|: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
+-----------------------
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`changes non-zero value from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wfor-loop-analysis
+-------------------
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is` |nbsp| |+-----------------------+| |nbsp| :diagtext:`both in the loop header and in the loop body`|
+| ||:diagtext:`decremented`|| |
+| |+-----------------------+| |
+| ||:diagtext:`incremented`|| |
+| |+-----------------------+| |
++-----------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------+
+
++-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`variable`|+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |nbsp| :diagtext:`used in loop condition not modified in loop body`|
+| ||:diagtext:`s` || |
+| |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |
+| ||+------------------------+ || |
+| ||| |nbsp| :placeholder:`B`| || |
+| ||+------------------------+ || |
+| |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |
+| ||+------------------------------------------------------------------------------------+ || |
+| |||:diagtext:`s` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C`| || |
+| ||+------------------------------------------------------------------------------------+ || |
+| |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |
+| ||+-------------------------------------------------------------------------------------------------------------------+ || |
+| |||:diagtext:`s` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D`| || |
+| ||+-------------------------------------------------------------------------------------------------------------------+ || |
+| |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |
+| ||+--------------------------------------------------------------------------------------------------------------------------------------------------------+|| |
+| |||:diagtext:`s` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`, and` |nbsp| :placeholder:`E`||| |
+| ||+--------------------------------------------------------------------------------------------------------------------------------------------------------+|| |
+| |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |
++-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+
+
+
+-Wformat
+--------
+This diagnostic is enabled by default.
+
+Also controls `-Wformat-extra-args`_, `-Wformat-invalid-specifier`_, `-Wformat-security`_, `-Wformat-y2k`_, `-Wformat-zero-length`_, `-Wnonnull`_.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`using '%%P' format specifier without precision`|
++-------------------------------------------------------------------------------------+
+
++---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|: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` || |
+| |+---------------------------+| |
+| ||:diagtext:`underlying type`|| |
+| |+---------------------------+| |
++------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`using '`:placeholder:`A`:diagtext:`' format specifier annotation outside of os\_log()/os\_trace()`|
++----------------------------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------+-----------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`invalid position specified for` |nbsp| |+---------------------------+|
+| ||:diagtext:`field width` ||
+| |+---------------------------+|
+| ||:diagtext:`field precision`||
+| |+---------------------------+|
++-----------------------------------------------------------------------------+-----------------------------+
+
++----------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`cannot mix positional and non-positional arguments in format string`|
++----------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`length modifier '`:placeholder:`A`:diagtext:`' results in undefined behavior or no effect with '`:placeholder:`B`:diagtext:`' conversion specifier`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`format string should not be a wide string`|
++--------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`position arguments in format strings start counting at 1 (not 0)`|
++-------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`format string missing`|
++------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`object format flags cannot be used with '`:placeholder:`A`:diagtext:`' conversion specifier`|
++----------------------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------+-----------------+-------------------------------------+-----------------------+--------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'`|+---------------+|:diagtext:`' specified field` |nbsp| |+---------------------+| |nbsp| :diagtext:`is missing a matching 'int' argument`|
+| ||:diagtext:`\*` || ||:diagtext:`width` || |
+| |+---------------+| |+---------------------+| |
+| ||:diagtext:`.\*`|| ||:diagtext:`precision`|| |
+| |+---------------+| |+---------------------+| |
++----------------------------------------+-----------------+-------------------------------------+-----------------------+--------------------------------------------------------+
+
++----------------------------------------------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| |+---------------------+| |nbsp| :diagtext:`should have type` |nbsp| :placeholder:`B`:diagtext:`, but argument has type` |nbsp| :placeholder:`C`|
+| ||:diagtext:`width` || |
+| |+---------------------+| |
+| ||:diagtext:`precision`|| |
+| |+---------------------+| |
++----------------------------------------------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`missing object format flag`|
++-----------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`format string contains '\\0' within the string body`|
++------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`format string is not null-terminated`|
++---------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`flag '`:placeholder:`A`:diagtext:`' is ignored when flag '`:placeholder:`B`:diagtext:`' is present`|
++-----------------------------------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`incomplete format specifier`|
++------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`more '%%' conversions than data arguments`|
++--------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is not a valid object format flag`|
++-------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`flag '`:placeholder:`A`:diagtext:`' results in undefined behavior with '`:placeholder:`B`:diagtext:`' conversion specifier`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------+-------------------------+------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| |+-----------------------+| |nbsp| :diagtext:`used with '`:placeholder:`B`:diagtext:`' conversion specifier, resulting in undefined behavior`|
+| ||:diagtext:`field width`|| |
+| |+-----------------------+| |
+| ||:diagtext:`precision` || |
+| |+-----------------------+| |
++---------------------------+-------------------------+------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`data argument position '`:placeholder:`A`:diagtext:`' exceeds the number of data arguments (`:placeholder:`B`:diagtext:`)`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`zero field width in scanf format string is unused`|
++----------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`no closing '\]' for '%%\[' in scanf format string`|
++----------------------------------------------------------------------------------------+
+
+
+-Wformat-extra-args
+-------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`data argument not used by format string`|
++------------------------------------------------------------------------------+
+
+
+-Wformat-invalid-specifier
+--------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`invalid conversion specifier '`:placeholder:`A`:diagtext:`'`|
++--------------------------------------------------------------------------------------------------+
+
+
+-Wformat-non-iso
+----------------
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------+----------------------------------+---------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`'` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`is not supported by ISO C`|
+| ||:diagtext:`length modifier` || |
+| |+--------------------------------+| |
+| ||:diagtext:`conversion specifier`|| |
+| |+--------------------------------+| |
++-----------------------------------------------------------------------------+----------------------------------+---------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`using length modifier '`:placeholder:`A`:diagtext:`' with conversion specifier '`:placeholder:`B`:diagtext:`' is not supported by ISO C`|
++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`positional arguments are not supported by ISO C`|
++--------------------------------------------------------------------------------------+
+
+
+-Wformat-nonliteral
+-------------------
+**Diagnostic text:**
+
++----------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`format string is not a string literal`|
++----------------------------------------------------------------------------+
+
+
+-Wformat-pedantic
+-----------------
+**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` || |
+| |+---------------------------+| |
+| ||:diagtext:`underlying type`|| |
+| |+---------------------------+| |
++------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
+
+
+-Wformat-security
+-----------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`format string is not a string literal (potentially insecure)`|
++---------------------------------------------------------------------------------------------------+
+
+
+-Wformat-y2k
+------------
+This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
+
+-Wformat-zero-length
+--------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`format string is empty`|
++-------------------------------------------------------------+
+
+
+-Wformat=2
+----------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+Controls `-Wformat-nonliteral`_, `-Wformat-security`_, `-Wformat-y2k`_.
+
+
+-Wfour-char-constants
+---------------------
+**Diagnostic text:**
+
++-------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`multi-character character constant`|
++-------------------------------------------------------------------------+
+
+
+-Wframe-larger-than=
+--------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
+The text of this diagnostic is not controlled by Clang.
+
++--------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`stack frame size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bytes in` |nbsp| :placeholder:`B`|
++--------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-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.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`function definition inside an Objective-C container is deprecated`|
++--------------------------------------------------------------------------------------------------------+
+
+
+-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.
+
+-Wgcc-compat
+------------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'diagnose\_if' is a clang extension`|
++--------------------------------------------------------------------------+
+
++------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'enable\_if' is a clang extension`|
++------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`\_\_final is a GNU extension, consider using C++11 final`|
++-----------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute in this position on a function definition`|
++--------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'break' is bound to loop, GCC binds it to switch`|
++---------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow the 'cleanup' attribute argument to be anything other than a simple identifier`|
++----------------------------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------+
+|: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`|
++----------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wglobal-constructors
+---------------------
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`declaration requires a global constructor`|
++--------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`declaration requires a global destructor`|
++-------------------------------------------------------------------------------+
+
+
+-Wgnu
+-----
+Some of the diagnostics controlled by this flag are enabled by default.
+
+Controls `-Wgnu-alignof-expression`_, `-Wgnu-anonymous-struct`_, `-Wgnu-auto-type`_, `-Wgnu-binary-literal`_, `-Wgnu-case-range`_, `-Wgnu-complex-integer`_, `-Wgnu-compound-literal-initializer`_, `-Wgnu-conditional-omitted-operand`_, `-Wgnu-designator`_, `-Wgnu-empty-initializer`_, `-Wgnu-empty-struct`_, `-Wgnu-flexible-array-initializer`_, `-Wgnu-flexible-array-union-member`_, `-Wgnu-folding-constant`_, `-Wgnu-imaginary-constant`_, `-Wgnu-include-next`_, `-Wgnu-label-as-value`_, `-Wgnu-redeclared-enum`_, `-Wgnu-statement-expression`_, `-Wgnu-static-float-init`_, `-Wgnu-string-literal-operator-template`_, `-Wgnu-union-cast`_, `-Wgnu-variable-sized-type-not-at-end`_, `-Wgnu-zero-line-directive`_, `-Wgnu-zero-variadic-macro-arguments`_, `-Wredeclared-class-member`_, `-Wvla-extension`_, `-Wzero-length-array`_.
+
+
+-Wgnu-alignof-expression
+------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`applied to an expression is a GNU extension`|
++----------------------------------------------------------------------------------------------------------+
+
+
+-Wgnu-anonymous-struct
+----------------------
+**Diagnostic text:**
+
++----------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`anonymous structs are a GNU extension`|
++----------------------------------------------------------------------------+
+
+
+-Wgnu-array-member-paren-init
+-----------------------------
+This diagnostic is an error by default, but the flag ``-Wno-gnu-array-member-paren-init`` can be used to disable the error.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------+
+|:error:`error:` |nbsp| :diagtext:`parenthesized initialization of a member array is a GNU extension`|
++----------------------------------------------------------------------------------------------------+
+
+
+-Wgnu-auto-type
+---------------
+**Diagnostic text:**
+
++--------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'\_\_auto\_type' is a GNU extension`|
++--------------------------------------------------------------------------+
+
+
+-Wgnu-binary-literal
+--------------------
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`binary integer literals are a GNU extension`|
++----------------------------------------------------------------------------------+
+
+
+-Wgnu-case-range
+----------------
+**Diagnostic text:**
+
++----------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`use of GNU case range extension`|
++----------------------------------------------------------------------+
+
+
+-Wgnu-complex-integer
+---------------------
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`complex integer types are a GNU extension`|
++--------------------------------------------------------------------------------+
+
+
+-Wgnu-compound-literal-initializer
+----------------------------------
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`initialization of an array` |nbsp| :diagtext:`from a compound literal` |nbsp| :diagtext:`is a GNU extension`|
++--------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wgnu-conditional-omitted-operand
+---------------------------------
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`use of GNU ?: conditional expression extension, omitting middle operand`|
++--------------------------------------------------------------------------------------------------------------+
+
+
+-Wgnu-designator
+----------------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`use of GNU array range extension`|
++-----------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`use of GNU 'missing =' extension in designator`|
++-------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`use of GNU old-style field designator extension`|
++--------------------------------------------------------------------------------------+
+
+
+-Wgnu-empty-initializer
+-----------------------
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`use of GNU empty initializer extension`|
++-----------------------------------------------------------------------------+
+
+
+-Wgnu-empty-struct
+------------------
+**Diagnostic text:**
+
++----------------------------------------------------+--------------------+--------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`empty` |nbsp| |+------------------+| |nbsp| :diagtext:`is a GNU extension`|
+| ||:diagtext:`struct`|| |
+| |+------------------+| |
+| ||:diagtext:`union` || |
+| |+------------------+| |
++----------------------------------------------------+--------------------+--------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in otherwise empty` |nbsp| |+---------------------+| |nbsp| :diagtext:`is a GNU extension`|
+| ||:diagtext:`struct` || |
+| |+---------------------+| |
+| ||:diagtext:`interface`|| |
+| |+---------------------+| |
+| ||:diagtext:`union` || |
+| |+---------------------+| |
+| ||:diagtext:`class` || |
+| |+---------------------+| |
+| ||:diagtext:`enum` || |
+| |+---------------------+| |
++----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------+
+
++---------------------------+--------------------+------------------------------------------------------------+
+|:warning:`warning:` |nbsp| |+------------------+| |nbsp| :diagtext:`without named members is a GNU extension`|
+| ||:diagtext:`struct`|| |
+| |+------------------+| |
+| ||:diagtext:`union` || |
+| |+------------------+| |
++---------------------------+--------------------+------------------------------------------------------------+
+
+
+-Wgnu-flexible-array-initializer
+--------------------------------
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`flexible array initialization is a GNU extension`|
++---------------------------------------------------------------------------------------+
+
+
+-Wgnu-flexible-array-union-member
+---------------------------------
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in a union is a GNU extension`|
++-------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wgnu-folding-constant
+----------------------
+**Diagnostic text:**
+
++-------------------------------------------------------------------+----------------------+------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`expression is not an` |nbsp| |+--------------------+| |nbsp| :diagtext:`constant expression; folding it to a constant is a GNU extension`|
+| ||:diagtext:`integer` || |
+| |+--------------------+| |
+| ||:diagtext:`integral`|| |
+| |+--------------------+| |
++-------------------------------------------------------------------+----------------------+------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`in-class initializer for static data member is not a constant expression; folding it to a constant is a GNU extension`|
++------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`variable length array folded to constant array as an extension`|
++-----------------------------------------------------------------------------------------------------+
+
+
+-Wgnu-imaginary-constant
+------------------------
+**Diagnostic text:**
+
++------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`imaginary constants are a GNU extension`|
++------------------------------------------------------------------------------+
+
+
+-Wgnu-include-next
+------------------
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`#include\_next is a language extension`|
++-----------------------------------------------------------------------------+
+
+
+-Wgnu-label-as-value
+--------------------
+**Diagnostic text:**
+
++----------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`use of GNU address-of-label extension`|
++----------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`use of GNU indirect-goto extension`|
++-------------------------------------------------------------------------+
+
+
+-Wgnu-redeclared-enum
+---------------------
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`redeclaration of already-defined enum` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a GNU extension`|
++------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wgnu-statement-expression
+--------------------------
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`use of GNU statement expression extension`|
++--------------------------------------------------------------------------------+
+
+
+-Wgnu-static-float-init
+-----------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`in-class initializer for static data member of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a GNU extension`|
++--------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wgnu-string-literal-operator-template
+--------------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`string literal operator templates are a GNU extension`|
++--------------------------------------------------------------------------------------------+
+
+
+-Wgnu-union-cast
+----------------
+**Diagnostic text:**
+
++----------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`cast to union type is a GNU extension`|
++----------------------------------------------------------------------------+
+
+
+-Wgnu-variable-sized-type-not-at-end
+------------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with variable sized type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not at the end of a struct or class is a GNU extension`|
++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wgnu-zero-line-directive
+-------------------------
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`#line directive with zero argument is a GNU extension`|
++--------------------------------------------------------------------------------------------+
+
+
+-Wgnu-zero-variadic-macro-arguments
+-----------------------------------
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`must specify at least one argument for '...' parameter of variadic macro`|
++---------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`token pasting of ',' and \_\_VA\_ARGS\_\_ is a GNU extension`|
++---------------------------------------------------------------------------------------------------+
+
+
+-Wheader-guard
+--------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is used as a header guard here, followed by #define of a different macro`|
++---------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wheader-hygiene
+----------------
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`using namespace directive in global context in header`|
++--------------------------------------------------------------------------------------------+
+
+
+-Widiomatic-parentheses
+-----------------------
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`using the result of an assignment as a condition without parentheses`|
++-----------------------------------------------------------------------------------------------------------+
+
+
+-Wignored-attributes
+--------------------
+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`|| |
+| |+-----------------+| |
+| ||:diagtext:`ifunc`|| |
+| |+-----------------+| |
++---------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------+-------------------+----------------------------------------------------------------------------------------------------------------+----------------------+
+|:warning:`warning:` |nbsp| |+-----------------+| |nbsp| :diagtext:`will not be in section '`:placeholder:`A`:diagtext:`' but in the same section as the` |nbsp| |+--------------------+|
+| ||:diagtext:`alias`|| ||:diagtext:`aliasee` ||
+| |+-----------------+| |+--------------------+|
+| ||:diagtext:`ifunc`|| ||:diagtext:`resolver`||
+| |+-----------------+| |+--------------------+|
++---------------------------+-------------------+----------------------------------------------------------------------------------------------------------------+----------------------+
+
++----------------------------------------------------------------------+------------------------+-------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'abi\_tag' attribute on` |nbsp| |+----------------------+| |nbsp| :diagtext:`namespace ignored`|
+| ||:diagtext:`non-inline`|| |
+| |+----------------------+| |
+| ||:diagtext:`anonymous` || |
+| |+----------------------+| |
++----------------------------------------------------------------------+------------------------+-------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`after definition is ignored`|
++-----------------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute can only be applied to instance variables or properties`|
++--------------------------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored`|
++--------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored for field of type` |nbsp| :placeholder:`B`|
++--------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored on inline function`|
++---------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' attribute cannot be specified on a definition`|
++-------------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it is not attached to a declaration`|
++------------------------------------------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'nonnull' attribute applied to function with no pointer arguments`|
++--------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'nonnull' attribute when used on parameters takes no arguments`|
++-----------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored when parsing type`|
++--------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to a pointer or reference (`:placeholder:`B` |nbsp| :diagtext:`is invalid)`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------+------------------------------+-------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to`|+----------------------------+| |nbsp| :diagtext:`pointer arguments`|
+| || || |
+| |+----------------------------+| |
+| || |nbsp| :diagtext:`constant`|| |
+| |+----------------------------+| |
++----------------------------------------------------------------------------------------+------------------------------+-------------------------------------+
+
++------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`attribute declaration must precede definition`|
++------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to return values that are pointers`|
++------------------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to return values that are pointers or references`|
++--------------------------------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'sentinel' attribute requires named arguments`|
++------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------+-----------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'sentinel' attribute only supported for variadic` |nbsp| |+---------------------+|
+| ||:diagtext:`functions`||
+| |+---------------------+|
+| ||:diagtext:`blocks` ||
+| |+---------------------+|
++-----------------------------------------------------------------------------------------------+-----------------------+
+
++------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute argument not supported:` |nbsp| :placeholder:`B`|
++------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unknown visibility` |nbsp| :placeholder:`A`|
++---------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be applied to` |nbsp| |+------------------------------+| |nbsp| :diagtext:`without return value`|
+| ||:diagtext:`functions` || |
+| |+------------------------------+| |
+| ||:diagtext:`Objective-C method`|| |
+| |+------------------------------+| |
++------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------+
+
++----------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`\_\_weak attribute cannot be specified on a field declaration`|
++----------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------------------------+
+|: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 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`|
++--------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`calling convention` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored for this target`|
++----------------------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`calling convention ignored on constructor/destructor`|
++-------------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`calling convention ignored on variadic function`|
++--------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it cannot be applied to a type`|
++-------------------------------------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------------------+-----------------------+----------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is ignored, place it after "`|+---------------------+|:diagtext:`" to apply attribute to type declaration`|
+| ||:diagtext:`class` || |
+| |+---------------------+| |
+| ||:diagtext:`struct` || |
+| |+---------------------+| |
+| ||:diagtext:`interface`|| |
+| |+---------------------+| |
+| ||:diagtext:`union` || |
+| |+---------------------+| |
+| ||:diagtext:`enum` || |
+| |+---------------------+| |
++------------------------------------------------------------------------------------------------------------------------+-----------------------+----------------------------------------------------+
+
++--------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'deprecated' attribute on anonymous namespace ignored`|
++--------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`redeclared inline;` |nbsp| :placeholder:`B` |nbsp| :diagtext:`attribute ignored`|
++----------------------------------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is already applied with different parameters`|
++----------------------------------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is already applied`|
++--------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`Objective-C GC does not allow weak variables on the stack`|
++------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'gnu\_inline' attribute requires function to be marked 'inline', attribute ignored`|
++-------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------+------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`inheritance model ignored on` |nbsp| |+----------------------------------+|
+| ||:diagtext:`primary template` ||
+| |+----------------------------------+|
+| ||:diagtext:`partial specialization`||
+| |+----------------------------------+|
++---------------------------------------------------------------------------+------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'internal\_linkage' attribute on a non-static local variable is ignored`|
++--------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`qualifiers after comma in declarator list are ignored`|
++--------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------+----------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`MIPS 'interrupt' attribute only applies to functions that have` |nbsp| |+--------------------------------+|
+| ||:diagtext:`no parameters` ||
+| |+--------------------------------+|
+| ||:diagtext:`a 'void' return type`||
+| |+--------------------------------+|
++-------------------------------------------------------------------------------------------------------------+----------------------------------+
+
++---------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unknown attribute '`:placeholder:`A`:diagtext:`'`|
++---------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'nocf\_check' attribute ignored; use -fcf-protection to enable the attribute`|
++-------------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------+
+|: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| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+----------------------+| |nbsp| :diagtext:`that return` |nbsp| |+------------------------------------+|
+| ||:diagtext:`functions` || ||:diagtext:`an Objective-C object` ||
+| |+----------------------+| |+------------------------------------+|
+| ||:diagtext:`methods` || ||:diagtext:`a pointer` ||
+| |+----------------------+| |+------------------------------------+|
+| ||:diagtext:`properties`|| ||:diagtext:`a non-retainable pointer`||
+| |+----------------------+| |+------------------------------------+|
++------------------------------------------------------------------------------------------------+------------------------+---------------------------------------+--------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------------------------------+
+|: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`|| |
+| |+---------------------+| |+---------------------+| |
+| ||:diagtext:`size` || ||:diagtext:`size` || |
+| |+---------------------+| |+---------------------+| |
++---------------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------+----------------------------+--------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`first field of a transparent union cannot have` |nbsp| |+--------------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`B`:diagtext:`; transparent\_union attribute ignored`|
+| ||:diagtext:`floating point`|| |
+| |+--------------------------+| |
+| ||:diagtext:`vector` || |
+| |+--------------------------+| |
++---------------------------------------------------------------------------------------------+----------------------------+--------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`transparent\_union attribute can only be applied to a union definition; attribute ignored`|
++--------------------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`transparent union definition must contain at least one field; transparent\_union attribute ignored`|
++-----------------------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------+-------------------------------------------------+---------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' only applies to` |nbsp| |+-----------------------------------------------+| |nbsp| :diagtext:`types; type here is` |nbsp| :placeholder:`C`|
+| ||:diagtext:`function` || |
+| |+-----------------------------------------------+| |
+| ||:diagtext:`pointer` || |
+| |+-----------------------------------------------+| |
+| ||:diagtext:`Objective-C object or block pointer`|| |
+| |+-----------------------------------------------+| |
++---------------------------------------------------------------------------------------------+-------------------------------------------------+---------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`\_\_declspec attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not supported`|
++-------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------+-------------------------+----------------------------------+---------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| |+-----------------------+|+--------------------------------+| |nbsp| :diagtext:`'`:placeholder:`C`:diagtext:`' in the 'target' attribute string; 'target' attribute ignored`|
+| ||:diagtext:`unsupported`||| || |
+| |+-----------------------+|+--------------------------------+| |
+| ||:diagtext:`duplicate` ||| |nbsp| :diagtext:`architecture`|| |
+| |+-----------------------+|+--------------------------------+| |
++---------------------------+-------------------------+----------------------------------+---------------------------------------------------------------------------------------------------------------+
+
+
+-Wignored-optimization-argument
+-------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`optimization flag '`:placeholder:`A`:diagtext:`' is not supported for target '`:placeholder:`B`:diagtext:`'`|
++--------------------------------------------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`optimization flag '`:placeholder:`A`:diagtext:`' is not supported`|
++--------------------------------------------------------------------------------------------------------+
+
+
+-Wignored-pragma-intrinsic
+--------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not a recognized builtin`|+----------------------------------------------------------------------------+|
+| || ||
+| |+----------------------------------------------------------------------------+|
+| ||:diagtext:`; consider including <intrin.h> to access non-builtin intrinsics`||
+| |+----------------------------------------------------------------------------+|
++------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+
+
+
+-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`_, `-Wignored-pragma-optimize`_.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------+---------------------------+-----------------------+
+|:warning:`warning:` |nbsp| :diagtext:`expected '=' following '#pragma` |nbsp| |+-------------------------+|:diagtext:`' - ignored`|
+| ||:diagtext:`align` || |
+| |+-------------------------+| |
+| ||:diagtext:`options align`|| |
+| |+-------------------------+| |
++------------------------------------------------------------------------------+---------------------------+-----------------------+
+
++-----------------------------------------------------------------------------------+---------------------------+-----------------------+
+|:warning:`warning:` |nbsp| :diagtext:`invalid alignment option in '#pragma` |nbsp| |+-------------------------+|:diagtext:`' - ignored`|
+| ||:diagtext:`align` || |
+| |+-------------------------+| |
+| ||:diagtext:`options align`|| |
+| |+-------------------------+| |
++-----------------------------------------------------------------------------------+---------------------------+-----------------------+
+
++-----------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`OpenCL extension end directive mismatches begin directive - ignoring`|
++-----------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'#pragma comment` |nbsp| :placeholder:`A`:diagtext:`' ignored`|
++----------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`missing argument to debug command '`:placeholder:`A`:diagtext:`'`|
++-------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unexpected debug command '`:placeholder:`A`:diagtext:`'`|
++----------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`expected action or ')' in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
++------------------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`missing ':' after` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`|
++--------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------+
+|: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`|
++---------------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`expected 'compiler', 'lib', 'user', or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`expected integer between` |nbsp| :placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B` |nbsp| :diagtext:`inclusive in '#pragma` |nbsp| :placeholder:`C`:diagtext:`' - ignored`|
++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`missing '(' after '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignoring`|
++-----------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`expected non-wide string literal in '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`|
++------------------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------+---------------------------------------------------+------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`expected` |nbsp| |+-------------------------------------------------+| |nbsp| :diagtext:`- ignoring`|
+| ||:diagtext:`'enable', 'disable', 'begin' or 'end'`|| |
+| |+-------------------------------------------------+| |
+| ||:diagtext:`'disable'` || |
+| |+-------------------------------------------------+| |
++-------------------------------------------------------+---------------------------------------------------+------------------------------+
+
++-----------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`expected ')' or ',' in '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`|
++-----------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`missing ')' after '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignoring`|
++-----------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`expected a stack label or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`expected a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
++------------------------------------------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|: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`|
++---------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`incorrect use of #pragma clang force\_cuda\_host\_device begin\|end`|
++----------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'#pragma init\_seg' is only supported when targeting a Microsoft environment`|
++-------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------+
+|: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`|
++----------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`#pragma options align=reset failed:` |nbsp| :placeholder:`A`|
++--------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`expected 'align' following '#pragma options' - ignored`|
++---------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`expected #pragma pack parameter to be '1', '2', '4', '8', or '16'`|
++--------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`expected integer or identifier in '#pragma pack' - ignored`|
++-------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`#pragma` |nbsp| :placeholder:`A`:diagtext:`(pop, ...) failed:` |nbsp| :placeholder:`B`|
++----------------------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`pragma pop\_macro could not pop '`:placeholder:`A`:diagtext:`', no matching push\_macro`|
++------------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unknown OpenCL extension` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`|
++---------------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`known but unsupported action '`:placeholder:`B`:diagtext:`' for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
++--------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unsupported OpenCL extension` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`|
++-------------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`expected '#pragma unused' argument to be a variable name`|
++-----------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`only variables can be arguments to '#pragma unused'`|
++------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`undeclared variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`used as an argument for '#pragma unused'`|
++----------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wignored-qualifiers
+--------------------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------+------------------------------------+----------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`ARC` |nbsp| |+----------------------------------+| |nbsp| :diagtext:`lifetime qualifier on return type is ignored`|
+| ||:diagtext:`unused` || |
+| |+----------------------------------+| |
+| ||:diagtext:`\_\_unsafe\_unretained`|| |
+| |+----------------------------------+| |
+| ||:diagtext:`\_\_strong` || |
+| |+----------------------------------+| |
+| ||:diagtext:`\_\_weak` || |
+| |+----------------------------------+| |
+| ||:diagtext:`\_\_autoreleasing` || |
+| |+----------------------------------+| |
++--------------------------------------------------+------------------------------------+----------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|: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:`' qualifier on function type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`|
++---------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on reference type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wimplicit
+----------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+Controls `-Wimplicit-function-declaration`_, `-Wimplicit-int`_.
+
+
+-Wimplicit-atomic-properties
+----------------------------
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`property is assumed atomic when auto-synthesizing the property`|
++-----------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`property is assumed atomic by default`|
++----------------------------------------------------------------------------+
+
+
+-Wimplicit-conversion-floating-point-to-bool
+--------------------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns floating-point number into bool:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wimplicit-exception-spec-mismatch
+----------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------+----------------------+-------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`function previously declared with an` |nbsp| |+--------------------+| |nbsp| :diagtext:`exception specification redeclared with an` |nbsp| |+--------------------+| |nbsp| :diagtext:`exception specification`|
+| ||:diagtext:`explicit`|| ||:diagtext:`implicit`|| |
+| |+--------------------+| |+--------------------+| |
+| ||:diagtext:`implicit`|| ||:diagtext:`explicit`|| |
+| |+--------------------+| |+--------------------+| |
++-----------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------+----------------------+-------------------------------------------+
+
+
+-Wimplicit-fallthrough
+----------------------
+Also controls `-Wimplicit-fallthrough-per-function`_.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`fallthrough annotation in unreachable code`|
++---------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unannotated fall-through between switch labels`|
++-------------------------------------------------------------------------------------+
+
+
+-Wimplicit-fallthrough-per-function
+-----------------------------------
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unannotated fall-through between switch labels in partly-annotated function`|
++------------------------------------------------------------------------------------------------------------------+
+
+
+-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:`implicitly declaring library function '`:placeholder:`A`:diagtext:`' with type` |nbsp| :placeholder:`B`|
++---------------------------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------+
+|:error:`error:` |nbsp| :diagtext:`use of unknown builtin` |nbsp| :placeholder:`A`|
++---------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`implicit declaration of function` |nbsp| :placeholder:`A`|
++-----------------------------------------------------------------------------------------------+
+
+
+-Wimplicit-int
+--------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`type specifier missing, defaults to 'int'`|
++--------------------------------------------------------------------------------+
+
+
+-Wimplicit-retain-self
+----------------------
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`block implicitly retains 'self'; explicitly mention 'self' to indicate this is intended behavior`|
++---------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wimplicitly-unsigned-literal
+-----------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`integer literal is too large to be represented in a signed integer type, interpreting as unsigned`|
++----------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wimport
+--------
+This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
+
+-Wimport-preprocessor-directive-pedantic
+----------------------------------------
+**Diagnostic text:**
+
++----------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`#import is a language extension`|
++----------------------------------------------------------------------+
+
+
+-Winaccessible-base
+-------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`direct base` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is inaccessible due to ambiguity:`:placeholder:`B`|
++-----------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Winclude-next-absolute-path
+----------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`#include\_next with absolute path`|
++------------------------------------------------------------------------+
+
+
+-Winclude-next-outside-header
+-----------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`#include\_next in primary source file`|
++----------------------------------------------------------------------------+
+
+
+-Wincompatible-exception-spec
+-----------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------+----------------------+--------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`exception specifications of` |nbsp| |+--------------------+| |nbsp| :diagtext:`types differ`|
+| ||:diagtext:`return` || |
+| |+--------------------+| |
+| ||:diagtext:`argument`|| |
+| |+--------------------+| |
++--------------------------------------------------------------------------+----------------------+--------------------------------+
+
++-----------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`target exception specification is not superset of source`|
++-----------------------------------------------------------------------------------------------+
+
+
+-Wincompatible-function-pointer-types
+-------------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`incompatible function pointer types` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+|
+| ||:diagtext:`assigning to different types` ||| ||
+| |+--------------------------------------------------------------+|+-------------------------------------+|
+| ||:diagtext:`passing to parameter of different type` |||:diagtext:`; dereference with \*` ||
+| |+--------------------------------------------------------------+|+-------------------------------------+|
+| ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`||
+| |+--------------------------------------------------------------+|+-------------------------------------+|
+| ||:diagtext:`converting between types` |||:diagtext:`; remove \*` ||
+| |+--------------------------------------------------------------+|+-------------------------------------+|
+| ||:diagtext:`initializing with expression of different type` |||:diagtext:`; remove &` ||
+| |+--------------------------------------------------------------+|+-------------------------------------+|
+| ||:diagtext:`sending to parameter of different type` || |
+| |+--------------------------------------------------------------+| |
+| ||:diagtext:`casting between types` || |
+| |+--------------------------------------------------------------+| |
++----------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
+
+
+-Wincompatible-library-redeclaration
+------------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`incompatible redeclaration of library function` |nbsp| :placeholder:`A`|
++-------------------------------------------------------------------------------------------------------------+
+
+
+-Wincompatible-ms-struct
+------------------------
+This diagnostic is an error by default, but the flag ``-Wno-incompatible-ms-struct`` can be used to disable the error.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------------------------+
+|:error:`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
+----------------------------
+This diagnostic is enabled by default.
+
+Also controls `-Wincompatible-function-pointer-types`_, `-Wincompatible-pointer-types-discards-qualifiers`_.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`incompatible pointer types` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+|
+| ||:diagtext:`assigning to different types` ||| ||
+| |+--------------------------------------------------------------+|+-------------------------------------+|
+| ||:diagtext:`passing to parameter of different type` |||:diagtext:`; dereference with \*` ||
+| |+--------------------------------------------------------------+|+-------------------------------------+|
+| ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`||
+| |+--------------------------------------------------------------+|+-------------------------------------+|
+| ||:diagtext:`converting between types` |||:diagtext:`; remove \*` ||
+| |+--------------------------------------------------------------+|+-------------------------------------+|
+| ||:diagtext:`initializing with expression of different type` |||:diagtext:`; remove &` ||
+| |+--------------------------------------------------------------+|+-------------------------------------+|
+| ||:diagtext:`sending to parameter of different type` || |
+| |+--------------------------------------------------------------+| |
+| ||:diagtext:`casting between types` || |
+| |+--------------------------------------------------------------+| |
++-------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
+
+
+-Wincompatible-pointer-types-discards-qualifiers
+------------------------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------+----------------------------------------------------------------+---------------------------------------------------------------+
+|:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`discards qualifiers in nested pointer types`|
+| ||:diagtext:`assigning to different types` || |
+| |+--------------------------------------------------------------+| |
+| ||:diagtext:`passing to parameter of different type` || |
+| |+--------------------------------------------------------------+| |
+| ||:diagtext:`returning from function with different return type`|| |
+| |+--------------------------------------------------------------+| |
+| ||:diagtext:`converting between types` || |
+| |+--------------------------------------------------------------+| |
+| ||:diagtext:`initializing with expression of different type` || |
+| |+--------------------------------------------------------------+| |
+| ||:diagtext:`sending to parameter of different type` || |
+| |+--------------------------------------------------------------+| |
+| ||:diagtext:`casting between types` || |
+| |+--------------------------------------------------------------+| |
++---------------------------+----------------------------------------------------------------+---------------------------------------------------------------+
+
++---------------------------+----------------------------------------------------------------+---------------------------------------+
+|:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`discards qualifiers`|
+| ||:diagtext:`assigning to different types` || |
+| |+--------------------------------------------------------------+| |
+| ||:diagtext:`passing to parameter of different type` || |
+| |+--------------------------------------------------------------+| |
+| ||:diagtext:`returning from function with different return type`|| |
+| |+--------------------------------------------------------------+| |
+| ||:diagtext:`converting between types` || |
+| |+--------------------------------------------------------------+| |
+| ||:diagtext:`initializing with expression of different type` || |
+| |+--------------------------------------------------------------+| |
+| ||:diagtext:`sending to parameter of different type` || |
+| |+--------------------------------------------------------------+| |
+| ||:diagtext:`casting between types` || |
+| |+--------------------------------------------------------------+| |
++---------------------------+----------------------------------------------------------------+---------------------------------------+
+
+
+-Wincompatible-property-type
+----------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`property type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`inherited from` |nbsp| :placeholder:`C`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wincompatible-sysroot
+----------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`using sysroot for '`:placeholder:`A`:diagtext:`' but targeting '`:placeholder:`B`:diagtext:`'`|
++------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-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.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`method definition for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found`|
++-----------------------------------------------------------------------------------------------------------------+
+
+
+-Wincomplete-module
+-------------------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+Controls `-Wincomplete-umbrella`_, `-Wnon-modular-include-in-module`_.
+
+
+-Wincomplete-umbrella
+---------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`missing submodule '`:placeholder:`A`:diagtext:`'`|
++---------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`umbrella directory '`:placeholder:`A`:diagtext:`' not found`|
++--------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`umbrella header for module '`:placeholder:`A`:diagtext:`' does not include header '`:placeholder:`B`:diagtext:`'`|
++-------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Winconsistent-dllimport
+------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`redeclared without` |nbsp| :placeholder:`B` |nbsp| :diagtext:`attribute: previous` |nbsp| :placeholder:`B` |nbsp| :diagtext:`ignored`|
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`redeclared without 'dllimport' attribute: 'dllexport' attribute added`|
++------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Winconsistent-missing-destructor-override
+------------------------------------------
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`overrides a destructor but is not marked 'override'`|
++------------------------------------------------------------------------------------------------------------------+
+
+
+-Winconsistent-missing-override
+-------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`overrides a member function but is not marked 'override'`|
++-----------------------------------------------------------------------------------------------------------------------+
+
+
+-Wincrement-bool
+----------------
+This diagnostic is enabled by default.
+
+Also controls `-Wdeprecated-increment-bool`_.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------+
+|:error:`error:` |nbsp| :diagtext:`ISO C++17 does not allow incrementing expression of type bool`|
++------------------------------------------------------------------------------------------------+
+
+
+-Winfinite-recursion
+--------------------
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`all paths through this function will call itself`|
++---------------------------------------------------------------------------------------+
+
+
+-Winit-self
+-----------
+This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
+
+-Winitializer-overrides
+-----------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`initializer overrides prior initialization of this subobject`|
++---------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`subobject initialization overrides initialization of other fields within its enclosing subobject`|
++---------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Winjected-class-name
+---------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------+--------------------------------------------------------------+------------------------+---------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`ISO C++ specifies that qualified reference to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a constructor name rather than a` |nbsp| |+-------------------------+| |nbsp| :diagtext:`in this context, despite preceding` |nbsp| |+----------------------+| |nbsp| :diagtext:`keyword`|
+| ||:diagtext:`template name`|| ||:diagtext:`'typename'`|| |
+| |+-------------------------+| |+----------------------+| |
+| ||:diagtext:`type` || ||:diagtext:`'template'`|| |
+| |+-------------------------+| |+----------------------+| |
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------+--------------------------------------------------------------+------------------------+---------------------------+
+
+
+-Winline
+--------
+This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
+
+-Winline-asm
+------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
+The text of this diagnostic is not controlled by Clang.
+
+
+-Winline-new-delete
+-------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`replacement function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be declared 'inline'`|
++----------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Winstantiation-after-specialization
+------------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`that occurs after an explicit specialization has no effect`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wint-conversion
+----------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`incompatible integer to pointer conversion` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+|
+| ||:diagtext:`assigning to different types` ||| ||
+| |+--------------------------------------------------------------+|+-------------------------------------+|
+| ||:diagtext:`passing to parameter of different type` |||:diagtext:`; dereference with \*` ||
+| |+--------------------------------------------------------------+|+-------------------------------------+|
+| ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`||
+| |+--------------------------------------------------------------+|+-------------------------------------+|
+| ||:diagtext:`converting between types` |||:diagtext:`; remove \*` ||
+| |+--------------------------------------------------------------+|+-------------------------------------+|
+| ||:diagtext:`initializing with expression of different type` |||:diagtext:`; remove &` ||
+| |+--------------------------------------------------------------+|+-------------------------------------+|
+| ||:diagtext:`sending to parameter of different type` || |
+| |+--------------------------------------------------------------+| |
+| ||:diagtext:`casting between types` || |
+| |+--------------------------------------------------------------+| |
++-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
+
++-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`incompatible pointer to integer conversion` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+|
+| ||:diagtext:`assigning to different types` ||| ||
+| |+--------------------------------------------------------------+|+-------------------------------------+|
+| ||:diagtext:`passing to parameter of different type` |||:diagtext:`; dereference with \*` ||
+| |+--------------------------------------------------------------+|+-------------------------------------+|
+| ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`||
+| |+--------------------------------------------------------------+|+-------------------------------------+|
+| ||:diagtext:`converting between types` |||:diagtext:`; remove \*` ||
+| |+--------------------------------------------------------------+|+-------------------------------------+|
+| ||:diagtext:`initializing with expression of different type` |||:diagtext:`; remove &` ||
+| |+--------------------------------------------------------------+|+-------------------------------------+|
+| ||:diagtext:`sending to parameter of different type` || |
+| |+--------------------------------------------------------------+| |
+| ||:diagtext:`casting between types` || |
+| |+--------------------------------------------------------------+| |
++-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
+
+
+-Wint-conversions
+-----------------
+Synonym for `-Wint-conversion`_.
+
+
+-Wint-to-pointer-cast
+---------------------
+This diagnostic is enabled by default.
+
+Also controls `-Wint-to-void-pointer-cast`_.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`cast to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from smaller integer type` |nbsp| :placeholder:`A`|
++-------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wint-to-void-pointer-cast
+--------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`cast to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from smaller integer type` |nbsp| :placeholder:`A`|
++-------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Winteger-overflow
+------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`overflow in expression; result is` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with type` |nbsp| :placeholder:`B`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Winvalid-command-line-argument
+-------------------------------
+This diagnostic is enabled by default.
+
+Also controls `-Wignored-optimization-argument`_.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`the object size sanitizer has no effect at -O0, but is explicitly enabled:` |nbsp| :placeholder:`A`|
++-----------------------------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`optimization level '`:placeholder:`A`:diagtext:`' is not supported; using '`:placeholder:`B`:placeholder:`C`:diagtext:`' instead`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Winvalid-constexpr
+-------------------
+This diagnostic is an error by default, but the flag ``-Wno-invalid-constexpr`` can be used to disable the error.
+
+**Diagnostic text:**
+
++----------------------------------------------------+-------------------------+--------------------------------------------------------+
+|:error:`error:` |nbsp| :diagtext:`constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`never produces a constant expression`|
+| ||:diagtext:`function` || |
+| |+-----------------------+| |
+| ||:diagtext:`constructor`|| |
+| |+-----------------------+| |
++----------------------------------------------------+-------------------------+--------------------------------------------------------+
+
+
+-Winvalid-iboutlet
+------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute must be an object type (invalid` |nbsp| :placeholder:`B`:diagtext:`)`|
+| ||:diagtext:`instance variable`|| |
+| |+-----------------------------+| |
+| ||:diagtext:`property` || |
+| |+-----------------------------+| |
++---------------------------+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`IBOutletCollection properties should be copy/strong and not assign`|
++---------------------------------------------------------------------------------------------------------+
+
+
+-Winvalid-initializer-from-system-header
+----------------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`invalid constructor form class in system header, should not be explicit`|
++--------------------------------------------------------------------------------------------------------------+
+
+
+-Winvalid-ios-deployment-target
+-------------------------------
+This diagnostic is an error by default, but the flag ``-Wno-invalid-ios-deployment-target`` can be used to disable the error.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:error:`error:` |nbsp| :diagtext:`invalid iOS deployment version '`:placeholder:`A`:diagtext:`', iOS 10 is the maximum deployment target for 32-bit targets`|
++------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Winvalid-noreturn
+------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`function declared 'noreturn' should not return`|
++-------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared 'noreturn' should not return`|
++--------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Winvalid-offsetof
+------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`offset of on non-POD type` |nbsp| :placeholder:`A`|
++----------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`offset of on non-standard-layout type` |nbsp| :placeholder:`A`|
++----------------------------------------------------------------------------------------------------+
+
+
+-Winvalid-or-nonexistent-directory
+----------------------------------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`environment variable SCE\_ORBIS\_SDK\_DIR is set, but points to invalid or nonexistent directory '`:placeholder:`A`:diagtext:`'`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unable to find` |nbsp| :placeholder:`A` |nbsp| :diagtext:`directory, expected to be in '`:placeholder:`B`:diagtext:`'`|
++------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Winvalid-partial-specialization
+--------------------------------
+This diagnostic is an error by default, but the flag ``-Wno-invalid-partial-specialization`` can be used to disable the error.
+
+**Diagnostic text:**
+
++-----------------------+----------------------+-----------------------------------------------------------------------------------------------------+
+|:error:`error:` |nbsp| |+--------------------+| |nbsp| :diagtext:`template partial specialization is not more specialized than the primary template`|
+| ||:diagtext:`class` || |
+| |+--------------------+| |
+| ||:diagtext:`variable`|| |
+| |+--------------------+| |
++-----------------------+----------------------+-----------------------------------------------------------------------------------------------------+
+
+
+-Winvalid-pch
+-------------
+This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
+
+-Winvalid-pp-token
+------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`empty character constant`|
++---------------------------------------------------------------+
+
++------------------------------------------------------------------+-----------------+-----------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`missing terminating` |nbsp| |+---------------+| |nbsp| :diagtext:`character`|
+| ||:diagtext:`'` || |
+| |+---------------+| |
+| ||:diagtext:`'"'`|| |
+| |+---------------+| |
++------------------------------------------------------------------+-----------------+-----------------------------+
+
+
+-Winvalid-source-encoding
+-------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`illegal character encoding in character literal`|
++--------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`illegal character encoding in string literal`|
++-----------------------------------------------------------------------------------+
+
+
+-Winvalid-token-paste
+---------------------
+This diagnostic is an error by default, but the flag ``-Wno-invalid-token-paste`` can be used to disable the error.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------+
+|:error:`error:` |nbsp| :diagtext:`pasting formed '`:placeholder:`A`:diagtext:`', an invalid preprocessing token`|
++----------------------------------------------------------------------------------------------------------------+
+
+
+-Wjump-seh-finally
+------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`jump out of \_\_finally block has undefined behavior`|
++-------------------------------------------------------------------------------------------+
+
+
+-Wkeyword-compat
+----------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`keyword '`:placeholder:`A`:diagtext:`' will be made available as an identifier` |nbsp| |+-----------------------------------------------------+|
+| ||:diagtext:`here` ||
+| |+-----------------------------------------------------+|
+| ||:diagtext:`for the remainder of the translation unit`||
+| |+-----------------------------------------------------+|
++-----------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+
+
+
+-Wkeyword-macro
+---------------
+**Diagnostic text:**
+
++----------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`keyword is hidden by macro definition`|
++----------------------------------------------------------------------------+
+
+
+-Wknr-promoted-parameter
+------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`promoted type of K&R function parameter is not compatible with parameter type` |nbsp| :diagtext:`declared in a previous prototype`|
++------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wlanguage-extension-token
+--------------------------
+**Diagnostic text:**
+
++-----------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`extension used`|
++-----------------------------------------------------+
+
+
+-Wlarge-by-value-copy
+---------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a large (`:placeholder:`B` |nbsp| :diagtext:`bytes) pass-by-value argument; pass it by reference instead ?`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`return value of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a large (`:placeholder:`B` |nbsp| :diagtext:`bytes) pass-by-value object; pass it by reference instead ?`|
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wliblto
+--------
+This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
+
+-Wliteral-conversion
+--------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|: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
+---------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`magnitude of floating-point constant too large for type` |nbsp| :placeholder:`A`:diagtext:`; maximum is` |nbsp| :placeholder:`B`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`magnitude of floating-point constant too small for type` |nbsp| :placeholder:`A`:diagtext:`; minimum is` |nbsp| :placeholder:`B`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wlocal-type-template-args
+--------------------------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+Also controls `-Wc++98-compat-local-type-template-args`_.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`template argument uses local type` |nbsp| :placeholder:`A`|
++------------------------------------------------------------------------------------------------+
+
+
+-Wlogical-not-parentheses
+-------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------+------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`logical not is only applied to the left hand side of this` |nbsp| |+----------------------------+|
+| ||:diagtext:`comparison` ||
+| |+----------------------------+|
+| ||:diagtext:`bitwise operator`||
+| |+----------------------------+|
++--------------------------------------------------------------------------------------------------------+------------------------------+
+
+
+-Wlogical-op-parentheses
+------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'&&' within '\|\|'`|
++---------------------------------------------------------+
+
+
+-Wlong-long
+-----------
+Also controls `-Wc++11-long-long`_.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'long long' is an extension when C99 mode is not enabled`|
++-----------------------------------------------------------------------------------------------+
+
+
+-Wloop-analysis
+---------------
+Controls `-Wfor-loop-analysis`_, `-Wrange-loop-analysis`_.
+
+
+-Wmacro-redefined
+-----------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`macro redefined`|
++------------------------------------------------------------------------------+
+
+
+-Wmain
+------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow 'main' to be used by a program`|
++--------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'main' is not allowed to be declared \_Noreturn`|
++--------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'main' is not allowed to be declared variadic`|
++------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`only one parameter on 'main' declaration`|
++-------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`variable named 'main' with external linkage has undefined behavior`|
++---------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`bool literal returned from 'main'`|
++------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'main' should not be declared static`|
++---------------------------------------------------------------------------+
+
+
+-Wmain-return-type
+------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`return type of 'main' is not 'int'`|
++-------------------------------------------------------------------------+
+
+
+-Wmalformed-warning-check
+-------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`\_\_has\_warning expected option name (e.g. "-Wundef")`|
++---------------------------------------------------------------------------------------------+
+
+
+-Wmany-braces-around-scalar-init
+--------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`too many braces around scalar initializer`|
++--------------------------------------------------------------------------------+
+
+
+-Wmax-unsigned-zero
+-------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------+---------------------------------------+------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`taking the max of` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`is always equal to the other value`|
+| ||:diagtext:`a value and unsigned zero`|| |
+| |+-------------------------------------+| |
+| ||:diagtext:`unsigned zero and a value`|| |
+| |+-------------------------------------+| |
++----------------------------------------------------------------+---------------------------------------+------------------------------------------------------+
+
+
+-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.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`size argument in` |nbsp| :placeholder:`A` |nbsp| :diagtext:`call is a comparison`|
++-----------------------------------------------------------------------------------------------------------------------+
+
+
+-Wmethod-signatures
+-------------------
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in implementation of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`conflicting return type in implementation of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wmicrosoft
+-----------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+Controls `-Winconsistent-dllimport`_, `-Wmicrosoft-anon-tag`_, `-Wmicrosoft-cast`_, `-Wmicrosoft-charize`_, `-Wmicrosoft-comment-paste`_, `-Wmicrosoft-const-init`_, `-Wmicrosoft-cpp-macro`_, `-Wmicrosoft-default-arg-redefinition`_, `-Wmicrosoft-end-of-file`_, `-Wmicrosoft-enum-forward-reference`_, `-Wmicrosoft-enum-value`_, `-Wmicrosoft-exception-spec`_, `-Wmicrosoft-explicit-constructor-call`_, `-Wmicrosoft-extra-qualification`_, `-Wmicrosoft-fixed-enum`_, `-Wmicrosoft-flexible-array`_, `-Wmicrosoft-goto`_, `-Wmicrosoft-include`_, `-Wmicrosoft-mutable-reference`_, `-Wmicrosoft-pure-definition`_, `-Wmicrosoft-redeclare-static`_, `-Wmicrosoft-sealed`_, `-Wmicrosoft-template`_, `-Wmicrosoft-union-member-reference`_, `-Wmicrosoft-unqualified-friend`_, `-Wmicrosoft-using-decl`_, `-Wmicrosoft-void-pseudo-dtor`_.
+
+
+-Wmicrosoft-anon-tag
+--------------------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------+--------------------+---------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`types declared in an anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`are a Microsoft extension`|
+| ||:diagtext:`struct`|| |
+| |+------------------+| |
+| ||:diagtext:`union` || |
+| |+------------------+| |
++-----------------------------------------------------------------------------+--------------------+---------------------------------------------+
+
++--------------------------------------------------------+---------------------+---------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`anonymous` |nbsp| |+-------------------+| |nbsp| :diagtext:`are a Microsoft extension`|
+| ||:diagtext:`structs`|| |
+| |+-------------------+| |
+| ||:diagtext:`unions` || |
+| |+-------------------+| |
++--------------------------------------------------------+---------------------+---------------------------------------------+
+
+
+-Wmicrosoft-cast
+----------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`static\_cast between pointer-to-function and pointer-to-object is a Microsoft extension`|
++------------------------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`implicit conversion between pointer-to-function and pointer-to-object is a Microsoft extension`|
++-------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wmicrosoft-charize
+-------------------
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`charizing operator #@ is a Microsoft extension`|
++-------------------------------------------------------------------------------------+
+
+
+-Wmicrosoft-comment-paste
+-------------------------
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`pasting two '/' tokens into a '//' comment is a Microsoft extension`|
++----------------------------------------------------------------------------------------------------------+
+
+
+-Wmicrosoft-const-init
+----------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------+--------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`default initialization of an object of const type` |nbsp| :placeholder:`A`|+---------------------------------------------------------------+| |nbsp| :diagtext:`is a Microsoft extension`|
+| || || |
+| |+---------------------------------------------------------------+| |
+| || |nbsp| :diagtext:`without a user-provided default constructor`|| |
+| |+---------------------------------------------------------------+| |
++----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------+--------------------------------------------+
+
+
+-Wmicrosoft-cpp-macro
+---------------------
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`C++ operator` |nbsp| :placeholder:`A` |nbsp| :diagtext:`(aka` |nbsp| :placeholder:`B`:diagtext:`) used as a macro name`|
++-------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wmicrosoft-default-arg-redefinition
+------------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`redefinition of default argument`|
++-----------------------------------------------------------------------+
+
+
+-Wmicrosoft-end-of-file
+-----------------------
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`treating Ctrl-Z as end-of-file is a Microsoft extension`|
++----------------------------------------------------------------------------------------------+
+
+
+-Wmicrosoft-enum-forward-reference
+----------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`forward references to 'enum' types are a Microsoft extension`|
++---------------------------------------------------------------------------------------------------+
+
+
+-Wmicrosoft-enum-value
+----------------------
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`enumerator value is not representable in the underlying type` |nbsp| :placeholder:`A`|
++---------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wmicrosoft-exception-spec
+--------------------------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`exception specification of '...' is a Microsoft extension`|
++------------------------------------------------------------------------------------------------+
+
++---------------------------+----------------------------------+----------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| |+--------------------------------+|:diagtext:`incomplete type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is not allowed in exception specification`|
+| || || |
+| |+--------------------------------+| |
+| ||:diagtext:`pointer to` |nbsp| || |
+| |+--------------------------------+| |
+| ||:diagtext:`reference to` |nbsp| || |
+| |+--------------------------------+| |
++---------------------------+----------------------------------+----------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`exception specification in declaration does not match previous declaration`|
++-----------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`exception specification in explicit instantiation does not match instantiated one`|
++------------------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is missing exception specification '`:placeholder:`B`:diagtext:`'`|
++--------------------------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`exception specification of overriding function is more lax than base version`|
++-------------------------------------------------------------------------------------------------------------------+
+
+
+-Wmicrosoft-exists
+------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------+---------------------------------+--------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`dependent` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`declarations are ignored`|
+| ||:diagtext:`\_\_if\_not\_exists`|| |
+| |+-------------------------------+| |
+| ||:diagtext:`\_\_if\_exists` || |
+| |+-------------------------------+| |
++--------------------------------------------------------+---------------------------------+--------------------------------------------+
+
+
+-Wmicrosoft-explicit-constructor-call
+-------------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`explicit constructor calls are a Microsoft extension`|
++-------------------------------------------------------------------------------------------+
+
+
+-Wmicrosoft-extra-qualification
+-------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`extra qualification on member` |nbsp| :placeholder:`A`|
++--------------------------------------------------------------------------------------------+
+
+
+-Wmicrosoft-fixed-enum
+----------------------
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a Microsoft extension`|
++---------------------------------------------------------------------------------------------------------------+
+
+
+-Wmicrosoft-flexible-array
+--------------------------
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in otherwise empty` |nbsp| |+---------------------+| |nbsp| :diagtext:`is a Microsoft extension`|
+| ||:diagtext:`struct` || |
+| |+---------------------+| |
+| ||:diagtext:`interface`|| |
+| |+---------------------+| |
+| ||:diagtext:`union` || |
+| |+---------------------+| |
+| ||:diagtext:`class` || |
+| |+---------------------+| |
+| ||:diagtext:`enum` || |
+| |+---------------------+| |
++----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in a union is a Microsoft extension`|
++-------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wmicrosoft-goto
+----------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`jump from this goto statement to its label is a Microsoft extension`|
++----------------------------------------------------------------------------------------------------------+
+
+
+-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.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`#include resolved using non-portable Microsoft search rules as:` |nbsp| :placeholder:`A`|
++------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wmicrosoft-mutable-reference
+-----------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'mutable' on a reference type is a Microsoft extension`|
++---------------------------------------------------------------------------------------------+
+
+
+-Wmicrosoft-pure-definition
+---------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`function definition with pure-specifier is a Microsoft extension`|
++-------------------------------------------------------------------------------------------------------+
+
+
+-Wmicrosoft-redeclare-static
+----------------------------
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`redeclaring non-static` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as static is a Microsoft extension`|
++-------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wmicrosoft-sealed
+------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'sealed' keyword is a Microsoft extension`|
++--------------------------------------------------------------------------------+
+
+
+-Wmicrosoft-template
+--------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`duplicate explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored as a Microsoft extension`|
++------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|: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:`using the undeclared type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as a default template argument is a Microsoft extension`|
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------+
+|: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:`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`|
++------------------------------------------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`use of undeclared identifier` |nbsp| :placeholder:`A`:diagtext:`; unqualified lookup into dependent bases of class template` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is a Microsoft extension`|
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wmicrosoft-union-member-reference
+----------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`union member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has reference type` |nbsp| :placeholder:`B`:diagtext:`, which is a Microsoft extension`|
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wmicrosoft-unqualified-friend
+------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unqualified friend declaration referring to type outside of the nearest enclosing namespace is a Microsoft extension; add a nested name specifier`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wmicrosoft-using-decl
+----------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`using declaration referring to inaccessible member '`:placeholder:`A`:diagtext:`' (which refers to accessible member '`:placeholder:`B`:diagtext:`') is a Microsoft compatibility extension`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wmicrosoft-void-pseudo-dtor
+----------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`pseudo-destructors on type void are a Microsoft extension`|
++------------------------------------------------------------------------------------------------+
+
+
+-Wmismatched-new-delete
+-----------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------+------------------+---------------------------------------------------------------+------------------+-----------------------------------+------------------+--------------+
+|:warning:`warning:` |nbsp| :diagtext:`'delete`|+----------------+|:diagtext:`' applied to a pointer that was allocated with 'new`|+----------------+|:diagtext:`'; did you mean 'delete`|+----------------+|:diagtext:`'?`|
+| || || ||:diagtext:`\[\]`|| ||:diagtext:`\[\]`|| |
+| |+----------------+| |+----------------+| |+----------------+| |
+| ||:diagtext:`\[\]`|| || || || || |
+| |+----------------+| |+----------------+| |+----------------+| |
++----------------------------------------------+------------------+---------------------------------------------------------------+------------------+-----------------------------------+------------------+--------------+
+
+
+-Wmismatched-parameter-types
+----------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in implementation of` |nbsp| :placeholder:`A`|
++---------------------------------------------------------------------------------------------------------------+
+
+
+-Wmismatched-return-types
+-------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`conflicting return type in implementation of` |nbsp| :placeholder:`A`|
++-----------------------------------------------------------------------------------------------------------+
+
+
+-Wmismatched-tags
+-----------------
+**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| |+---------------------+|+----------------------------+| |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` || |
+| |+---------------------+| | |+---------------------+| |
++---------------------------+-----------------------+------------------------------+--------------------------------------------------------------------------------+-----------------------+------------------------------+
+
+
+-Wmissing-braces
+----------------
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`suggest braces around initialization of subobject`|
++----------------------------------------------------------------------------------------+
+
+
+-Wmissing-declarations
+----------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`declaration does not declare anything`|
++----------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is not permitted on a declaration of a type`|
++-----------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`typedef requires a name`|
++--------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' ignored on this declaration`|
++-------------------------------------------------------------------------------------------------+
+
+
+-Wmissing-exception-spec
+------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is missing exception specification '`:placeholder:`B`:diagtext:`'`|
++--------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wmissing-field-initializers
+----------------------------
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`missing field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`initializer`|
++-----------------------------------------------------------------------------------------------------------+
+
+
+-Wmissing-format-attribute
+--------------------------
+This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
+
+-Wmissing-include-dirs
+----------------------
+This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
+
+-Wmissing-method-return-type
+----------------------------
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`method has no return type specified; defaults to 'id'`|
++--------------------------------------------------------------------------------------------+
+
+
+-Wmissing-noescape
+------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`parameter of overriding method should be annotated with \_\_attribute\_\_((noescape))`|
++----------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wmissing-noreturn
+------------------
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`block could be declared with attribute 'noreturn'`|
++----------------------------------------------------------------------------------------+
+
++---------------------------+----------------------+---------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`could be declared with attribute 'noreturn'`|
+| ||:diagtext:`function`|| |
+| |+--------------------+| |
+| ||:diagtext:`method` || |
+| |+--------------------+| |
++---------------------------+----------------------+---------------------------------------------------------------------------------------+
+
+
+-Wmissing-prototype-for-cc
+--------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`function with no prototype cannot use the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`calling convention`|
++----------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wmissing-prototypes
+--------------------
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`no previous prototype for function` |nbsp| :placeholder:`A`|
++-------------------------------------------------------------------------------------------------+
+
+
+-Wmissing-selector-name
+-----------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`used as the name of the previous parameter rather than as part of the selector`|
++---------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wmissing-sysroot
+-----------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`no such sysroot directory: '`:placeholder:`A`:diagtext:`'`|
++------------------------------------------------------------------------------------------------+
+
+
+-Wmissing-variable-declarations
+-------------------------------
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`no previous extern declaration for non-static variable` |nbsp| :placeholder:`A`|
++---------------------------------------------------------------------------------------------------------------------+
+
+
+-Rmodule-build
+--------------
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------+
+|:remark:`remark:` |nbsp| :diagtext:`building module '`:placeholder:`A`:diagtext:`' as '`:placeholder:`B`:diagtext:`'`|
++---------------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------+
+|:remark:`remark:` |nbsp| :diagtext:`finished building module '`:placeholder:`A`:diagtext:`'`|
++--------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------------+
+|:remark:`remark:` |nbsp| :diagtext:`could not acquire lock file for module '`:placeholder:`A`:diagtext:`':` |nbsp| :placeholder:`B`|
++-----------------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------+
+|:remark:`remark:` |nbsp| :diagtext:`timed out waiting to acquire lock file for module '`:placeholder:`A`:diagtext:`'`|
++---------------------------------------------------------------------------------------------------------------------+
+
+
+-Wmodule-conflict
+-----------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`module '`:placeholder:`A`:diagtext:`' conflicts with already-imported module '`:placeholder:`B`:diagtext:`':` |nbsp| :placeholder:`C`|
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`module file '`:placeholder:`A`:diagtext:`' was validated as a system module and is now being imported as a non-system module; any difference in diagnostic options will be ignored`|
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wmodule-file-config-mismatch
+-----------------------------
+This diagnostic is an error by default, but the flag ``-Wno-module-file-config-mismatch`` can be used to disable the error.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:error:`error:` |nbsp| :diagtext:`module file` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be loaded due to a configuration mismatch with the current compilation`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wmodule-file-extension
+-----------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`duplicate module file extension block name '`:placeholder:`A`:diagtext:`'`|
++----------------------------------------------------------------------------------------------------------------+
+
+
+-Wmodule-import-in-extern-c
+---------------------------
+This diagnostic is an error by default, but the flag ``-Wno-module-import-in-extern-c`` can be used to disable the error.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------------------------------------------+
+|:error:`error:` |nbsp| :diagtext:`import of C++ module '`:placeholder:`A`:diagtext:`' appears within extern "C" language linkage specification`|
++-----------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wmodules-ambiguous-internal-linkage
+------------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`ambiguous use of internal linkage declaration` |nbsp| :placeholder:`A` |nbsp| :diagtext:`defined in multiple modules`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wmodules-import-nested-redundant
+---------------------------------
+This diagnostic is an error by default, but the flag ``-Wno-modules-import-nested-redundant`` can be used to disable the error.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------------+
+|:error:`error:` |nbsp| :diagtext:`redundant #include of module '`:placeholder:`A`:diagtext:`' appears within` |nbsp| :placeholder:`B`|
++-------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wmost
+------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+Controls `-Wcast-of-sel-type`_, `-Wchar-subscripts`_, `-Wcomment`_, `-Wdelete-non-virtual-dtor`_, `-Wextern-c-compat`_, `-Wfor-loop-analysis`_, `-Wformat`_, `-Wimplicit`_, `-Winfinite-recursion`_, `-Wmismatched-tags`_, `-Wmissing-braces`_, `-Wmove`_, `-Wmultichar`_, `-Wobjc-designated-initializers`_, `-Wobjc-flexible-array`_, `-Wobjc-missing-super-calls`_, `-Woverloaded-virtual`_, `-Wprivate-extern`_, `-Wreorder`_, `-Wreturn-type`_, `-Wself-assign`_, `-Wself-move`_, `-Wsizeof-array-argument`_, `-Wsizeof-array-decay`_, `-Wstring-plus-int`_, `-Wtrigraphs`_, `-Wuninitialized`_, `-Wunknown-pragmas`_, `-Wunused`_, `-Wuser-defined-warnings`_, `-Wvolatile-register-var`_.
+
+
+-Wmove
+------
+Controls `-Wpessimizing-move`_, `-Wredundant-move`_, `-Wreturn-std-move`_, `-Wself-move`_.
+
+
+-Wmsvc-include
+--------------
+Synonym for `-Wmicrosoft-include`_.
+
+
+-Wmsvc-not-found
+----------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unable to find a Visual Studio installation; try running Clang from a developer command prompt`|
++-------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wmultichar
+-----------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`multi-character character constant`|
++-------------------------------------------------------------------------+
+
+
+-Wmultiple-move-vbase
+---------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`defaulted move assignment operator of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will move assign virtual base class` |nbsp| :placeholder:`B` |nbsp| :diagtext:`multiple times`|
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wnarrowing
+-----------
+Synonym for `-Wc++11-narrowing`_.
+
+
+-Wnested-anon-types
+-------------------
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------+--------------------+------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`anonymous types declared in an anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`are an extension`|
+| ||:diagtext:`struct`|| |
+| |+------------------+| |
+| ||:diagtext:`union` || |
+| |+------------------+| |
++---------------------------------------------------------------------------------------+--------------------+------------------------------------+
+
+
+-Wnested-externs
+----------------
+This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
+
+-Wnew-returns-null
+------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return a null pointer unless it is declared 'throw()'`|+---------------------------------+|
+| || ||
+| |+---------------------------------+|
+| || |nbsp| :diagtext:`or 'noexcept'`||
+| |+---------------------------------+|
++-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+
+
+
+-Wnewline-eof
+-------------
+**Diagnostic text:**
+
++----------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`|
++----------------------------------------------------------------+
+
++----------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`|
++----------------------------------------------------------------+
+
+
+-Wnoexcept-type
+---------------
+Synonym for `-Wc++17-compat-mangling`_.
+
+
+-Wnon-gcc
+---------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+Controls `-Wconversion`_, `-Wliteral-range`_, `-Wsign-compare`_.
+
+
+-Wnon-literal-null-conversion
+-----------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`expression which evaluates to zero treated as a null pointer constant of type` |nbsp| :placeholder:`A`|
++--------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wnon-modular-include-in-framework-module
+-----------------------------------------
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`include of non-modular header inside framework module '`:placeholder:`A`:diagtext:`': '`:placeholder:`B`:diagtext:`'`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wnon-modular-include-in-module
+-------------------------------
+Also controls `-Wnon-modular-include-in-framework-module`_.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`include of non-modular header inside module '`:placeholder:`A`:diagtext:`': '`:placeholder:`B`:diagtext:`'`|
++-------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wnon-pod-varargs
+-----------------
+This diagnostic is an error by default, but the flag ``-Wno-non-pod-varargs`` can be used to disable the error.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------------------------+-------------------------+----------------------------------------+
+|:error:`error:` |nbsp| :diagtext:`cannot pass object of` |nbsp| |+-----------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`through variadic` |nbsp| |+-----------------------+|:diagtext:`; call will abort at runtime`|
+| ||:diagtext:`non-POD` || ||:diagtext:`function` || |
+| |+-----------------------+| |+-----------------------+| |
+| ||:diagtext:`non-trivial`|| ||:diagtext:`block` || |
+| |+-----------------------+| |+-----------------------+| |
+| | | ||:diagtext:`method` || |
+| | | |+-----------------------+| |
+| | | ||:diagtext:`constructor`|| |
+| | | |+-----------------------+| |
++----------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------------------------+-------------------------+----------------------------------------+
+
++------------------------------------------------------+-------------------------+-------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------+
+|:error:`error:` |nbsp| :diagtext:`cannot pass` |nbsp| |+-----------------------+| |nbsp| :diagtext:`object of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to variadic` |nbsp| |+-----------------------+|:diagtext:`; expected type from format string was` |nbsp| :placeholder:`D`|
+| ||:diagtext:`non-POD` || ||:diagtext:`function` || |
+| |+-----------------------+| |+-----------------------+| |
+| ||:diagtext:`non-trivial`|| ||:diagtext:`block` || |
+| |+-----------------------+| |+-----------------------+| |
+| | | ||:diagtext:`method` || |
+| | | |+-----------------------+| |
+| | | ||:diagtext:`constructor`|| |
+| | | |+-----------------------+| |
++------------------------------------------------------+-------------------------+-------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------+
+|:error:`error:` |nbsp| :diagtext:`second argument to 'va\_arg' is of non-POD type` |nbsp| :placeholder:`A`|
++----------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------------+
+|:error:`error:` |nbsp| :diagtext:`second argument to 'va\_arg' is of ARC ownership-qualified type` |nbsp| :placeholder:`A`|
++--------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wnon-virtual-dtor
+------------------
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has virtual functions but non-virtual destructor`|
++---------------------------------------------------------------------------------------------------------------+
+
+
+-Wnonnull
+---------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`null passed to a callee that requires a non-null argument`|
++------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------+----------------------+---------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`null returned from` |nbsp| |+--------------------+| |nbsp| :diagtext:`that requires a non-null return value`|
+| ||:diagtext:`function`|| |
+| |+--------------------+| |
+| ||:diagtext:`method` || |
+| |+--------------------+| |
++-----------------------------------------------------------------+----------------------+---------------------------------------------------------+
+
+
+-Wnonportable-cfstrings
+-----------------------
+This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
+
+-Wnonportable-include-path
+--------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`non-portable path to file '`:placeholder:`A`:diagtext:`'; specified path differs in case from file name on disk`|
++------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wnonportable-system-include-path
+---------------------------------
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`non-portable path to file '`:placeholder:`A`:diagtext:`'; specified path differs in case from file name on disk`|
++------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wnonportable-vector-initialization
+-----------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`vector initializers are not compatible with NEON intrinsics in big endian mode`|
++---------------------------------------------------------------------------------------------------------------------+
+
+
+-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.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`overriding method has mismatched ns\_consumed attribute on its parameter`|
++---------------------------------------------------------------------------------------------------------------+
+
+
+-Wnsreturns-mismatch
+--------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------+---------------------------+------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`overriding method has mismatched ns\_returns\_`|+-------------------------+| |nbsp| :diagtext:`attributes`|
+| ||:diagtext:`not\_retained`|| |
+| |+-------------------------+| |
+| ||:diagtext:`retained` || |
+| |+-------------------------+| |
++-------------------------------------------------------------------------------------+---------------------------+------------------------------+
+
+
+-Wnull-arithmetic
+-----------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`use of NULL in arithmetic operation`|
++--------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------+--------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`comparison between NULL and non-pointer` |nbsp| |+------------------------------------------------------------+|
+| ||+----------------------------------------------------------+||
+| |||:diagtext:`(`:placeholder:`B` |nbsp| :diagtext:`and NULL)`|||
+| ||+----------------------------------------------------------+||
+| |+------------------------------------------------------------+|
+| ||+----------------------------------------------------------+||
+| |||:diagtext:`(NULL and` |nbsp| :placeholder:`B`:diagtext:`)`|||
+| ||+----------------------------------------------------------+||
+| |+------------------------------------------------------------+|
++--------------------------------------------------------------------------------------+--------------------------------------------------------------+
+
+
+-Wnull-character
+----------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------+--------------------+---------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`null character(s) preserved in` |nbsp| |+------------------+| |nbsp| :diagtext:`literal`|
+| ||:diagtext:`char` || |
+| |+------------------+| |
+| ||:diagtext:`string`|| |
+| |+------------------+| |
++-----------------------------------------------------------------------------+--------------------+---------------------------+
+
++-------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`null character ignored`|
++-------------------------------------------------------------+
+
+
+-Wnull-conversion
+-----------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------+---------------------+-------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`implicit conversion of` |nbsp| |+-------------------+| |nbsp| :diagtext:`constant to` |nbsp| :placeholder:`B`|
+| ||:diagtext:`NULL` || |
+| |+-------------------+| |
+| ||:diagtext:`nullptr`|| |
+| |+-------------------+| |
++---------------------------------------------------------------------+---------------------+-------------------------------------------------------+
+
+
+-Wnull-dereference
+------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`binding dereferenced null pointer to reference has undefined behavior`|
++------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`indirection of non-volatile null pointer will be deleted, not trap`|
++---------------------------------------------------------------------------------------------------------+
+
+
+-Wnull-pointer-arithmetic
+-------------------------
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension`|
++--------------------------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------+----------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`performing pointer arithmetic on a null pointer has undefined behavior`|+--------------------------------------------+|
+| || ||
+| |+--------------------------------------------+|
+| || |nbsp| :diagtext:`if the offset is nonzero`||
+| |+--------------------------------------------+|
++-------------------------------------------------------------------------------------------------------------+----------------------------------------------+
+
+
+-Wnullability
+-------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`conflicting nullability specifier on parameter types,` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`|
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`conflicting nullability specifier on return types,` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`nullability specifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`synthesized setter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for null\_resettable property` |nbsp| :placeholder:`B` |nbsp| :diagtext:`does not handle nil`|
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`duplicate nullability specifier` |nbsp| :placeholder:`A`|
++----------------------------------------------------------------------------------------------+
+
+
+-Wnullability-completeness
+--------------------------
+This diagnostic is enabled by default.
+
+Also controls `-Wnullability-completeness-on-arrays`_.
+
+**Diagnostic text:**
+
++---------------------------+----------------------------+-----------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| |+--------------------------+| |nbsp| :diagtext:`is missing a nullability type specifier (\_Nonnull, \_Nullable, or \_Null\_unspecified)`|
+| ||:diagtext:`pointer` || |
+| |+--------------------------+| |
+| ||:diagtext:`block pointer` || |
+| |+--------------------------+| |
+| ||:diagtext:`member pointer`|| |
+| |+--------------------------+| |
++---------------------------+----------------------------+-----------------------------------------------------------------------------------------------------------+
+
+
+-Wnullability-completeness-on-arrays
+------------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`array parameter is missing a nullability type specifier (\_Nonnull, \_Nullable, or \_Null\_unspecified)`|
++----------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wnullability-declspec
+----------------------
+This diagnostic is an error by default, but the flag ``-Wno-nullability-declspec`` can be used to disable the error.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------+-------------+
+|:error:`error:` |nbsp| :diagtext:`nullability specifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be applied to non-pointer type` |nbsp| :placeholder:`B`:diagtext:`; did you mean to apply the specifier to the` |nbsp| |+-----------------------------------+|:diagtext:`?`|
+| ||:diagtext:`pointer` || |
+| |+-----------------------------------+| |
+| ||:diagtext:`block pointer` || |
+| |+-----------------------------------+| |
+| ||:diagtext:`member pointer` || |
+| |+-----------------------------------+| |
+| ||:diagtext:`function pointer` || |
+| |+-----------------------------------+| |
+| ||:diagtext:`member function pointer`|| |
+| |+-----------------------------------+| |
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------+-------------+
+
+
+-Wnullability-extension
+-----------------------
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`type nullability specifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a Clang extension`|
++---------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wnullability-inferred-on-nested-type
+-------------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------+-----------------------+---------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`inferring '\_Nonnull' for pointer type within` |nbsp| |+---------------------+| |nbsp| :diagtext:`is deprecated`|
+| ||:diagtext:`array` || |
+| |+---------------------+| |
+| ||:diagtext:`reference`|| |
+| |+---------------------+| |
++--------------------------------------------------------------------------------------------+-----------------------+---------------------------------+
+
+
+-Wnullable-to-nonnull-conversion
+--------------------------------
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from nullable pointer` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to non-nullable pointer type` |nbsp| :placeholder:`B`|
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wobjc-autosynthesis-property-ivar-name-match
+---------------------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`autosynthesized property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will use` |nbsp| |+-----------------------+| |nbsp| :diagtext:`instance variable` |nbsp| :placeholder:`C`:diagtext:`, not existing instance variable` |nbsp| :placeholder:`D`|
+| || || |
+| |+-----------------------+| |
+| ||:diagtext:`synthesized`|| |
+| |+-----------------------+| |
++---------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wobjc-circular-container
+-------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|: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
+----------------
+Synonym for `-Wobjc-redundant-api-use`_.
+
+
+-Wobjc-designated-initializers
+------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`designated initializer missing a 'super' call to a designated initializer of the super class`|
++-----------------------------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`designated initializer invoked a non-designated initializer`|
++--------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`designated initializer should only invoke a designated initializer on 'super'`|
++--------------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`method override for the designated initializer of the superclass` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found`|
++------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`convenience initializer missing a 'self' call to another initializer`|
++-----------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`convenience initializer should not invoke an initializer on 'super'`|
++----------------------------------------------------------------------------------------------------------+
+
+
+-Wobjc-flexible-array
+---------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`can overwrite instance variable` |nbsp| :placeholder:`B` |nbsp| :diagtext:`with variable sized type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`in superclass` |nbsp| :placeholder:`D`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with variable sized type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is not visible to subclasses and can conflict with their instance variables`|
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wobjc-forward-class-redefinition
+---------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`redefinition of forward class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of a typedef name of an object type is ignored`|
++--------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wobjc-interface-ivars
+----------------------
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`declaration of instance variables in the interface is deprecated`|
++-------------------------------------------------------------------------------------------------------+
+
+
+-Wobjc-literal-compare
+----------------------
+This diagnostic is enabled by default.
+
+Also controls `-Wobjc-string-compare`_.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------+----------------------------------+------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`direct comparison of` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`has undefined behavior`|
+| ||:diagtext:`an array literal` || |
+| |+--------------------------------+| |
+| ||:diagtext:`a dictionary literal`|| |
+| |+--------------------------------+| |
+| ||:diagtext:`a numeric literal` || |
+| |+--------------------------------+| |
+| ||:diagtext:`a boxed expression` || |
+| |+--------------------------------+| |
+| || || |
+| |+--------------------------------+| |
++-------------------------------------------------------------------+----------------------------------+------------------------------------------+
+
+
+-Wobjc-literal-conversion
+-------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`implicit boolean conversion of Objective-C object literal always evaluates to true`|
++-------------------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`object of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not compatible with` |nbsp| |+---------------------------------+| |nbsp| :placeholder:`C`|
+| ||:diagtext:`array element type` || |
+| |+---------------------------------+| |
+| ||:diagtext:`dictionary key type` || |
+| |+---------------------------------+| |
+| ||:diagtext:`dictionary value type`|| |
+| |+---------------------------------+| |
++-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------+
+
+
+-Wobjc-macro-redefinition
+-------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`ignoring redefinition of Objective-C qualifier macro`|
++-------------------------------------------------------------------------------------------+
+
+
+-Wobjc-messaging-id
+-------------------
+**Diagnostic text:**
+
++---------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`messaging unqualified id`|
++---------------------------------------------------------------+
+
+
+-Wobjc-method-access
+--------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`class method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id')`|
++---------------------------------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`class method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id'); did you mean` |nbsp| :placeholder:`C`:diagtext:`?`|
++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id')`|
++------------------------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id'); did you mean` |nbsp| :placeholder:`C`:diagtext:`?`|
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found instead of class method` |nbsp| :placeholder:`B`|
++-------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is being used on 'Class' which is not in the root class`|
++---------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wobjc-missing-property-synthesis
+---------------------------------
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`auto property synthesis is synthesizing property not explicitly synthesized`|
++------------------------------------------------------------------------------------------------------------------+
+
+
+-Wobjc-missing-super-calls
+--------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`method possibly missing a \[super` |nbsp| :placeholder:`A`:diagtext:`\] call`|
++-------------------------------------------------------------------------------------------------------------------+
+
+
+-Wobjc-multiple-method-names
+----------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`multiple methods named` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found`|
++--------------------------------------------------------------------------------------------------------------+
+
+
+-Wobjc-noncopy-retain-block-property
+------------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`retain'ed block property does not copy the block - use copy attribute instead`|
++--------------------------------------------------------------------------------------------------------------------+
+
+
+-Wobjc-nonunified-exceptions
+----------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`cannot catch an exception thrown with @throw in C++ in the non-unified exception model`|
++-----------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wobjc-property-implementation
+------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`class property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to be defined - use @dynamic or provide a method implementation in this class implementation`|
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`class property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to be defined - use @dynamic or provide a method implementation in this category`|
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to be defined - use @synthesize, @dynamic or provide a method implementation in this class implementation`|
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to be defined - use @dynamic or provide a method implementation in this category`|
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wobjc-property-implicit-mismatch
+---------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`primary property declaration is implicitly strong while redeclaration in class extension is weak`|
++---------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wobjc-property-matches-cocoa-ownership-rule
+--------------------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`property follows Cocoa naming convention for returning 'owned' objects`|
++-------------------------------------------------------------------------------------------------------------+
+
+
+-Wobjc-property-no-attribute
+----------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`default property attribute 'assign' not appropriate for object`|
++-----------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`no 'assign', 'retain', or 'copy' attribute is specified - 'assign' is assumed`|
++--------------------------------------------------------------------------------------------------------------------+
+
+
+-Wobjc-property-synthesis
+-------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`auto property synthesis will not synthesize property` |nbsp| :placeholder:`A`:diagtext:`; it will be implemented by its superclass, use @dynamic to acknowledge intention`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`auto property synthesis will not synthesize property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`because it is 'readwrite' but it will be synthesized 'readonly' via another property`|
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`auto property synthesis will not synthesize property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`because it cannot share an ivar with another synthesized property`|
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wobjc-protocol-method-implementation
+-------------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`category is implementing a method which will also be implemented by its primary class`|
++----------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wobjc-protocol-property-synthesis
+----------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`auto property synthesis will not synthesize property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared in protocol` |nbsp| :placeholder:`B`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wobjc-protocol-qualifiers
+--------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`parameterized class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`already conforms to the protocols listed; did you forget a '\*'?`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wobjc-readonly-with-setter-property
+------------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`setter cannot be specified for a readonly property`|
++-----------------------------------------------------------------------------------------+
+
+
+-Wobjc-redundant-api-use
+------------------------
+Synonym for `-Wobjc-redundant-literal-use`_.
+
+
+-Wobjc-redundant-literal-use
+----------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`using` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with a literal is redundant`|
++-------------------------------------------------------------------------------------------------------------------+
+
+
+-Wobjc-root-class
+-----------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`defined without specifying a base class`|
++-------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wobjc-string-compare
+---------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`direct comparison of a string literal has undefined behavior`|
++---------------------------------------------------------------------------------------------------+
+
+
+-Wobjc-string-concatenation
+---------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`concatenated NSString literal for an NSArray expression - possibly missing a comma`|
++-------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wobjc-unsafe-perform-selector
+------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------+--------------------+------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with selectors that return a` |nbsp| |+------------------+| |nbsp| :diagtext:`type`|
+| ||:diagtext:`struct`|| |
+| |+------------------+| |
+| ||:diagtext:`union` || |
+| |+------------------+| |
+| ||:diagtext:`vector`|| |
+| |+------------------+| |
++-------------------------------------------------------------------------------------------------------------------+--------------------+------------------------+
+
+
+-Wodr
+-----
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has incompatible definitions in different translation units`|
++--------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wold-style-cast
+----------------
+**Diagnostic text:**
+
++------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`use of old-style cast`|
++------------------------------------------------------------+
+
+
+-Wold-style-definition
+----------------------
+This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
+
+-Wopencl-unsupported-rgba
+-------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`vector component name '`:placeholder:`A`:diagtext:`' is an OpenCL version 2.2 feature`|
++----------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wopenmp-clauses
+----------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`aligned clause will be ignored because the requested alignment is not a power of 2`|
++-------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`zero linear step (`:placeholder:`A` |nbsp| |+-------------------------------------------------+|:diagtext:`should probably be const)`|
+| || || |
+| |+-------------------------------------------------+| |
+| ||:diagtext:`and other variables in clause` |nbsp| || |
+| |+-------------------------------------------------+| |
++---------------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------+
+
+
+-Wopenmp-loop-form
+------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')`|
++-----------------------------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`OpenMP loop iteration variable cannot have more than 64 bits size and will be narrowed`|
++-----------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wopenmp-target
+---------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`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`|
++-----------------------------------------------------------------------------------------------+
+
+
+-Woption-ignored
+----------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------------------------------------+
+|: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 '-mlong-calls' option as it is not currently supported with` |nbsp| |+-----------------------------------------+|:diagtext:`-mabicalls`|
+| || || |
+| |+-----------------------------------------+| |
+| ||:diagtext:`the implicit usage of` |nbsp| || |
+| |+-----------------------------------------+| |
++-------------------------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+
+
++-----------------------------------------------------------------------------------------------------------------------+-------------------------------+----------------------------------------------+
+|: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
+-------------------------
+This diagnostic is an error by default, but the flag ``-Wno-out-of-line-declaration`` can be used to disable the error.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------+
+|:error:`error:` |nbsp| :diagtext:`out-of-line declaration of a member must be a definition`|
++-------------------------------------------------------------------------------------------+
+
+
+-Wout-of-scope-function
+-----------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`use of out-of-scope declaration of` |nbsp| :placeholder:`A`|+-------------------------------------------------------------------------------------+|
+| || ||
+| |+-------------------------------------------------------------------------------------+|
+| || |nbsp| :diagtext:`whose type is not compatible with that of an implicit declaration`||
+| |+-------------------------------------------------------------------------------------+|
++-------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------+
+
+
+-Wover-aligned
+--------------
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires` |nbsp| :placeholder:`B` |nbsp| :diagtext:`bytes of alignment and the default allocator only guarantees` |nbsp| :placeholder:`C` |nbsp| :diagtext:`bytes`|
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Woverflow
+----------
+This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
+
+-Woverlength-strings
+--------------------
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`string literal of length` |nbsp| :placeholder:`A` |nbsp| :diagtext:`exceeds maximum length` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that` |nbsp| |+-------------------+| |nbsp| :diagtext:`compilers are required to support`|
+| ||:diagtext:`C90` || |
+| |+-------------------+| |
+| ||:diagtext:`ISO C99`|| |
+| |+-------------------+| |
+| ||:diagtext:`C++` || |
+| |+-------------------+| |
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------+
+
+
+-Woverloaded-shift-op-parentheses
+---------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------+----------------+------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`overloaded operator` |nbsp| |+--------------+| |nbsp| :diagtext:`has higher precedence than comparison operator`|
+| ||:diagtext:`>>`|| |
+| |+--------------+| |
+| ||:diagtext:`<<`|| |
+| |+--------------+| |
++------------------------------------------------------------------+----------------+------------------------------------------------------------------+
+
+
+-Woverloaded-virtual
+--------------------
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------+-----------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`hides overloaded virtual` |nbsp| |+---------------------+|
+| ||:diagtext:`function` ||
+| |+---------------------+|
+| ||:diagtext:`functions`||
+| |+---------------------+|
++-----------------------------------------------------------------------------------------------+-----------------------+
+
+
+-Woverride-module
+-----------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`overriding the module target triple with` |nbsp| :placeholder:`A`|
++-------------------------------------------------------------------------------------------------------+
+
+
+-Woverriding-method-mismatch
+----------------------------
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on parameter type in declaration of` |nbsp| :placeholder:`A`|
++-------------------------------------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in declaration of` |nbsp| :placeholder:`A`|
++------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on return type in declaration of` |nbsp| :placeholder:`A`|
++----------------------------------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`conflicting return type in declaration of` |nbsp| :placeholder:`A`|
++--------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`conflicting variadic declaration of method and its implementation`|
++--------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in declaration of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`conflicting return type in declaration of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Woverriding-t-option
+---------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`overriding '`:placeholder:`A`:diagtext:`' option with '`:placeholder:`B`:diagtext:`'`|
++---------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wpacked
+--------
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`packed attribute is unnecessary for` |nbsp| :placeholder:`A`|
++--------------------------------------------------------------------------------------------------+
+
+
+-Wpadded
+--------
+**Diagnostic text:**
+
++------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`padding` |nbsp| |+---------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with` |nbsp| :placeholder:`C` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to align anonymous bit-field`|
+| ||:diagtext:`struct` || ||:diagtext:`byte`||| || |
+| |+---------------------+| |+----------------+|+-------------+| |
+| ||:diagtext:`interface`|| ||:diagtext:`bit` |||:diagtext:`s`|| |
+| |+---------------------+| |+----------------+|+-------------+| |
+| ||:diagtext:`class` || | | | |
+| |+---------------------+| | | | |
++------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+------------------------------------------------+
+
++------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+----------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`padding` |nbsp| |+---------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with` |nbsp| :placeholder:`C` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to align` |nbsp| :placeholder:`E`|
+| ||:diagtext:`struct` || ||:diagtext:`byte`||| || |
+| |+---------------------+| |+----------------+|+-------------+| |
+| ||:diagtext:`interface`|| ||:diagtext:`bit` |||:diagtext:`s`|| |
+| |+---------------------+| |+----------------+|+-------------+| |
+| ||:diagtext:`class` || | | | |
+| |+---------------------+| | | | |
++------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+----------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------------------------+------------------+---------------+-----------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`padding size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with` |nbsp| :placeholder:`B` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to alignment boundary`|
+| ||:diagtext:`byte`||| || |
+| |+----------------+|+-------------+| |
+| ||:diagtext:`bit` |||:diagtext:`s`|| |
+| |+----------------+|+-------------+| |
++--------------------------------------------------------------------------------------------------------------------------------------+------------------+---------------+-----------------------------------------+
+
+
+-Wparentheses
+-------------
+This diagnostic is enabled by default.
+
+Also controls `-Wbitwise-op-parentheses`_, `-Wdangling-else`_, `-Wlogical-not-parentheses`_, `-Wlogical-op-parentheses`_, `-Woverloaded-shift-op-parentheses`_, `-Wparentheses-equality`_, `-Wshift-op-parentheses`_.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`using the result of an assignment as a condition without parentheses`|
++-----------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has lower precedence than` |nbsp| :placeholder:`B`:diagtext:`;` |nbsp| :placeholder:`B` |nbsp| :diagtext:`will be evaluated first`|
++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`operator '?:' has lower precedence than '`:placeholder:`A`:diagtext:`'; '`:placeholder:`A`:diagtext:`' will be evaluated first`|
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wparentheses-equality
+----------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`equality comparison with extraneous parentheses`|
++--------------------------------------------------------------------------------------+
+
+
+-Wpartial-availability
+----------------------
+Synonym for `-Wunguarded-availability`_.
+
+
+-Rpass
+------
+**Diagnostic text:**
+
+The text of this diagnostic is not controlled by Clang.
+
+
+-Rpass-analysis
+---------------
+**Diagnostic text:**
+
+The text of this diagnostic is not controlled by Clang.
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:remark:`remark:` |nbsp| :placeholder:`A`:diagtext:`; allow reordering by specifying '#pragma clang loop vectorize(enable)' before the loop. If the arrays will always be independent specify '#pragma clang loop vectorize(assume\_safety)' before the loop or provide the '\_\_restrict\_\_' qualifier with the independent array arguments. Erroneous results will occur if these options are incorrectly applied!`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:remark:`remark:` |nbsp| :placeholder:`A`:diagtext:`; allow reordering by specifying '#pragma clang loop vectorize(enable)' before the loop or by providing the compiler option '-ffast-math'.`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wpass-failed
+-------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
+The text of this diagnostic is not controlled by Clang.
+
+
+-Rpass-missed
+-------------
+**Diagnostic text:**
+
+The text of this diagnostic is not controlled by Clang.
+
+
+-Wpch-date-time
+---------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------+--------------------------------+-----------------------------------------------------+
+|:warning:`warning:` |nbsp| |+------------------------------+| |nbsp| :diagtext:`uses \_\_DATE\_\_ or \_\_TIME\_\_`|
+| ||:diagtext:`precompiled header`|| |
+| |+------------------------------+| |
+| ||:diagtext:`module` || |
+| |+------------------------------+| |
++---------------------------+--------------------------------+-----------------------------------------------------+
+
+
+-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`_, `-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:`'enable\_if' is a clang extension`|
++------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'diagnose\_if' is a clang extension`|
++--------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`designated initializers are a C99 feature`|
++--------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow 'main' to be used by a program`|
++--------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+
+|:warning:`warning:` |nbsp| :diagtext:`C++98 requires an accessible copy constructor for class` |nbsp| :placeholder:`C` |nbsp| :diagtext:`when binding a reference to a temporary; was` |nbsp| |+---------------------+|
+| ||:diagtext:`private` ||
+| |+---------------------+|
+| ||:diagtext:`protected`||
+| |+---------------------+|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+
+
++--------------------------------------------------------+--------------------+------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`cannot be '`:placeholder:`B`:diagtext:`'`|
+| ||:diagtext:`struct`|| |
+| |+------------------+| |
+| ||:diagtext:`union` || |
+| |+------------------+| |
++--------------------------------------------------------+--------------------+------------------------------------------------------------+
+
++--------------------------------------------------------------------+------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
+|: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'`|
++--------------------------------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`invoking a pointer to a 'const &' member function on an rvalue is a C++2a extension`|
++--------------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`qualifier in explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires a template-id (a typedef is not permitted)`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`|
+| ||:diagtext:`function`|| |
+| |+--------------------+| |
+| ||:diagtext:`variable`|| |
+| |+--------------------+| |
++-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`ISO C forbids forward references to 'enum' types`|
++---------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------------------------+-------------------+-------------+
+|:warning:`warning:` |nbsp| :diagtext:`ISO C restricts enumerator values to range of 'int' (`:placeholder:`A` |nbsp| :diagtext:`is too` |nbsp| |+-----------------+|:diagtext:`)`|
+| ||:diagtext:`small`|| |
+| |+-----------------+| |
+| ||:diagtext:`large`|| |
+| |+-----------------+| |
++----------------------------------------------------------------------------------------------------------------------------------------------+-------------------+-------------+
+
++--------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`size of static array must be an integer constant expression`|
++--------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`initializer for aggregate is not a compile-time constant`|
++-----------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------+
+|: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:`ISO C90 does not allow subscripting non-lvalue array`|
++-------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`subscript of a pointer to void is a GNU extension`|
++----------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`ISO C forbids taking the address of an expression of type 'void'`|
++-------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`ordered comparison between pointer and zero (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`) is an extension`|
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`equality comparison between function pointer and void pointer (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`arithmetic on`|+---------------------+| |nbsp| :diagtext:`pointer`|+-------------+| |nbsp| :diagtext:`to void is a GNU extension`|
+| || |nbsp| :diagtext:`a`|| || || |
+| |+---------------------+| |+-------------+| |
+| || || ||:diagtext:`s`|| |
+| |+---------------------+| |+-------------+| |
++----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+
+
++----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`arithmetic on`|+---------------------+| |nbsp| :diagtext:`pointer`|+-------------+| |nbsp| :diagtext:`to`|+-----------------------+| |nbsp| :diagtext:`function type`|+-------------+| |nbsp| :placeholder:`B`|+-------------------------------------------------+| |nbsp| :diagtext:`is a GNU extension`|
+| || |nbsp| :diagtext:`a`|| || || || |nbsp| :diagtext:`the`|| || || || || |
+| |+---------------------+| |+-------------+| |+-----------------------+| |+-------------+| |+-------------------------------------------------+| |
+| || || ||:diagtext:`s`|| || || ||:diagtext:`s`|| ||+-----------------------------------------------+|| |
+| |+---------------------+| |+-------------+| |+-----------------------+| |+-------------+| ||| |nbsp| :diagtext:`and` |nbsp| :placeholder:`D`||| |
+| | | | | | | | | ||+-----------------------------------------------+|| |
+| | | | | | | | | |+-------------------------------------------------+| |
++----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`ISO C does not support '++'/'--' on complex integer type` |nbsp| :placeholder:`A`|
++-----------------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`ISO C does not support '~' for complex conjugation of` |nbsp| :placeholder:`A`|
++--------------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`complex numbers are an extension in a freestanding C99 implementation`|
++------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`cast between pointer-to-function and pointer-to-object is an extension`|
++-------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from array size expression of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| |+-----------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is a C++11 extension`|
+| ||:diagtext:`integral` || |
+| |+-----------------------+| |
+| ||:diagtext:`enumeration`|| |
+| |+-----------------------+| |
++---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+
+
++---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`converts between void pointer and function pointer`|
+| ||:diagtext:`assigning to different types` || |
+| |+--------------------------------------------------------------+| |
+| ||:diagtext:`passing to parameter of different type` || |
+| |+--------------------------------------------------------------+| |
+| ||:diagtext:`returning from function with different return type`|| |
+| |+--------------------------------------------------------------+| |
+| ||:diagtext:`converting between types` || |
+| |+--------------------------------------------------------------+| |
+| ||:diagtext:`initializing with expression of different type` || |
+| |+--------------------------------------------------------------+| |
+| ||:diagtext:`sending to parameter of different type` || |
+| |+--------------------------------------------------------------+| |
+| ||:diagtext:`casting between types` || |
+| |+--------------------------------------------------------------+| |
++---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`kernel function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a member function; this may not be accepted by nvcc`|
++--------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`C99 forbids conditional expressions with only one void side`|
++--------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`C99 forbids casting nonscalar type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to the same type`|
++-------------------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++14 extension`|
++---------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++17 extension`|
++---------------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------+--------------------+---------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`types declared in an anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`are a Microsoft extension`|
+| ||:diagtext:`struct`|| |
+| |+------------------+| |
+| ||:diagtext:`union` || |
+| |+------------------+| |
++-----------------------------------------------------------------------------+--------------------+---------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
+|: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`|| |
+| |+--------------------+| |
+| ||:diagtext:`method` || |
+| |+--------------------+| |
+| ||:diagtext:`block` || |
+| |+--------------------+| |
++---------------------------------------------------+----------------------+-----------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' cannot be signed or unsigned`|
++--------------------------------------------------------------------------------------------------+
+
++---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+
+|:warning:`warning:` |nbsp| |+--------------------------------+|:diagtext:`array size` |nbsp| |+---------------------+|:diagtext:`is a C99 feature`|
+| ||:diagtext:`qualifier in` |nbsp| || || || |
+| |+--------------------------------+| |+---------------------+| |
+| ||:diagtext:`static` |nbsp| || || || |
+| |+--------------------------------+| |+---------------------+| |
+| || || ||:diagtext:`'\[\*\] '`|| |
+| |+--------------------------------+| |+---------------------+| |
++---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+
+
++--------------------------------------------------------+------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`extra ';'` |nbsp| |+----------------------------------------------+|
+| ||:diagtext:`outside of a function` ||
+| |+----------------------------------------------+|
+| ||+--------------------------------------------+||
+| |||:diagtext:`inside a` |nbsp| :placeholder:`B`|||
+| ||+--------------------------------------------+||
+| |+----------------------------------------------+|
+| ||:diagtext:`inside instance variable list` ||
+| |+----------------------------------------------+|
+| ||:diagtext:`after member function definition` ||
+| |+----------------------------------------------+|
++--------------------------------------------------------+------------------------------------------------+
+
++-----------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'\_\_thread' before '`:placeholder:`A`:diagtext:`'`|
++-----------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`type-less parameter names in function declaration`|
++----------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`variable declaration in for loop is a C99-specific feature`|
++-------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`compound literals are a C99-specific feature`|
++-----------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C99-specific feature`|
++-------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C++11 extension`|
++--------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a C++11 extension`|
++-----------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`use of GNU array range extension`|
++-----------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`exception specification of '...' is a Microsoft extension`|
++------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------+---------------------------+-----------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`attributes on` |nbsp| |+-------------------------+| |nbsp| :diagtext:`declaration are a C++17 extension`|
+| ||:diagtext:`a namespace` || |
+| |+-------------------------+| |
+| ||:diagtext:`an enumerator`|| |
+| |+-------------------------+| |
++------------------------------------------------------------+---------------------------+-----------------------------------------------------+
+
++-----------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`extern templates are a C++11 extension`|
++-----------------------------------------------------------------------------+
+
++------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`multi-line // comment`|
++------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`// comments are not allowed in this language`|
++-----------------------------------------------------------------------------------+
+
++----------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`|
++----------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`use of non-standard escape character '\\`:placeholder:`A`:diagtext:`'`|
++------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating constants are a C99 feature`|
++---------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are a C++17 feature`|
++----------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`#ident is a language extension`|
++---------------------------------------------------------------------+
+
++-----------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`#warning is a language extension`|
++-----------------------------------------------------------------------+
+
++-----------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`comma operator in operand of #if`|
++-----------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`\_\_VA\_ARGS\_\_ can only appear in the expansion of a C99 variadic macro`|
++----------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`variadic macros are a C99 feature`|
++------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`named variadic macros are a GNU extension`|
++--------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`empty macro arguments are a C99 feature`|
++------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`C requires #line number to be less than` |nbsp| :placeholder:`A`:diagtext:`, allowed as extension`|
++----------------------------------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`macro expansion producing 'defined' has undefined behavior`|
++-------------------------------------------------------------------------------------------------+
+
+
+-Wpedantic-core-features
+------------------------
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`OpenCL extension` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is core feature or supported optional core feature - ignoring`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wpessimizing-move
+------------------
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`moving a temporary object prevents copy elision`|
++--------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`moving a local object in a return statement prevents copy elision`|
++--------------------------------------------------------------------------------------------------------+
+
+
+-Wpointer-arith
+---------------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`arithmetic on`|+---------------------+| |nbsp| :diagtext:`pointer`|+-------------+| |nbsp| :diagtext:`to`|+-----------------------+| |nbsp| :diagtext:`function type`|+-------------+| |nbsp| :placeholder:`B`|+-------------------------------------------------+| |nbsp| :diagtext:`is a GNU extension`|
+| || |nbsp| :diagtext:`a`|| || || || |nbsp| :diagtext:`the`|| || || || || |
+| |+---------------------+| |+-------------+| |+-----------------------+| |+-------------+| |+-------------------------------------------------+| |
+| || || ||:diagtext:`s`|| || || ||:diagtext:`s`|| ||+-----------------------------------------------+|| |
+| |+---------------------+| |+-------------+| |+-----------------------+| |+-------------+| ||| |nbsp| :diagtext:`and` |nbsp| :placeholder:`D`||| |
+| | | | | | | | | ||+-----------------------------------------------+|| |
+| | | | | | | | | |+-------------------------------------------------+| |
++----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+
+
++----------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`subscript of a pointer to void is a GNU extension`|
++----------------------------------------------------------------------------------------+
+
++----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`arithmetic on`|+---------------------+| |nbsp| :diagtext:`pointer`|+-------------+| |nbsp| :diagtext:`to void is a GNU extension`|
+| || |nbsp| :diagtext:`a`|| || || |
+| |+---------------------+| |+-------------+| |
+| || || ||:diagtext:`s`|| |
+| |+---------------------+| |+-------------+| |
++----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+
+
++---------------------------------------------------------------+-----------------------+--------------------------------+
+|: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:`subtraction of pointers to type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of zero size has undefined behavior`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wpointer-bool-conversion
+-------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------+---------------------------+---------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`nonnull` |nbsp| |+-------------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' will evaluate to 'true' on first encounter`|
+| ||:diagtext:`function call`|| |
+| |+-------------------------+| |
+| ||:diagtext:`parameter` || |
+| |+-------------------------+| |
++------------------------------------------------------+---------------------------+---------------------------------------------------------------------------------------------+
+
++-------------------------------------------------+------------------------------+---------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`address of`|+----------------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' will always evaluate to 'true'`|
+| || || |
+| |+----------------------------+| |
+| || |nbsp| :diagtext:`function`|| |
+| |+----------------------------+| |
+| || |nbsp| :diagtext:`array` || |
+| |+----------------------------+| |
++-------------------------------------------------+------------------------------+---------------------------------------------------------------------------------+
+
+
+-Wpointer-sign
+--------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`converts between pointers to integer types with different sign`|
+| ||:diagtext:`assigning to different types` || |
+| |+--------------------------------------------------------------+| |
+| ||:diagtext:`passing to parameter of different type` || |
+| |+--------------------------------------------------------------+| |
+| ||:diagtext:`returning from function with different return type`|| |
+| |+--------------------------------------------------------------+| |
+| ||:diagtext:`converting between types` || |
+| |+--------------------------------------------------------------+| |
+| ||:diagtext:`initializing with expression of different type` || |
+| |+--------------------------------------------------------------+| |
+| ||:diagtext:`sending to parameter of different type` || |
+| |+--------------------------------------------------------------+| |
+| ||:diagtext:`casting between types` || |
+| |+--------------------------------------------------------------+| |
++---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------------+
+
+
+-Wpointer-to-int-cast
+---------------------
+This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
+
+-Wpointer-type-mismatch
+-----------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`pointer type mismatch`|
++------------------------------------------------------------+
+
+
+-Wpotentially-evaluated-expression
+----------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`expression with side effects will be evaluated despite being used as an operand to 'typeid'`|
++----------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wpragma-clang-attribute
+------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unused attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in '#pragma clang attribute push' region`|
++-------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wpragma-once-outside-header
+----------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`#pragma once in main file`|
++----------------------------------------------------------------+
+
+
+-Wpragma-pack
+-------------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+Also controls `-Wpragma-pack-suspicious-include`_.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`the current #pragma pack aligment value is modified in the included file`|
++---------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unterminated '#pragma pack (push, ...)' at end of file`|
++---------------------------------------------------------------------------------------------+
+
+
+-Wpragma-pack-suspicious-include
+--------------------------------
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`non-default #pragma pack value changes the alignment of struct or union members in the included file`|
++-------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wpragma-system-header-outside-header
+-------------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`#pragma system\_header ignored in main file`|
++----------------------------------------------------------------------------------+
+
+
+-Wpragmas
+---------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+Also controls `-Wignored-pragmas`_, `-Wpragma-clang-attribute`_, `-Wpragma-pack`_, `-Wunknown-pragmas`_.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------------------------+----------------------+------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`#pragma redefine\_extname is applicable to external C declarations only; not applied to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B`|
+| ||:diagtext:`function`|| |
+| |+--------------------+| |
+| ||:diagtext:`variable`|| |
+| |+--------------------+| |
++--------------------------------------------------------------------------------------------------------------------------------------+----------------------+------------------------+
+
+
+-Wpredefined-identifier-outside-function
+----------------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`predefined identifier is only valid inside function`|
++------------------------------------------------------------------------------------------+
+
+
+-Wprivate-extern
+----------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`use of \_\_private\_extern\_\_ on a declaration may not produce external symbol private to the linkage unit and is deprecated`|
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wprivate-header
+----------------
+This diagnostic is an error by default, but the flag ``-Wno-private-header`` can be used to disable the error.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------+
+|:error:`error:` |nbsp| :diagtext:`use of private header from outside its module: '`:placeholder:`A`:diagtext:`'`|
++----------------------------------------------------------------------------------------------------------------+
+
+
+-Wprivate-module
+----------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------+
+|: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`|| |
+| |+-------------+| |+----------------+| |
++-----------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+------------------+---------------------------+
+
+
+-Wprofile-instr-out-of-date
+---------------------------
+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`|| |
+| |+-------------+| |+----------------+| |
++------------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+------------------+--------------------------------------------------------+
+
+
+-Wprofile-instr-unprofiled
+--------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`no profile data available for file "`:placeholder:`A`:diagtext:`"`|
++--------------------------------------------------------------------------------------------------------+
+
+
+-Wproperty-access-dot-syntax
+----------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found on object of type` |nbsp| :placeholder:`B`:diagtext:`; did you mean to access property` |nbsp| :placeholder:`C`:diagtext:`?`|
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wproperty-attribute-mismatch
+-----------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`property attribute in class extension does not match the primary class`|
++-------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' attribute on property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not match the property inherited from` |nbsp| :placeholder:`C`|
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`getter name mismatch between property redeclaration (`:placeholder:`B`:diagtext:`) and its original declaration (`:placeholder:`A`:diagtext:`)`|
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`attribute 'readonly' of property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`restricts attribute 'readwrite' of property inherited from` |nbsp| :placeholder:`B`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wprotocol
+----------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in protocol` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not implemented`|
++---------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wprotocol-property-synthesis-ambiguity
+---------------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------+----------------------------------------------------------------+----------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`was selected for synthesis`|
+| ||+-------------------------------------------+ || |
+| |||:diagtext:`of type` |nbsp| :placeholder:`B`| || |
+| ||+-------------------------------------------+ || |
+| |+--------------------------------------------------------------+| |
+| ||+---------------------------------------------------------+ || |
+| |||:diagtext:`with attribute '`:placeholder:`B`:diagtext:`'`| || |
+| ||+---------------------------------------------------------+ || |
+| |+--------------------------------------------------------------+| |
+| ||+------------------------------------------------------------+|| |
+| |||:diagtext:`without attribute '`:placeholder:`B`:diagtext:`'`||| |
+| ||+------------------------------------------------------------+|| |
+| |+--------------------------------------------------------------+| |
+| ||+-----------------------------------------------+ || |
+| |||:diagtext:`with getter` |nbsp| :placeholder:`B`| || |
+| ||+-----------------------------------------------+ || |
+| |+--------------------------------------------------------------+| |
+| ||+-----------------------------------------------+ || |
+| |||:diagtext:`with setter` |nbsp| :placeholder:`B`| || |
+| ||+-----------------------------------------------+ || |
+| |+--------------------------------------------------------------+| |
++-------------------------------------------------------+----------------------------------------------------------------+----------------------------------------------+
+
+
+-Wqualified-void-return-type
+----------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`function cannot return qualified void type` |nbsp| :placeholder:`A`|
++---------------------------------------------------------------------------------------------------------+
+
+
+-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:**
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`loop variable` |nbsp| :placeholder:`A` |nbsp| |nbsp| :diagtext:`is initialized with a value of a different type` |nbsp| :diagtext:`resulting in a copy`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`loop variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`creates a copy from type` |nbsp| :placeholder:`C`|
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`loop variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is always a copy because the range of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`does not return a reference`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wreadonly-iboutlet-property
+----------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`readonly IBOutlet property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when auto-synthesized may not work correctly with 'nib' loader`|
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wreceiver-expr
+---------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`receiver type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not 'id' or interface pointer, consider casting it to 'id'`|
++-------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wreceiver-forward-class
+------------------------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`receiver` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a forward class and corresponding @interface may not exist`|
++--------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`receiver type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for instance message is a forward declaration`|
++---------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wredeclared-class-member
+-------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`class member cannot be redeclared`|
++------------------------------------------------------------------------+
+
+
+-Wredundant-decls
+-----------------
+This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
+
+-Wredundant-move
+----------------
+**Diagnostic text:**
+
++-------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`redundant move in return statement`|
++-------------------------------------------------------------------------+
+
+
+-Wredundant-parens
+------------------
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`redundant parentheses surrounding declarator`|
++-----------------------------------------------------------------------------------+
+
+
+-Wregister
+----------
+This diagnostic is enabled by default.
+
+Also controls `-Wdeprecated-register`_.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------+
+|:error:`error:` |nbsp| :diagtext:`ISO C++17 does not allow 'register' storage class specifier`|
++----------------------------------------------------------------------------------------------+
+
+
+-Wreinterpret-base-class
+------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------+------------------+---------------------------------------------------------+------------------+-------------------------------+-------------------------------------+-----------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'reinterpret\_cast'` |nbsp| |+----------------+| |nbsp| :diagtext:`class` |nbsp| :placeholder:`A` |nbsp| |+----------------+| |nbsp| :diagtext:`its` |nbsp| |+-----------------------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`behaves differently from 'static\_cast'`|
+| ||:diagtext:`from`|| ||:diagtext:`to` || ||:diagtext:`virtual base` || |
+| |+----------------+| |+----------------+| |+-----------------------------------+| |
+| ||:diagtext:`to` || ||:diagtext:`from`|| ||:diagtext:`base at non-zero offset`|| |
+| |+----------------+| |+----------------+| |+-----------------------------------+| |
++------------------------------------------------------------------+------------------+---------------------------------------------------------+------------------+-------------------------------+-------------------------------------+-----------------------------------------------------------------------------------+
+
+
+-Rremark-backend-plugin
+-----------------------
+**Diagnostic text:**
+
+The text of this diagnostic is not controlled by Clang.
+
+
+-Wreorder
+---------
+**Diagnostic text:**
+
++---------------------------+------------------------+-----------------------------------------------------------------------------+-------------------+------------------------+
+|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`will be initialized after` |nbsp| |+-----------------+| |nbsp| :placeholder:`D`|
+| ||:diagtext:`field` || ||:diagtext:`field`|| |
+| |+----------------------+| |+-----------------+| |
+| ||:diagtext:`base class`|| ||:diagtext:`base` || |
+| |+----------------------+| |+-----------------+| |
++---------------------------+------------------------+-----------------------------------------------------------------------------+-------------------+------------------------+
+
+
+-Wrequires-super-attribute
+--------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------+----------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute cannot be applied to` |nbsp| |+--------------------------------+|
+| ||:diagtext:`methods in protocols`||
+| |+--------------------------------+|
+| ||:diagtext:`dealloc` ||
+| |+--------------------------------+|
++-----------------------------------------------------------------------------------------------------+----------------------------------+
+
+
+-Wreserved-id-macro
+-------------------
+**Diagnostic text:**
+
++--------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`macro name is a reserved identifier`|
++--------------------------------------------------------------------------+
+
+
+-Wreserved-user-defined-literal
+-------------------------------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+Also controls `-Wc++11-compat-reserved-user-defined-literal`_.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`invalid suffix on literal; C++11 requires a space between literal and identifier`|
++-----------------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------+
+|:error:`error:` |nbsp| :diagtext:`invalid suffix on literal; C++11 requires a space between literal and identifier`|
++-------------------------------------------------------------------------------------------------------------------+
+
+
+-Wretained-language-linkage
+---------------------------
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`friend function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`retaining previous language linkage is an extension`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wreturn-stack-address
+----------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`returning address of label, which is local`|
++---------------------------------------------------------------------------------+
+
++--------------------------------------------------------+--------------------------+------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`returning` |nbsp| |+------------------------+| |nbsp| :diagtext:`local temporary object`|
+| ||: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
+-------------
+This diagnostic is enabled by default.
+
+Also controls `-Wreturn-type-c-linkage`_.
+
+**Diagnostic text:**
+
++-----------------------+---------------------------+---------------------------------------------------------------------+
+|:error:`error:` |nbsp| |+-------------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return a value`|
+| ||:diagtext:`void function`|| |
+| |+-------------------------+| |
+| ||:diagtext:`void method` || |
+| |+-------------------------+| |
+| ||:diagtext:`constructor` || |
+| |+-------------------------+| |
+| ||:diagtext:`destructor` || |
+| |+-------------------------+| |
++-----------------------+---------------------------+---------------------------------------------------------------------+
+
++---------------------------------------------------+----------------------+-----------------------------------------------------------------+
+|:error:`error:` |nbsp| :diagtext:`non-void` |nbsp| |+--------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should return a value`|
+| ||:diagtext:`function`|| |
+| |+--------------------+| |
+| ||:diagtext:`method` || |
+| |+--------------------+| |
++---------------------------------------------------+----------------------+-----------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`control reaches end of coroutine; which is undefined behavior because the promise type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not declare 'return\_void()'`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`control reaches end of non-void function`|
++-------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`control reaches end of non-void lambda`|
++-----------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`control may reach end of coroutine; which is undefined behavior because the promise type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not declare 'return\_void()'`|
++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`control may reach end of non-void function`|
++---------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`control may reach end of non-void lambda`|
++-------------------------------------------------------------------------------+
+
++---------------------------------------------------+----------------------+-----------------------------------------------------------------+
+|:error:`error:` |nbsp| :diagtext:`non-void` |nbsp| |+--------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should return a value`|
+| ||:diagtext:`function`|| |
+| |+--------------------+| |
+| ||:diagtext:`method` || |
+| |+--------------------+| |
++---------------------------------------------------+----------------------+-----------------------------------------------------------------+
+
+
+-Wreturn-type-c-linkage
+-----------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has C-linkage specified, but returns user-defined type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`which is incompatible with C`|
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has C-linkage specified, but returns incomplete type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`which could be incompatible with C`|
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Rsanitize-address
+------------------
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------+
+|:remark:`remark:` |nbsp| :diagtext:`-fsanitize-address-field-padding applied to` |nbsp| :placeholder:`A`|
++--------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------+
+|:remark:`remark:` |nbsp| :diagtext:`-fsanitize-address-field-padding ignored for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`because it` |nbsp| |+------------------------------------+|
+| ||:diagtext:`is not C++` ||
+| |+------------------------------------+|
+| ||:diagtext:`is packed` ||
+| |+------------------------------------+|
+| ||:diagtext:`is a union` ||
+| |+------------------------------------+|
+| ||:diagtext:`is trivially copyable` ||
+| |+------------------------------------+|
+| ||:diagtext:`has trivial destructor` ||
+| |+------------------------------------+|
+| ||:diagtext:`is standard layout` ||
+| |+------------------------------------+|
+| ||:diagtext:`is in a blacklisted file`||
+| |+------------------------------------+|
+| ||:diagtext:`is blacklisted` ||
+| |+------------------------------------+|
++-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------+
+
+
+-Wsection
+---------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`section attribute is specified on redeclared variable`|
++--------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`duplicate code segment specifiers`|
++------------------------------------------------------------------------+
+
++---------------------------+---------------------+-------------------------------------------------------+
+|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`does not match previous declaration`|
+| ||:diagtext:`codeseg`|| |
+| |+-------------------+| |
+| ||:diagtext:`section`|| |
+| |+-------------------+| |
++---------------------------+---------------------+-------------------------------------------------------+
+
+
+-Wselector
+----------
+Also controls `-Wselector-type-mismatch`_.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`no method with selector` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is implemented in this translation unit`|
++-------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wselector-type-mismatch
+------------------------
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`several methods with selector` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of mismatched types are found for the @selector expression`|
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wself-assign
+-------------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+Also controls `-Wself-assign-field`_, `-Wself-assign-overloaded`_.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`explicitly assigning value of variable of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to itself`|
++------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wself-assign-field
+-------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------+-------------------------------+-----------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`assigning` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`to itself`|
+| ||:diagtext:`field` || |
+| |+-----------------------------+| |
+| ||:diagtext:`instance variable`|| |
+| |+-----------------------------+| |
++--------------------------------------------------------+-------------------------------+-----------------------------+
+
+
+-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:**
+
++------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`explicitly moving variable of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to itself`|
++------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wsemicolon-before-method-body
+------------------------------
+**Diagnostic text:**
+
++------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`semicolon before method body is ignored`|
++------------------------------------------------------------------------------+
+
+
+-Wsentinel
+----------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------+-----------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`missing sentinel in` |nbsp| |+---------------------------+|
+| ||:diagtext:`function call` ||
+| |+---------------------------+|
+| ||:diagtext:`method dispatch`||
+| |+---------------------------+|
+| ||:diagtext:`block call` ||
+| |+---------------------------+|
++------------------------------------------------------------------+-----------------------------+
+
++------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`not enough variable arguments in` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declaration to fit a sentinel`|
++------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wsequence-point
+----------------
+Synonym for `-Wunsequenced`_.
+
+
+-Wserialized-diagnostics
+------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unable to open file` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for serializing diagnostics (`:placeholder:`B`:diagtext:`)`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unable to merge a subprocess's serialized diagnostics`|
++--------------------------------------------------------------------------------------------+
+
+
+-Wshadow
+--------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+Also controls `-Wshadow-field-in-constructor-modified`_, `-Wshadow-ivar`_.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------+-------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`declaration shadows a` |nbsp| |+-----------------------------------------------------------+|
+| ||:diagtext:`local variable` ||
+| |+-----------------------------------------------------------+|
+| ||+-----------------------------------------------+ ||
+| |||:diagtext:`variable in` |nbsp| :placeholder:`C`| ||
+| ||+-----------------------------------------------+ ||
+| |+-----------------------------------------------------------+|
+| ||+---------------------------------------------------------+||
+| |||:diagtext:`static data member of` |nbsp| :placeholder:`C`|||
+| ||+---------------------------------------------------------+||
+| |+-----------------------------------------------------------+|
+| ||+--------------------------------------------+ ||
+| |||:diagtext:`field of` |nbsp| :placeholder:`C`| ||
+| ||+--------------------------------------------+ ||
+| |+-----------------------------------------------------------+|
+| ||+----------------------------------------------+ ||
+| |||:diagtext:`typedef in` |nbsp| :placeholder:`C`| ||
+| ||+----------------------------------------------+ ||
+| |+-----------------------------------------------------------+|
+| ||+-------------------------------------------------+ ||
+| |||:diagtext:`type alias in` |nbsp| :placeholder:`C`| ||
+| ||+-------------------------------------------------+ ||
+| |+-----------------------------------------------------------+|
++--------------------------------------------------------------------+-------------------------------------------------------------+
+
+
+-Wshadow-all
+------------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+Controls `-Wshadow`_, `-Wshadow-field`_, `-Wshadow-field-in-constructor`_, `-Wshadow-uncaptured-local`_.
+
+
+-Wshadow-field
+--------------
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`non-static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`shadows member inherited from type` |nbsp| :placeholder:`C`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wshadow-field-in-constructor
+-----------------------------
+Also controls `-Wshadow-field-in-constructor-modified`_.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`constructor parameter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`shadows the field` |nbsp| :placeholder:`B` |nbsp| :diagtext:`of` |nbsp| :placeholder:`C`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wshadow-field-in-constructor-modified
+--------------------------------------
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`modifying constructor parameter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`that shadows a field of` |nbsp| :placeholder:`B`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wshadow-ivar
+-------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`local declaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`hides instance variable`|
++------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wshadow-uncaptured-local
+-------------------------
+**Diagnostic text:**
+
++--------------------------------------------------------------------+-------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`declaration shadows a` |nbsp| |+-----------------------------------------------------------+|
+| ||:diagtext:`local variable` ||
+| |+-----------------------------------------------------------+|
+| ||+-----------------------------------------------+ ||
+| |||:diagtext:`variable in` |nbsp| :placeholder:`C`| ||
+| ||+-----------------------------------------------+ ||
+| |+-----------------------------------------------------------+|
+| ||+---------------------------------------------------------+||
+| |||:diagtext:`static data member of` |nbsp| :placeholder:`C`|||
+| ||+---------------------------------------------------------+||
+| |+-----------------------------------------------------------+|
+| ||+--------------------------------------------+ ||
+| |||:diagtext:`field of` |nbsp| :placeholder:`C`| ||
+| ||+--------------------------------------------+ ||
+| |+-----------------------------------------------------------+|
+| ||+----------------------------------------------+ ||
+| |||:diagtext:`typedef in` |nbsp| :placeholder:`C`| ||
+| ||+----------------------------------------------+ ||
+| |+-----------------------------------------------------------+|
+| ||+-------------------------------------------------+ ||
+| |||:diagtext:`type alias in` |nbsp| :placeholder:`C`| ||
+| ||+-------------------------------------------------+ ||
+| |+-----------------------------------------------------------+|
++--------------------------------------------------------------------+-------------------------------------------------------------+
+
+
+-Wshift-count-negative
+----------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`shift count is negative`|
++--------------------------------------------------------------+
+
+
+-Wshift-count-overflow
+----------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`shift count >= width of type`|
++-------------------------------------------------------------------+
+
+
+-Wshift-negative-value
+----------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`shifting a negative signed value is undefined`|
++------------------------------------------------------------------------------------+
+
+
+-Wshift-op-parentheses
+----------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`operator '`:placeholder:`A`:diagtext:`' has lower precedence than '`:placeholder:`B`:diagtext:`'; '`:placeholder:`B`:diagtext:`' will be evaluated first`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wshift-overflow
+----------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`signed shift result (`:placeholder:`A`:diagtext:`) requires` |nbsp| :placeholder:`B` |nbsp| :diagtext:`bits to represent, but` |nbsp| :placeholder:`C` |nbsp| :diagtext:`only has` |nbsp| :placeholder:`D` |nbsp| :diagtext:`bits`|
++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wshift-sign-overflow
+---------------------
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`signed shift result (`:placeholder:`A`:diagtext:`) sets the sign bit of the shift expression's type (`:placeholder:`B`:diagtext:`) and becomes negative`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wshorten-64-to-32
+------------------
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses integer precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
++---------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wsign-compare
+--------------
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`comparison of integers of different signs:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`|
++--------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wsign-conversion
+-----------------
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`implicit conversion changes signedness:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
++----------------------------------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`operand of ? changes signedness:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
++---------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wsign-promo
+------------
+This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
+
+-Wsigned-enum-bitfield
+----------------------
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`enums in the Microsoft ABI are signed integers by default; consider giving the enum` |nbsp| :placeholder:`A` |nbsp| :diagtext:`an unsigned underlying type to make this code portable`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wsizeof-array-argument
+-----------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`sizeof on array function parameter will return size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`instead of` |nbsp| :placeholder:`B`|
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wsizeof-array-decay
+--------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`sizeof on pointer operation will return size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`instead of` |nbsp| :placeholder:`B`|
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wsizeof-pointer-memaccess
+--------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' call operates on objects of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`while the size is based on a different type` |nbsp| :placeholder:`C`|
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`argument to 'sizeof' in` |nbsp| :placeholder:`A` |nbsp| :diagtext:`call is the same pointer type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`as the` |nbsp| |+-----------------------+|:diagtext:`; expected` |nbsp| :placeholder:`D` |nbsp| :diagtext:`or an explicit length`|
+| ||:diagtext:`destination`|| |
+| |+-----------------------+| |
+| ||:diagtext:`source` || |
+| |+-----------------------+| |
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------+
+
+
+-Wslash-u-filename
+------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'/U`:placeholder:`A`:diagtext:`' treated as the '/U' option`|
++--------------------------------------------------------------------------------------------------+
+
+
+-Wsometimes-uninitialized
+-------------------------
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is` |nbsp| |+--------------------+| |nbsp| :diagtext:`uninitialized whenever` |nbsp| |+------------------------------------------------------------------------------------------------------------+|
+| ||:diagtext:`used` || ||+---------------------------------------------------------------+-------------------+ ||
+| |+--------------------+| |||:diagtext:`'`:placeholder:`D`:diagtext:`' condition is` |nbsp| |+-----------------+| ||
+| ||:diagtext:`captured`|| ||| ||:diagtext:`true` || ||
+| |+--------------------+| ||| |+-----------------+| ||
+| | | ||| ||:diagtext:`false`|| ||
+| | | ||| |+-----------------+| ||
+| | | ||+---------------------------------------------------------------+-------------------+ ||
+| | | |+------------------------------------------------------------------------------------------------------------+|
+| | | ||+-------------------------------------------------------+--------------------------------------------------+||
+| | | |||:diagtext:`'`:placeholder:`D`:diagtext:`' loop` |nbsp| |+------------------------------------------------+|||
+| | | ||| ||:diagtext:`is entered` ||||
+| | | ||| |+------------------------------------------------+|||
+| | | ||| ||:diagtext:`exits because its condition is false`||||
+| | | ||| |+------------------------------------------------+|||
+| | | ||+-------------------------------------------------------+--------------------------------------------------+||
+| | | |+------------------------------------------------------------------------------------------------------------+|
+| | | ||+-------------------------------------------------------+--------------------------------------------------+||
+| | | |||:diagtext:`'`:placeholder:`D`:diagtext:`' loop` |nbsp| |+------------------------------------------------+|||
+| | | ||| ||:diagtext:`condition is true` ||||
+| | | ||| |+------------------------------------------------+|||
+| | | ||| ||:diagtext:`exits because its condition is false`||||
+| | | ||| |+------------------------------------------------+|||
+| | | ||+-------------------------------------------------------+--------------------------------------------------+||
+| | | |+------------------------------------------------------------------------------------------------------------+|
+| | | ||+----------------------------------------------------------------------+ ||
+| | | |||:diagtext:`switch` |nbsp| :placeholder:`D` |nbsp| :diagtext:`is taken`| ||
+| | | ||+----------------------------------------------------------------------+ ||
+| | | |+------------------------------------------------------------------------------------------------------------+|
+| | | ||:diagtext:`its declaration is reached` ||
+| | | |+------------------------------------------------------------------------------------------------------------+|
+| | | ||+---------------------------------------------+ ||
+| | | |||:placeholder:`D` |nbsp| :diagtext:`is called`| ||
+| | | ||+---------------------------------------------+ ||
+| | | |+------------------------------------------------------------------------------------------------------------+|
++-----------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
+
+
+-Wsource-uses-openmp
+--------------------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`OpenMP only allows an ordered construct with the simd clause nested in a simd construct`|
++------------------------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unexpected '#pragma omp ...' in program`|
++------------------------------------------------------------------------------+
+
+
+-Wspir-compat
+-------------
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`sampler initializer has invalid` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bits`|
++----------------------------------------------------------------------------------------------------------------------+
+
+
+-Wstack-protector
+-----------------
+This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
+
+-Wstatic-float-init
+-------------------
+This diagnostic is enabled by default.
+
+Also controls `-Wgnu-static-float-init`_.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:error:`error:` |nbsp| :diagtext:`in-class initializer for static data member of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires 'constexpr' specifier`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wstatic-in-inline
+------------------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`|
+| ||:diagtext:`function`|| |
+| |+--------------------+| |
+| ||:diagtext:`variable`|| |
+| |+--------------------+| |
++-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`|
+| ||:diagtext:`function`|| |
+| |+--------------------+| |
+| ||:diagtext:`variable`|| |
+| |+--------------------+| |
++-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
+
+
+-Wstatic-inline-explicit-instantiation
+--------------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------+--------------------+--------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`ignoring '`|+------------------+|:diagtext:`' keyword on explicit template instantiation`|
+| ||:diagtext:`static`|| |
+| |+------------------+| |
+| ||:diagtext:`inline`|| |
+| |+------------------+| |
++-------------------------------------------------+--------------------+--------------------------------------------------------+
+
+
+-Wstatic-local-in-inline
+------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`non-constant static local variable in inline function may be different in different files`|
++--------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wstatic-self-init
+------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`static variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is suspiciously used within its own initialization`|
++----------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wstdlibcxx-not-found
+---------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`include path for stdlibc++ headers not found; pass '-std=libc++' on the command line to use the libc++ standard library instead`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wstrict-aliasing
+-----------------
+This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
+
+-Wstrict-aliasing=0
+-------------------
+This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
+
+-Wstrict-aliasing=1
+-------------------
+This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
+
+-Wstrict-aliasing=2
+-------------------
+This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
+
+-Wstrict-overflow
+-----------------
+This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
+
+-Wstrict-overflow=0
+-------------------
+This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
+
+-Wstrict-overflow=1
+-------------------
+This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
+
+-Wstrict-overflow=2
+-------------------
+This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
+
+-Wstrict-overflow=3
+-------------------
+This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
+
+-Wstrict-overflow=4
+-------------------
+This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
+
+-Wstrict-overflow=5
+-------------------
+This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
+
+-Wstrict-prototypes
+-------------------
+**Diagnostic text:**
+
++---------------------------------------------------+--------------------------------------------------------------+-------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`this` |nbsp| |+------------------------------------------------------------+| |nbsp| :diagtext:`a prototype`|
+| ||:diagtext:`function declaration is not` || |
+| |+------------------------------------------------------------+| |
+| ||:diagtext:`block declaration is not` || |
+| |+------------------------------------------------------------+| |
+| ||:diagtext:`old-style function definition is not preceded by`|| |
+| |+------------------------------------------------------------+| |
++---------------------------------------------------+--------------------------------------------------------------+-------------------------------+
+
+
+-Wstrict-prototypes
+-------------------
+**Diagnostic text:**
+
++---------------------------------------------------+--------------------------------------------------------------+-------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`this` |nbsp| |+------------------------------------------------------------+| |nbsp| :diagtext:`a prototype`|
+| ||:diagtext:`function declaration is not` || |
+| |+------------------------------------------------------------+| |
+| ||:diagtext:`block declaration is not` || |
+| |+------------------------------------------------------------+| |
+| ||:diagtext:`old-style function definition is not preceded by`|| |
+| |+------------------------------------------------------------+| |
++---------------------------------------------------+--------------------------------------------------------------+-------------------------------+
+
+
+-Wstrict-selector-match
+-----------------------
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`multiple methods named` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found`|
++--------------------------------------------------------------------------------------------------------------+
+
+
+-Wstring-compare
+----------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------+------------------------------+--------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`result of comparison against` |nbsp| |+----------------------------+| |nbsp| :diagtext:`is unspecified (use strncmp instead)`|
+| ||:diagtext:`a string literal`|| |
+| |+----------------------------+| |
+| ||:diagtext:`@encode` || |
+| |+----------------------------+| |
++---------------------------------------------------------------------------+------------------------------+--------------------------------------------------------+
+
+
+-Wstring-conversion
+-------------------
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns string literal into bool:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wstring-plus-char
+------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`adding` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to a string pointer does not append to the string`|
++------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wstring-plus-int
+-----------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`adding` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to a string does not append to the string`|
++----------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wstrlcpy-strlcat-size
+----------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`size argument in` |nbsp| :placeholder:`A` |nbsp| :diagtext:`call appears to be size of the source; expected the size of the destination`|
++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wstrncat-size
+--------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`the value of the size argument in 'strncat' is too large, might lead to a buffer overflow`|
++--------------------------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`size argument in 'strncat' call appears to be size of the source`|
++-------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`the value of the size argument to 'strncat' is wrong`|
++-------------------------------------------------------------------------------------------+
+
+
+-Wsuper-class-method-mismatch
+-----------------------------
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`method parameter type` |nbsp| :diagtext:`does not match super class method parameter type`|
++--------------------------------------------------------------------------------------------------------------------------------+
+
+
+-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.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|: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`| ||
+| ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
+| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
+| ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
+| |||: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`|
++------------------------------------------------------------------------------------------------+
+
+
+-Wswitch-bool
+-------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`switch condition has boolean value`|
++-------------------------------------------------------------------------+
+
+
+-Wswitch-default
+----------------
+This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
+
+-Wswitch-enum
+-------------
+**Diagnostic text:**
+
++---------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`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
+---------------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`the semantics of this intrinsic changed with GCC version 4.4 - the newer semantics are provided here`|
++-------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wsynth
+-------
+This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
+
+-Wtautological-compare
+----------------------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+Also controls `-Wtautological-constant-compare`_, `-Wtautological-overlap-compare`_, `-Wtautological-pointer-compare`_, `-Wtautological-undefined-compare`_.
+
+**Diagnostic text:**
+
++---------------------------+---------------------------+--------------------------------------------------+------------------------+
+|:warning:`warning:` |nbsp| |+-------------------------+|:diagtext:`comparison always evaluates to` |nbsp| |+----------------------+|
+| ||:diagtext:`self-` || ||:diagtext:`a constant`||
+| |+-------------------------+| |+----------------------+|
+| ||:diagtext:`array` |nbsp| || ||:placeholder:`C` ||
+| |+-------------------------+| |+----------------------+|
++---------------------------+---------------------------+--------------------------------------------------+------------------------+
+
++-------------------------------------------------------------------------------------+-------------------+
+|:warning:`warning:` |nbsp| :diagtext:`bitwise comparison always evaluates to` |nbsp| |+-----------------+|
+| ||:diagtext:`false`||
+| |+-----------------+|
+| ||:diagtext:`true` ||
+| |+-----------------+|
++-------------------------------------------------------------------------------------+-------------------+
+
+
+-Wtautological-constant-compare
+-------------------------------
+This diagnostic is enabled by default.
+
+Also controls `-Wtautological-constant-out-of-range-compare`_.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-----------------------------------------------------+
+|: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
+--------------------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-----------------------------------------------------+
+|: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
+------------------------------
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------+-------------------+
+|:warning:`warning:` |nbsp| :diagtext:`overlapping comparisons always evaluate to` |nbsp| |+-----------------+|
+| ||:diagtext:`false`||
+| |+-----------------+|
+| ||:diagtext:`true` ||
+| |+-----------------+|
++-----------------------------------------------------------------------------------------+-------------------+
+
+
+-Wtautological-pointer-compare
+------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------+---------------------------+----------------------------------------------------------+-------------------------+----------------------------------------+-------------------+--------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`comparison of nonnull` |nbsp| |+-------------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`'` |nbsp| |+-----------------------+|:diagtext:`equal to a null pointer is '`|+-----------------+|:diagtext:`' on first encounter`|
+| ||:diagtext:`function call`|| ||:diagtext:`not` |nbsp| || ||:diagtext:`true` || |
+| |+-------------------------+| |+-----------------------+| |+-----------------+| |
+| ||:diagtext:`parameter` || || || ||:diagtext:`false`|| |
+| |+-------------------------+| |+-----------------------+| |+-----------------+| |
++--------------------------------------------------------------------+---------------------------+----------------------------------------------------------+-------------------------+----------------------------------------+-------------------+--------------------------------+
+
++------------------------------------------------------------+------------------------+----------------------------------------------------------+-------------------------+-----------------------------------------------------+-------------------+
+|:warning:`warning:` |nbsp| :diagtext:`comparison of` |nbsp| |+----------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`'` |nbsp| |+-----------------------+|:diagtext:`equal to a null pointer is always` |nbsp| |+-----------------+|
+| ||:diagtext:`address of`|| ||:diagtext:`not` |nbsp| || ||:diagtext:`true` ||
+| |+----------------------+| |+-----------------------+| |+-----------------+|
+| ||:diagtext:`function` || || || ||:diagtext:`false`||
+| |+----------------------+| |+-----------------------+| |+-----------------+|
+| ||:diagtext:`array` || | | | |
+| |+----------------------+| | | | |
++------------------------------------------------------------+------------------------+----------------------------------------------------------+-------------------------+-----------------------------------------------------+-------------------+
+
+
+-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.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
+|:warning:`warning:` |nbsp| :diagtext:`reference cannot be bound to dereferenced null pointer in well-defined C++ code; comparison may be assumed to always evaluate to` |nbsp| |+-----------------+|
+| ||:diagtext:`true` ||
+| |+-----------------+|
+| ||:diagtext:`false`||
+| |+-----------------+|
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
+
++------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'this' pointer cannot be null in well-defined C++ code; comparison may be assumed to always evaluate to` |nbsp| |+-----------------+|
+| ||:diagtext:`true` ||
+| |+-----------------+|
+| ||:diagtext:`false`||
+| |+-----------------+|
++------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
+
+
+-Wtautological-unsigned-enum-zero-compare
+-----------------------------------------
+**Diagnostic text:**
+
++----------------------------------------------------------------------+--------------------------------------+--------------------------------+--------------------------------------+-----------------------------------------------------+
+|: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
+------------------------------------
+**Diagnostic text:**
+
++----------------------------------------------------------------------+---------------------------------+--------------------------------+---------------------------------+-----------------------------------------------------+
+|: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
+--------------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`tentative definition of variable with internal linkage has incomplete non-array type` |nbsp| :placeholder:`A`|
++---------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wthread-safety
+---------------
+Controls `-Wthread-safety-analysis`_, `-Wthread-safety-attributes`_, `-Wthread-safety-precise`_, `-Wthread-safety-reference`_.
+
+
+-Wthread-safety-analysis
+------------------------
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' must be acquired before '`:placeholder:`C`:diagtext:`'`|
++----------------------------------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`Cycle in acquired\_before/after dependencies, starting with '`:placeholder:`A`:diagtext:`'`|
++---------------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`cannot resolve lock expression`|
++---------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`acquiring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' that is already held`|
++-----------------------------------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`expecting` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' to be held at start of each loop`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`expecting` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' to be held at the end of function`|
++------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|: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` |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`|
++--------------------------------------------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is not held on every path through here`|
++------------------------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is still held at the end of function`|
++----------------------------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`releasing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' that was not held`|
++--------------------------------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+-----------------------+--------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`releasing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' using` |nbsp| |+---------------------+| |nbsp| :diagtext:`access, expected` |nbsp| |+---------------------+| |nbsp| :diagtext:`access`|
+| ||:diagtext:`shared` || ||:diagtext:`shared` || |
+| |+---------------------+| |+---------------------+| |
+| ||:diagtext:`exclusive`|| ||:diagtext:`exclusive`|| |
+| |+---------------------+| |+---------------------+| |
++----------------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+-----------------------+--------------------------+
+
++---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------+-----------------------------------+
+|: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
+--------------------------
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`invalid capability name '`:placeholder:`A`:diagtext:`'; capability name must be 'mutex' or 'role'`|
++----------------------------------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute requires arguments whose type is annotated with 'capability' attribute; type here is` |nbsp| :placeholder:`B`|
++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute can only be applied in a context annotated with 'capability("mutex")' attribute`|
++--------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`only applies to pointer types; type here is` |nbsp| :placeholder:`B`|
++----------------------------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`ignoring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute because its argument is invalid`|
++------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wthread-safety-beta
+--------------------
+**Diagnostic text:**
+
++------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`Thread safety beta warning.`|
++------------------------------------------------------------------+
+
+
+-Wthread-safety-negative
+------------------------
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`acquiring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' requires negative capability '`:placeholder:`C`:diagtext:`'`|
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wthread-safety-precise
+-----------------------
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
+|: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` |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
+-----------------------
+**Diagnostic text:**
+
++---------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`Thread safety verbose warning.`|
++---------------------------------------------------------------------+
+
+
+-Wtrigraphs
+-----------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`trigraph converted to '`:placeholder:`A`:diagtext:`' character`|
++-----------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`trigraph ends block comment`|
++------------------------------------------------------------------+
+
++-------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`trigraph ignored`|
++-------------------------------------------------------+
+
++-------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`ignored trigraph would end block comment`|
++-------------------------------------------------------------------------------+
+
+
+-Wtype-limits
+-------------
+This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
+
+-Wtype-safety
+-------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`specified` |nbsp| :placeholder:`A` |nbsp| :diagtext:`type tag requires a null pointer`|
++----------------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`argument type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`doesn't match specified` |nbsp| :placeholder:`B` |nbsp| :diagtext:`type tag` |nbsp| |+---------------------------------------------------+|
+| ||+-------------------------------------------------+||
+| |||:diagtext:`that requires` |nbsp| :placeholder:`D`|||
+| ||+-------------------------------------------------+||
+| |+---------------------------------------------------+|
+| || ||
+| |+---------------------------------------------------+|
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`this type tag was not designed to be used with this function`|
++---------------------------------------------------------------------------------------------------+
+
+
+-Wtypedef-redefinition
+----------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`redefinition of typedef` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C11 feature`|
++--------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wtypename-missing
+------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`missing 'typename' prior to dependent type name '`:placeholder:`A`:placeholder:`B`:diagtext:`'`|
++-------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wunable-to-open-stats-file
+---------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unable to open statistics output file '`:placeholder:`A`:diagtext:`': '`:placeholder:`B`:diagtext:`'`|
++-------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wunavailable-declarations
+--------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be unavailable because the receiver type is unknown`|
++----------------------------------------------------------------------------------------------------------------------+
+
+
+-Wundeclared-selector
+---------------------
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`undeclared selector` |nbsp| :placeholder:`A`|
++----------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`undeclared selector` |nbsp| :placeholder:`A`:diagtext:`; did you mean` |nbsp| :placeholder:`B`:diagtext:`?`|
++-------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wundef
+-------
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not defined, evaluates to 0`|
++---------------------------------------------------------------------------------------------+
+
+
+-Wundefined-bool-conversion
+---------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`reference cannot be bound to dereferenced null pointer in well-defined C++ code; pointer may be assumed to always convert to true`|
++------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'this' pointer cannot be null in well-defined C++ code; pointer may be assumed to always convert to true`|
++-----------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wundefined-func-template
+-------------------------
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`instantiation of function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`required here, but no definition is available`|
++---------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wundefined-inline
+------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`inline function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not defined`|
++----------------------------------------------------------------------------------------------------------------+
+
+
+-Wundefined-internal
+--------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------+----------------------+-----------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`has internal linkage but is not defined`|
+| ||:diagtext:`function`|| |
+| |+--------------------+| |
+| ||:diagtext:`variable`|| |
+| |+--------------------+| |
++---------------------------+----------------------+-----------------------------------------------------------------------------------+
+
+
+-Wundefined-internal-type
+-------------------------
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`ISO C++ requires a definition in this translation unit for` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`because its type does not have linkage`|
+| ||:diagtext:`function`|| |
+| |+--------------------+| |
+| ||:diagtext:`variable`|| |
+| |+--------------------+| |
++---------------------------------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------------------+
+
+
+-Wundefined-reinterpret-cast
+----------------------------
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`dereference of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that was reinterpret\_cast from type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has undefined behavior`|
++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`reinterpret\_cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has undefined behavior`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wundefined-var-template
+------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`instantiation of variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`required here, but no definition is available`|
++---------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wunevaluated-expression
+------------------------
+This diagnostic is enabled by default.
+
+Also controls `-Wpotentially-evaluated-expression`_.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`expression with side effects has no effect in an unevaluated context`|
++-----------------------------------------------------------------------------------------------------------+
+
+
+-Wunguarded-availability
+------------------------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+Also controls `-Wunguarded-availability-new`_.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is only available on` |nbsp| :placeholder:`B` |nbsp| :placeholder:`C` |nbsp| :diagtext:`or newer`|
++---------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wunguarded-availability-new
+----------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is only available on` |nbsp| :placeholder:`B` |nbsp| :placeholder:`C` |nbsp| :diagtext:`or newer`|
++---------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wunicode
+---------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`incomplete universal character name; treating as '\\' followed by identifier`|
++-------------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`\\`:placeholder:`A` |nbsp| :diagtext:`used with no following hex digits; treating as '\\' followed by identifier`|
++-------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`universal character name refers to a surrogate character`|
++-----------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`universal character names are only valid in C99 or C++; treating as '\\' followed by identifier`|
++--------------------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`universal character names are only valid in C99 or C++`|
++---------------------------------------------------------------------------------------------+
+
+
+-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.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`treating Unicode character as whitespace`|
++-------------------------------------------------------------------------------+
+
+
+-Wuninitialized
+---------------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+Also controls `-Wsometimes-uninitialized`_, `-Wstatic-self-init`_.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`base class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when used here to access` |nbsp| :placeholder:`B`|
++--------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when used here`|
++-----------------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`reference` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not yet bound to a value when used here`|
++--------------------------------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`block pointer variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when captured by block`|
++------------------------------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when used within its own initialization`|
++---------------------------------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`reference` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not yet bound to a value when used within its own initialization`|
++---------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------------------------------------------------------------------------+-------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when` |nbsp| |+-----------------------------+|
+| ||:diagtext:`used here` ||
+| |+-----------------------------+|
+| ||:diagtext:`captured by block`||
+| |+-----------------------------+|
++------------------------------------------------------------------------------------------------------------------------+-------------------------------+
+
+
+-Wunknown-argument
+------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------+
+|: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
+--------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unknown attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored`|
++-----------------------------------------------------------------------------------------------------------+
+
+
+-Wunknown-escape-sequence
+-------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unknown escape sequence '\\`:placeholder:`A`:diagtext:`'`|
++-----------------------------------------------------------------------------------------------+
+
+
+-Wunknown-pragmas
+-----------------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`expected 'ON' or 'OFF' or 'DEFAULT' in pragma`|
++------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`expected end of directive in pragma`|
++--------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unknown pragma in STDC namespace`|
++-----------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`pragma diagnostic pop could not pop, no matching push`|
++--------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`pragma diagnostic expected 'error', 'warning', 'ignored', 'fatal', 'push', or 'pop'`|
++--------------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`pragma diagnostic expected option name (e.g. "-Wundef")`|
++----------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unexpected token in pragma diagnostic`|
++----------------------------------------------------------------------------+
+
++-------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unknown pragma ignored`|
++-------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`pragma include\_alias expected '`:placeholder:`A`:diagtext:`'`|
++----------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`pragma include\_alias expected include filename`|
++--------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`angle-bracketed include <`:placeholder:`A`:diagtext:`> cannot be aliased to double-quoted include "`:placeholder:`B`:diagtext:`"`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`double-quoted include "`:placeholder:`A`:diagtext:`" cannot be aliased to angle-bracketed include <`:placeholder:`B`:diagtext:`>`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected '`:placeholder:`A`:diagtext:`'`|
++----------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected a warning number`|
++--------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`#pragma warning(push, level) requires a level between 0 and 4`|
++----------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected 'push', 'pop', 'default', 'disable', 'error', 'once', 'suppress', 1, 2, 3, or 4`|
++-----------------------------------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`pragma STDC FENV\_ACCESS ON is not supported, ignoring pragma`|
++----------------------------------------------------------------------------------------------------+
+
+
+-Wunknown-sanitizers
+--------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unknown sanitizer '`:placeholder:`A`:diagtext:`' ignored`|
++-----------------------------------------------------------------------------------------------+
+
+
+-Wunknown-warning-option
+------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unknown warning group '`:placeholder:`A`:diagtext:`', ignored`|
++----------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------+---------------------+---------------------------------------------------------+--------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unknown` |nbsp| |+-------------------+| |nbsp| :diagtext:`option '`:placeholder:`B`:diagtext:`'`|+------------------------------------------------------------+|
+| ||:diagtext:`warning`|| || ||
+| |+-------------------+| |+------------------------------------------------------------+|
+| ||:diagtext:`remark` || ||+----------------------------------------------------------+||
+| |+-------------------+| |||:diagtext:`; did you mean '`:placeholder:`D`:diagtext:`'?`|||
+| | | ||+----------------------------------------------------------+||
+| | | |+------------------------------------------------------------+|
++------------------------------------------------------+---------------------+---------------------------------------------------------+--------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unknown` |nbsp| :placeholder:`A` |nbsp| :diagtext:`warning specifier: '`:placeholder:`B`:diagtext:`'`|
++-------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wunnamed-type-template-args
+----------------------------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+Also controls `-Wc++98-compat-unnamed-type-template-args`_.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`template argument uses unnamed type`|
++--------------------------------------------------------------------------+
+
+
+-Wunneeded-internal-declaration
+-------------------------------
+**Diagnostic text:**
+
++---------------------------+----------------------+---------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is not needed and will not be emitted`|
+| ||:diagtext:`function`|| |
+| |+--------------------+| |
+| ||:diagtext:`variable`|| |
+| |+--------------------+| |
++---------------------------+----------------------+---------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'static' function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared in header file should be declared 'static inline'`|
++--------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wunneeded-member-function
+--------------------------
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`member function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not needed and will not be emitted`|
++---------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wunreachable-code
+------------------
+Also controls `-Wunreachable-code-loop-increment`_.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`code will never be executed`|
++------------------------------------------------------------------+
+
+
+-Wunreachable-code-aggressive
+-----------------------------
+Controls `-Wunreachable-code`_, `-Wunreachable-code-break`_, `-Wunreachable-code-return`_.
+
+
+-Wunreachable-code-break
+------------------------
+**Diagnostic text:**
+
++---------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'break' will never be executed`|
++---------------------------------------------------------------------+
+
+
+-Wunreachable-code-loop-increment
+---------------------------------
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`loop will run at most once (loop increment never executed)`|
++-------------------------------------------------------------------------------------------------+
+
+
+-Wunreachable-code-return
+-------------------------
+**Diagnostic text:**
+
++----------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`'return' will never be executed`|
++----------------------------------------------------------------------+
+
+
+-Wunsequenced
+-------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`multiple unsequenced modifications to` |nbsp| :placeholder:`A`|
++----------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unsequenced modification and access to` |nbsp| :placeholder:`A`|
++-----------------------------------------------------------------------------------------------------+
+
+
+-Wunsupported-abs
+-----------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mabs=2008' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
++-----------------------------------------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mabs=legacy' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
++-------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wunsupported-availability-guard
+--------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------+------------------------------------+--------------------------------------------------------------+------------------------------------+---------------------+
+|:warning:`warning:` |nbsp| |+----------------------------------+| |nbsp| :diagtext:`does not guard availability here; use if (`|+----------------------------------+|:diagtext:`) instead`|
+| ||:diagtext:`@available` || ||:diagtext:`@available` || |
+| |+----------------------------------+| |+----------------------------------+| |
+| ||:diagtext:`\_\_builtin\_available`|| ||:diagtext:`\_\_builtin\_available`|| |
+| |+----------------------------------+| |+----------------------------------+| |
++---------------------------+------------------------------------+--------------------------------------------------------------+------------------------------------+---------------------+
+
+
+-Wunsupported-cb
+----------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mcompact-branches=' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
++--------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wunsupported-dll-base-class-template
+-------------------------------------
+**Diagnostic text:**
+
++---------------------------------------------------------------------------+------------------------------------+------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`propagating dll attribute to` |nbsp| |+----------------------------------+| |nbsp| :diagtext:`base class template without dll attribute is not supported`|
+| ||:diagtext:`already instantiated` || |
+| |+----------------------------------+| |
+| ||:diagtext:`explicitly specialized`|| |
+| |+----------------------------------+| |
++---------------------------------------------------------------------------+------------------------------------+------------------------------------------------------------------------------+
+
+
+-Wunsupported-friend
+--------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`dependent nested name specifier '`:placeholder:`A`:diagtext:`' for friend template declaration is not supported; ignoring this friend declaration`|
++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`dependent nested name specifier '`:placeholder:`A`:diagtext:`' for friend class declaration is not supported; turning off access control for` |nbsp| :placeholder:`B`|
++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wunsupported-gpopt
+-------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+
+|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mgpopt' option as it cannot be used with` |nbsp| |+-----------------------------------------+|:diagtext:`-mabicalls`|
+| || || |
+| |+-----------------------------------------+| |
+| ||:diagtext:`the implicit usage of` |nbsp| || |
+| |+-----------------------------------------+| |
++--------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+
+
+
+-Wunsupported-nan
+-----------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mnan=2008' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
++-----------------------------------------------------------------------------------------------------------------------------------------------+
+
++-------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mnan=legacy' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
++-------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-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.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`target does not support 'protected' visibility; using 'default'`|
++------------------------------------------------------------------------------------------------------+
+
+
+-Wunusable-partial-specialization
+---------------------------------
+This diagnostic is an error by default, but the flag ``-Wno-unusable-partial-specialization`` can be used to disable the error.
+
+**Diagnostic text:**
+
++-----------------------+----------------------+--------------------------------------------------------------------+----------------------------------+------------------------------------------------------------------------------------------+
+|:error:`error:` |nbsp| |+--------------------+| |nbsp| :diagtext:`template partial specialization contains` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`that cannot be deduced; this partial specialization will never be used`|
+| ||:diagtext:`class` || ||:diagtext:`a template parameter`|| |
+| |+--------------------+| |+--------------------------------+| |
+| ||:diagtext:`variable`|| ||:diagtext:`template parameters` || |
+| |+--------------------+| |+--------------------------------+| |
++-----------------------+----------------------+--------------------------------------------------------------------+----------------------------------+------------------------------------------------------------------------------------------+
+
+
+-Wunused
+--------
+Some of the diagnostics controlled by this flag are enabled by default.
+
+Controls `-Wunused-argument`_, `-Wunused-function`_, `-Wunused-label`_, `-Wunused-lambda-capture`_, `-Wunused-local-typedef`_, `-Wunused-private-field`_, `-Wunused-property-ivar`_, `-Wunused-value`_, `-Wunused-variable`_.
+
+
+-Wunused-argument
+-----------------
+This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
+
+-Wunused-command-line-argument
+------------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`argument '`:placeholder:`A`:diagtext:`' requires profile-guided optimization information`|
++-------------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`joined argument expects additional value: '`:placeholder:`A`:diagtext:`'`|
++---------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: '`:placeholder:`B`:diagtext:`' input unused`|+--------------------------------------------------------------------+|
+| ||+------------------------------------------------------------------+||
+| ||| |nbsp| :diagtext:`when '`:placeholder:`D`:diagtext:`' is present`|||
+| ||+------------------------------------------------------------------+||
+| |+--------------------------------------------------------------------+|
+| || ||
+| |+--------------------------------------------------------------------+|
++----------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: '`:placeholder:`B`:diagtext:`' input unused in cpp mode`|
++----------------------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: previously preprocessed input`|+---------------------------------------------------------------------------+|
+| ||+-------------------------------------------------------------------------+||
+| ||| |nbsp| :diagtext:`unused when '`:placeholder:`C`:diagtext:`' is present`|||
+| ||+-------------------------------------------------------------------------+||
+| |+---------------------------------------------------------------------------+|
+| || ||
+| |+---------------------------------------------------------------------------+|
++--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------+
+
++---------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`argument unused during compilation: '`:placeholder:`A`:diagtext:`'`|
++---------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`the flag '`:placeholder:`A`:diagtext:`' has been deprecated and will be ignored`|
++----------------------------------------------------------------------------------------------------------------------+
+
+
+-Wunused-comparison
+-------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++---------------------------+------------------------+--------------------------------------------+
+|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`comparison result unused`|
+| ||:diagtext:`equality` || |
+| |+----------------------+| |
+| ||:diagtext:`inequality`|| |
+| |+----------------------+| |
+| ||:diagtext:`relational`|| |
+| |+----------------------+| |
+| ||:diagtext:`three-way` || |
+| |+----------------------+| |
++---------------------------+------------------------+--------------------------------------------+
+
+
+-Wunused-const-variable
+-----------------------
+**Diagnostic text:**
+
++------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unused variable` |nbsp| :placeholder:`A`|
++------------------------------------------------------------------------------+
+
+
+-Wunused-exception-parameter
+----------------------------
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unused exception parameter` |nbsp| :placeholder:`A`|
++-----------------------------------------------------------------------------------------+
+
+
+-Wunused-function
+-----------------
+Also controls `-Wunneeded-internal-declaration`_.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unused function` |nbsp| :placeholder:`A`|
++------------------------------------------------------------------------------+
+
+
+-Wunused-getter-return-value
+----------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`property access result unused - getters should not be used for side effects`|
++------------------------------------------------------------------------------------------------------------------+
+
+
+-Wunused-label
+--------------
+**Diagnostic text:**
+
++---------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unused label` |nbsp| :placeholder:`A`|
++---------------------------------------------------------------------------+
+
+
+-Wunused-lambda-capture
+-----------------------
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------------------------+--------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`lambda capture` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not` |nbsp| |+------------------------------------------------+|
+| ||:diagtext:`used` ||
+| |+------------------------------------------------+|
+| ||:diagtext:`required to be captured for this use`||
+| |+------------------------------------------------+|
++---------------------------------------------------------------------------------------------------------------+--------------------------------------------------+
+
+
+-Wunused-local-typedef
+----------------------
+**Diagnostic text:**
+
++-----------------------------------------------------+------------------------+------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unused` |nbsp| |+----------------------+| |nbsp| :placeholder:`B`|
+| ||:diagtext:`typedef` || |
+| |+----------------------+| |
+| ||:diagtext:`type alias`|| |
+| |+----------------------+| |
++-----------------------------------------------------+------------------------+------------------------+
+
+
+-Wunused-local-typedefs
+-----------------------
+Synonym for `-Wunused-local-typedef`_.
+
+
+-Wunused-macros
+---------------
+**Diagnostic text:**
+
++--------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`macro is not used`|
++--------------------------------------------------------+
+
+
+-Wunused-member-function
+------------------------
+Also controls `-Wunneeded-member-function`_.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unused member function` |nbsp| :placeholder:`A`|
++-------------------------------------------------------------------------------------+
+
+
+-Wunused-parameter
+------------------
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unused parameter` |nbsp| :placeholder:`A`|
++-------------------------------------------------------------------------------+
+
+
+-Wunused-private-field
+----------------------
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`private field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not used`|
++-----------------------------------------------------------------------------------------------------------+
+
+
+-Wunused-property-ivar
+----------------------
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`ivar` |nbsp| :placeholder:`A` |nbsp| :diagtext:`which backs the property is not referenced in this property's accessor`|
++-------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wunused-result
+---------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`ignoring return value of function declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute`|
++-------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+-Wunused-template
+-----------------
+Also controls `-Wunneeded-internal-declaration`_.
+
+**Diagnostic text:**
+
++-----------------------------------------------------+----------------------+----------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unused` |nbsp| |+--------------------+| |nbsp| :diagtext:`template` |nbsp| :placeholder:`B`|
+| ||:diagtext:`function`|| |
+| |+--------------------+| |
+| ||:diagtext:`variable`|| |
+| |+--------------------+| |
++-----------------------------------------------------+----------------------+----------------------------------------------------+
+
+
+-Wunused-value
+--------------
+This diagnostic is enabled by default.
+
+Also controls `-Wunevaluated-expression`_, `-Wunused-comparison`_, `-Wunused-result`_.
+
+**Diagnostic text:**
+
++-------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`ignoring return value of function declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute`|
++-------------------------------------------------------------------------------------------------------------------------------------------+
+
++----------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`container access result unused - container access should not be used for side effects`|
++----------------------------------------------------------------------------------------------------------------------------+
+
++---------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`expression result unused`|
++---------------------------------------------------------------+
+
++-----------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`expression result unused; should this cast be to 'void'?`|
++-----------------------------------------------------------------------------------------------+
+
+
+-Wunused-variable
+-----------------
+Also controls `-Wunused-const-variable`_.
+
+**Diagnostic text:**
+
++------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`unused variable` |nbsp| :placeholder:`A`|
++------------------------------------------------------------------------------+
+
+
+-Wunused-volatile-lvalue
+------------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++----------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`expression result unused; assign into a variable to force a volatile load`|
++----------------------------------------------------------------------------------------------------------------+
+
+
+-Wused-but-marked-unused
+------------------------
+**Diagnostic text:**
+
++---------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`was marked unused but was used`|
++---------------------------------------------------------------------------------------------+
+
+
+-Wuser-defined-literals
+-----------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++--------------------------------------------------------------------------------------------------------+----------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`user-defined literal suffixes not starting with '\_' are reserved`|+--------------------------------------------------+|
+| ||:diagtext:`; no literal will invoke this operator`||
+| |+--------------------------------------------------+|
+| || ||
+| |+--------------------------------------------------+|
++--------------------------------------------------------------------------------------------------------+----------------------------------------------------+
+
+
+-Wuser-defined-warnings
+-----------------------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
+The text of this diagnostic is not controlled by Clang.
+
+
+-Wvarargs
+---------
+This diagnostic is enabled by default.
+
+**Diagnostic text:**
+
++-----------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`second argument to 'va\_start' is not the last named parameter`|
++-----------------------------------------------------------------------------------------------------+
+
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`second argument to 'va\_arg' is of promotable type` |nbsp| :placeholder:`A`:diagtext:`; this va\_arg has undefined behavior because arguments will be promoted to` |nbsp| :placeholder:`B`|
++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
++------------------------------------------------------+-----------------------------------------------------------------+---------------------------------------------------------+
+|:warning:`warning:` |nbsp| :diagtext:`passing` |nbsp| |+---------------------------------------------------------------+| |nbsp| :diagtext:`to 'va\_start' has undefined behavior`|
+| ||:diagtext:`an object that undergoes default argument promotion`|| |
+| |+---------------------------------------------------------------+| |
+| ||:diagtext:`an object of reference type` || |
+| |+---------------------------------------------------------------+| |
+| ||:diagtext:`a parameter declared with the 'register' keyword` || |
+| |+---------------------------------------------------------------+| |
++------------------------------------------------------+-----------------------------------------------------------------+---------------------------------------------------------+
[... 182 lines stripped ...]
More information about the llvm-commits
mailing list