| .. | 
 |   ------------------------------------------------------------------- | 
 |   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-array-temporary | 
 | ---------------------------- | 
 | This diagnostic is enabled by default. | 
 |  | 
 | **Diagnostic text:** | 
 |  | 
 | +---------------------------------------------------------------------------------------------------------------------------------------------+ | 
 | |:warning:`warning:` |nbsp| :diagtext:`pointer is initialized by a temporary array, which will be destroyed at the end of the full-expression`| | 
 | +---------------------------------------------------------------------------------------------------------------------------------------------+ | 
 |  | 
 |  | 
 | -Waddress-of-packed-member | 
 | -------------------------- | 
 | This diagnostic is enabled by default. | 
 |  | 
 | **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. | 
 |  | 
 | -Waligned-allocation-unavailable | 
 | -------------------------------- | 
 | This diagnostic is an error by default, but the flag ``-Wno-aligned-allocation-unavailable`` can be used to disable the error. | 
 |  | 
 | **Diagnostic text:** | 
 |  | 
 | +--------------------------------------------------+--------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 
 | |:error:`error:` |nbsp| :diagtext:`aligned` |nbsp| |+------------------------+| |nbsp| :diagtext:`function of type '`:placeholder:`B`:diagtext:`' is only available on` |nbsp| :placeholder:`C` |nbsp| :placeholder:`D` |nbsp| :diagtext:`or newer`| | 
 | |                                                  ||:diagtext:`allocation`  ||                                                                                                                                                                    | | 
 | |                                                  |+------------------------+|                                                                                                                                                                    | | 
 | |                                                  ||:diagtext:`deallocation`||                                                                                                                                                                    | | 
 | |                                                  |+------------------------+|                                                                                                                                                                    | | 
 | +--------------------------------------------------+--------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 
 |  | 
 |  | 
 | -Wall | 
 | ----- | 
 | Some of the diagnostics controlled by this flag are enabled by default. | 
 |  | 
 | 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`| | 
 | +-----------------------------------------------------------------------------------------------------------------------------+ | 
 |  | 
 |  | 
 | -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`| | 
 | +-------------------------------------------------------------------------------------------------------------------+ | 
 |  | 
 |  | 
 | -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:`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:`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`            ||                                                                                                                                          | | 
 | |                                                                    |+---------------------------------------+|                                                                                                                                          | | 
 | +--------------------------------------------------------------------+-----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+ | 
 |  | 
 |  | 
 | -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:`first declaration of` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`specialization of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`outside namespace` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is a C++11 extension`| | 
 | |                                                                   ||:diagtext:`class template`           ||                                                                                                                                                                  | | 
 | |                                                                   |+-------------------------------------+|                                                                                                                                                                  | | 
 | |                                                                   ||:diagtext:`class template partial`   ||                                                                                                                                                                  | | 
 | |                                                                   |+-------------------------------------+|                                                                                                                                                                  | | 
 | |                                                                   ||:diagtext:`variable template`        ||                                                                                                                                                                  | | 
 | |                                                                   |+-------------------------------------+|                                                                                                                                                                  | | 
 | |                                                                   ||:diagtext:`variable template partial`||                                                                                                                                                                  | | 
 | |                                                                   |+-------------------------------------+|                                                                                                                                                                  | | 
 | |                                                                   ||:diagtext:`function template`        ||                                                                                                                                                                  | | 
 | |                                                                   |+-------------------------------------+|                                                                                                                                                                  | | 
 | |                                                                   ||:diagtext:`member function`          ||                                                                                                                                                                  | | 
 | |                                                                   |+-------------------------------------+|                                                                                                                                                                  | | 
 | |                                                                   ||:diagtext:`static data member`       ||                                                                                                                                                                  | | 
 | |                                                                   |+-------------------------------------+|                                                                                                                                                                  | | 
 | |                                                                   ||:diagtext:`member class`             ||                                                                                                                                                                  | | 
 | |                                                                   |+-------------------------------------+|                                                                                                                                                                  | | 
 | |                                                                   ||:diagtext:`member enumeration`       ||                                                                                                                                                                  | | 
 | |                                                                   |+-------------------------------------+|                                                                                                                                                                  | | 
 | +-------------------------------------------------------------------+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 
 |  | 
 | +------------------------------------------------------------------------------+ | 
 | |:warning:`warning:` |nbsp| :diagtext:`'typename' occurs outside of a template`| | 
 | +------------------------------------------------------------------------------+ | 
 |  | 
 | +------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------+ | 
 | |: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:`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 | 
 | -------------- | 
 | **Diagnostic text:** | 
 |  | 
 | +-------------------------------------------------------------------------------------------+ | 
 | |: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`| | 
 | +-----------------------------------------------------------------------------------------------------------------------------------------------+ | 
 |  | 
 |  | 
 | -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:`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| |+-------------------------------------+| |nbsp| :diagtext:`specialization of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`outside namespace` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is incompatible with C++98`| | 
 | |                           ||:diagtext:`class template`           ||                                                                                                                                                                        | | 
 | |                           |+-------------------------------------+|                                                                                                                                                                        | | 
 | |                           ||:diagtext:`class template partial`   ||                                                                                                                                                                        | | 
 | |                           |+-------------------------------------+|                                                                                                                                                                        | | 
 | |                           ||:diagtext:`variable template`        ||                                                                                                                                                                        | | 
 | |                           |+-------------------------------------+|                                                                                                                                                                        | | 
 | |                           ||:diagtext:`variable template partial`||                                                                                                                                                                        | | 
 | |                           |+-------------------------------------+|                                                                                                                                                                        | | 
 | |                           ||:diagtext:`function template`        ||                                                                                                                                                                        | | 
 | |                           |+-------------------------------------+|                                                                                                                                                                        | | 
 | |                           ||:diagtext:`member function`          ||                                                                                                                                                                        | | 
 | |                           |+-------------------------------------+|                                                                                                                                                                        | | 
 | |                           ||:diagtext:`static data member`       ||                                                                                                                                                                        | | 
 | |                           |+-------------------------------------+|                                                                                                                                                                        | | 
 | |                           ||:diagtext:`member class`             ||                                                                                                                                                                        | | 
 | |                           |+-------------------------------------+|                                                                                                                                                                        | | 
 | |                           ||:diagtext:`member enumeration`       ||                                                                                                                                                                        | | 
 | |                           |+-------------------------------------+|                                                                                                                                                                        | | 
 | +---------------------------+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 
 |  | 
 | +----------------------------------------------------------------------------------------+ | 
 | |:warning:`warning:` |nbsp| :diagtext:`trailing return types are incompatible with C++98`| | 
 | +----------------------------------------------------------------------------------------+ | 
 |  | 
 | +---------------------------------------------------------------------------------------------------------------+ | 
 | |: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:`throwing object`            ||                                                                                                                            ||:diagtext:`invoke a deleted constructor`      ||                            | | 
 | |                           |+---------------------------------------+|                                                                                                                            |+----------------------------------------------+|                            | | 
 | |                           ||:diagtext:`copying member subobject`   ||                                                                                                                            |                                                |                            | | 
 | |                           |+---------------------------------------+|                                                                                                                            |                                                |                            | | 
 | |                           ||:diagtext:`copying array element`      ||                                                                                                                            |                                                |                            | | 
 | |                           |+---------------------------------------+|                                                                                                                            |                                                |                            | | 
 | |                           ||:diagtext:`allocating object`          ||                                                                                                                            |                                                |                            | | 
 | |                           |+---------------------------------------+|                                                                                                                            |                                                |                            | | 
 | |                           ||:diagtext:`copying temporary`          ||                                                                                                                            |                                                |                            | | 
 | |                           |+---------------------------------------+|                                                                                                                            |                                                |                            | | 
 | |                           ||:diagtext:`initializing base subobject`||                                                                                                                            |                                                |                            | | 
 | |                           |+---------------------------------------+|                                                                                                                            |                                                |                            | | 
 | |                           ||:diagtext:`initializing vector element`||                                                                                                                            |                                                |                            | | 
 | |                           |+---------------------------------------+|                                                                                                                            |                                                |                            | | 
 | +---------------------------+-----------------------------------------+----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------+----------------------------+ | 
 |  | 
 |  | 
 | -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`_. | 
 |  | 
 | **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:`extra ';' outside of a function 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`| | 
 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 
 |  | 
 |  | 
 | -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`| | 
 | +----------------------------------------------------------------------------------------------------------------------------------------------------+ | 
 |  | 
 |  | 
 | -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 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-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 parameter` |nbsp| :placeholder:`B`| | 
 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 
 |  | 
 | +----------------------------------------------------------------+----------------------------------+----------------------------------------------------------------------------------+ | 
 | |:warning:`warning:` |nbsp| :diagtext:`binding reference` |nbsp| |+--------------------------------+|:diagtext:`member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to a temporary value`| | 
 | |                                                                ||                                ||                                                                                  | | 
 | |                                                                |+--------------------------------+|                                                                                  | | 
 | |                                                                ||:diagtext:`subobject of` |nbsp| ||                                                                                  | | 
 | |                                                                |+--------------------------------+|                                                                                  | | 
 | +----------------------------------------------------------------+----------------------------------+----------------------------------------------------------------------------------+ | 
 |  | 
 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 
 | |:warning:`warning:` |nbsp| :diagtext:`initializing pointer member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with the stack address of parameter` |nbsp| :placeholder:`B`| | 
 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 
 |  | 
 |  | 
 | -Wdangling-initializer-list | 
 | --------------------------- | 
 | This diagnostic is enabled by default. | 
 |  | 
 | **Diagnostic text:** | 
 |  | 
 | +-----------------------------------------------------------------------------------------------------------------+---------------------------------+ | 
 | |:warning:`warning:` |nbsp| :diagtext:`array backing the initializer list will be destroyed at the end of` |nbsp| |+-------------------------------+| | 
 | |                                                                                                                 ||:diagtext:`the full-expression`|| | 
 | |                                                                                                                 |+-------------------------------+| | 
 | |                                                                                                                 ||:diagtext:`the constructor`    || | 
 | |                                                                                                                 |+-------------------------------+| | 
 | +-----------------------------------------------------------------------------------------------------------------+---------------------------------+ | 
 |  | 
 |  | 
 | -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-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-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:`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`| | 
 | +-------------------------------------------------------------------------------------------------+ | 
 |  | 
 |  | 
 | -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`| | 
 | +-------------------------------------------------------------------------------------------------------------------------------------+ | 
 |  | 
 |  | 
 | -Wextended-offsetof | 
 | ------------------- | 
 | **Diagnostic text:** | 
 |  | 
 | +--------------------------------------------------------------------------------------+ | 
 | |:warning:`warning:` |nbsp| :diagtext:`using extended field designator is an extension`| | 
 | +--------------------------------------------------------------------------------------+ | 
 |  | 
 |  | 
 | -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`_. | 
 |  | 
 | **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 of out of range value from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`changes value from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`| | 
 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 
 |  | 
 |  | 
 | -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| :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`| | 
 | +--------------------------------------------------------------------------------------------------------------------------------------+ | 
 |  | 
 |  | 
 | -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`| | 
 | +--------------------------------------------------------------------------------------------------------+ | 
 |  | 
 |  | 
 | -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:`'`: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| |+-----------------+| |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 global variables`                                                                      || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`functions, variables, and Objective-C interfaces`                                                    || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`functions and methods`                                                                               || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`parameters`                                                                                          || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`functions, methods and blocks`                                                                       || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`functions, methods, and classes`                                                                     || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`functions, methods, and parameters`                                                                  || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`functions, methods, and global variables`                                                            || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`classes`                                                                                             || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`enums`                                                                                               || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`variables`                                                                                           || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`methods`                                                                                             || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`fields and global variables`                                                                         || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`structs`                                                                                             || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`parameters and typedefs`                                                                             || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`variables and typedefs`                                                                              || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`thread-local variables`                                                                              || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`variables and fields`                                                                                || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`variables, data members and tag types`                                                               || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`types and namespaces`                                                                                || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`Objective-C interfaces`                                                                              || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`methods and properties`                                                                              || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`functions, methods, and properties`                                                                  || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`struct or union`                                                                                     || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`struct, union or class`                                                                              || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`types`                                                                                               || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`Objective-C instance methods`                                                                        || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`init methods of interface or class extension declarations`                                           || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`variables, functions and classes`                                                                    || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`functions, variables, classes, and Objective-C interfaces`                                           || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`Objective-C protocols`                                                                               || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`variables with static or thread storage duration`                                                    || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`functions, methods, properties, and global variables`                                                || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`structs, unions, and typedefs`                                                                       || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`structs and typedefs`                                                                                || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`interface or protocol declarations`                                                                  || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`kernel functions`                                                                                    || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`non-K&R-style functions`                                                                             || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`variables, enums, fields and typedefs`                                                               || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`functions, methods, enums, and classes`                                                              || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`structs, classes, variables, functions, and inline namespaces`                                       || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`variables, functions, methods, types, enumerations, enumerators, labels, and non-static data members`|| | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`classes and enumerations`                                                                            || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | |                                                                                                ||:diagtext:`named declarations`                                                                                  || | 
 | |                                                                                                |+----------------------------------------------------------------------------------------------------------------+| | 
 | +------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------+ | 
 |  | 
 | +--------------------------------------------------------------------------------------------------------------------------------------------------------+ | 
 | |:warning:`warning:` |nbsp| :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| :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| |+---------------------+| |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| :diagtext:`ignoring` |nbsp| |+-----------------------+|+--------------------------------+| |nbsp| :diagtext:`'`:placeholder:`C`:diagtext:`' in the target attribute string`| | 
 | |                                                       ||: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-pragmas | 
 | ----------------- | 
 | This diagnostic is enabled by default. | 
 |  | 
 | Also controls `-Wignored-pragma-intrinsic`_. | 
 |  | 
 | **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 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:`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:`unknown action '`:placeholder:`B`:diagtext:`' for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`| | 
 | +------------------------------------------------------------------------------------------------------------------------------------------------+ | 
 |  | 
 | +----------------------------------------------------------------------------------------------+ | 
 | |: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`| | 
 | +---------------------------------------------------------------------------------------------------------------------------------------------+ | 
 |  | 
 |  | 
 | -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-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`| | 
 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 
 |  | 
 |  | 
 | -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`||                                                      | | 
 | |                                                                |+-------------------------------------+|                                                      | | 
 | +----------------------------------------------------------------+---------------------------------------+------------------------------------------------------+ | 
 |  | 
 |  | 
 | -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-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:`explicit specialization of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`within class scope is a Microsoft extension`| | 
 | +--------------------------------------------------------------------------------------------------------------------------------------------------------+ | 
 |  | 
 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 
 | |:warning:`warning:` |nbsp| :diagtext:`using the undeclared type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as a default template argument is a Microsoft extension`| | 
 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 
 |  | 
 | +-----------------------------------------------------------------------------------------------------------------------------+ | 
 | |:warning:`warning:` |nbsp| :diagtext:`non-type template argument containing a dereference operation is a Microsoft extension`| | 
 | +-----------------------------------------------------------------------------------------------------------------------------+ | 
 |  | 
 | +---------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 
 | |:warning:`warning:` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`specialization of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`outside namespace enclosing` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is a Microsoft extension`| | 
 | |                           ||:diagtext:`class template`           ||                                                                                                                                                                                | | 
 | |                           |+-------------------------------------+|                                                                                                                                                                                | | 
 | |                           ||:diagtext:`class template partial`   ||                                                                                                                                                                                | | 
 | |                           |+-------------------------------------+|                                                                                                                                                                                | | 
 | |                           ||:diagtext:`variable template`        ||                                                                                                                                                                                | | 
 | |                           |+-------------------------------------+|                                                                                                                                                                                | | 
 | |                           ||:diagtext:`variable template partial`||                                                                                                                                                                                | | 
 | |                           |+-------------------------------------+|                                                                                                                                                                                | | 
 | |                           ||:diagtext:`function template`        ||                                                                                                                                                                                | | 
 | |                           |+-------------------------------------+|                                                                                                                                                                                | | 
 | |                           ||:diagtext:`member function`          ||                                                                                                                                                                                | | 
 | |                           |+-------------------------------------+|                                                                                                                                                                                | | 
 | |                           ||:diagtext:`static data member`       ||                                                                                                                                                                                | | 
 | |                           |+-------------------------------------+|                                                                                                                                                                                | | 
 | |                           ||:diagtext:`member class`             ||                                                                                                                                                                                | | 
 | |                           |+-------------------------------------+|                                                                                                                                                                                | | 
 | |                           ||:diagtext:`member enumeration`       ||                                                                                                                                                                                | | 
 | |                           |+-------------------------------------+|                                                                                                                                                                                | | 
 | +---------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 
 |  | 
 | +------------------------------------------------------------------------------------------------------------------------------------------------+ | 
 | |:warning:`warning:` |nbsp| :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`_, `-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`| | 
 | +---------------------------------------------------------------------------------------------------------------------+ | 
 |  | 
 |  | 
 | -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 '`:placeholder:`A`:diagtext:`' to '`:placeholder:`B`: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:`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:`option '`:placeholder:`A`:diagtext:`' was ignored by the PS4 toolchain, using '-fPIC'`| | 
 | +----------------------------------------------------------------------------------------------------------------------------+ | 
 |  | 
 | +-------------------------------------------------------------------------------------------------------------------------------------------+ | 
 | |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mabicalls' option as it cannot be used with non position-independent code and the N64 ABI`| | 
 | +-------------------------------------------------------------------------------------------------------------------------------------------+ | 
 |  | 
 | +-------------------------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+ | 
 | |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mlong-calls' option as it is not currently supported with` |nbsp| |+-----------------------------------------+|:diagtext:`-mabicalls`| | 
 | |                                                                                                                   ||                                         ||                      | | 
 | |                                                                                                                   |+-----------------------------------------+|                      | | 
 | |                                                                                                                   ||:diagtext:`the implicit usage of` |nbsp| ||                      | | 
 | |                                                                                                                   |+-----------------------------------------+|                      | | 
 | +-------------------------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+ | 
 |  | 
 |  | 
 | -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-init | 
 | --------------- | 
 | Synonym for `-Winitializer-overrides`_. | 
 |  | 
 |  | 
 | -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`_, `-Wextended-offsetof`_, `-Wflexible-array-extensions`_, `-Wformat-pedantic`_, `-Wfour-char-constants`_, `-Wgnu-anonymous-struct`_, `-Wgnu-auto-type`_, `-Wgnu-binary-literal`_, `-Wgnu-case-range`_, `-Wgnu-complex-integer`_, `-Wgnu-compound-literal-initializer`_, `-Wgnu-conditional-omitted-operand`_, `-Wgnu-empty-initializer`_, `-Wgnu-empty-struct`_, `-Wgnu-flexible-array-initializer`_, `-Wgnu-flexible-array-union-member`_, `-Wgnu-folding-constant`_, `-Wgnu-imaginary-constant`_, `-Wgnu-include-next`_, `-Wgnu-label-as-value`_, `-Wgnu-redeclared-enum`_, `-Wgnu-statement-expression`_, `-Wgnu-union-cast`_, `-Wgnu-zero-line-directive`_, `-Wgnu-zero-variadic-macro-arguments`_, `-Wimport-preprocessor-directive-pedantic`_, `-Wkeyword-macro`_, `-Wlanguage-extension-token`_, `-Wlong-long`_, `-Wmicrosoft-charize`_, `-Wmicrosoft-comment-paste`_, `-Wmicrosoft-cpp-macro`_, `-Wmicrosoft-end-of-file`_, `-Wmicrosoft-enum-value`_, `-Wmicrosoft-fixed-enum`_, `-Wmicrosoft-flexible-array`_, `-Wmicrosoft-redeclare-static`_, `-Wnested-anon-types`_, `-Wnullability-extension`_, `-Woverlength-strings`_, `-Wretained-language-linkage`_, `-Wundefined-internal-type`_, `-Wvla-extension`_, `-Wzero-length-array`_. | 
 |  | 
 | **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:`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:`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:`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 alignment 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:`top-level module '`:placeholder:`A`:diagtext:`' in private module map, expected a submodule of '`:placeholder:`B`:diagtext:`'`| | 
 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 
 |  | 
 | +----------------------------------------------------------------------------------------------------------------------------------+ | 
 | |:warning:`warning:` |nbsp| :diagtext:`module '`:placeholder:`A`:diagtext:`' already re-exported as '`:placeholder:`B`: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`| | 
 | +---------------------------------------------------------------------------------------------------------+ | 
 |  | 
 |  | 
 | -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 local variable` |nbsp| :placeholder:`B` |nbsp| :diagtext:`returned`| | 
 | |                           ||:diagtext:`address of`  ||                                                                                                                   | | 
 | |                           |+------------------------+|                                                                                                                   | | 
 | |                           ||:diagtext:`reference to`||                                                                                                                   | | 
 | |                           |+------------------------+|                                                                                                                   | | 
 | +---------------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------+ | 
 |  | 
 |  | 
 | -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`| | 
 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 
 |  | 
 |  | 
 | -Wrtti-for-exceptions | 
 | --------------------- | 
 | This diagnostic is enabled by default. | 
 |  | 
 | **Diagnostic text:** | 
 |  | 
 | +--------------------------------------------------------------------------------------+ | 
 | |:warning:`warning:` |nbsp| :diagtext:`implicitly enabling rtti for exception handling`| | 
 | +--------------------------------------------------------------------------------------+ | 
 |  | 
 |  | 
 | -Rsanitize-address | 
 | ------------------ | 
 | **Diagnostic text:** | 
 |  | 
 | +--------------------------------------------------------------------------------------------------------+ | 
 | |: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:`section does not match previous declaration`| | 
 | +----------------------------------------------------------------------------------+ | 
 |  | 
 |  | 
 | -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`_. | 
 |  | 
 | **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-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 '`:placeholder:`A`:diagtext:`' of '`:placeholder:`B`:diagtext:`' shadows member inherited from type '`:placeholder:`C`:diagtext:`'`| | 
 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 
 |  | 
 |  | 
 | -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`| | 
 | +----------------------------------------------------------------------------------------------------------------------------------------------------+ | 
 |  | 
 |  | 
 | -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`| | 
 | +--------------------------------------------------------------------------------------------------------------------------------+ | 
 |  | 
 |  | 
 | -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`|                             || | 
 | |                           ||+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+                             || | 
 | |                           |+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| | 
 | |                           ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|| | 
 | |                           |||:diagtext:`:`:placeholder:`A` |nbsp| :diagtext:`enumeration values not handled in switch:` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`...`||| | 
 | |                           ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|| | 
 | |                           |+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| | 
 | +---------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 
 |  | 
 | +------------------------------------------------------------------------------------------------+ | 
 | |:warning:`warning:` |nbsp| :diagtext:`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`|                             || | 
 | |                           ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+                             || | 
 | |                           |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| | 
 | |                           ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|| | 
 | |                           |||:diagtext:`:`: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:`false`     || | 
 | |                           |+-------------------------+|                                                  |+----------------------+| | 
 | |                           ||:diagtext:`array` |nbsp| ||                                                  ||:diagtext:`true`      || | 
 | |                           |+-------------------------+|                                                  |+----------------------+| | 
 | |                           |                           |                                                  ||:diagtext:`a constant`|| | 
 | |                           |                           |                                                  |+----------------------+| | 
 | +---------------------------+---------------------------+--------------------------------------------------+------------------------+ | 
 |  | 
 | +-------------------------------------------------------------------------------------+-------------------+ | 
 | |: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`_, `-Wtautological-unsigned-enum-zero-compare`_, `-Wtautological-unsigned-zero-compare`_. | 
 |  | 
 | **Diagnostic text:** | 
 |  | 
 | +---------------------------------------------------------+------------------+--------------------------------+------------------+-------------------------------------+-------------------+ | 
 | |:warning:`warning:` |nbsp| :diagtext:`comparison` |nbsp| |+----------------+| |nbsp| :placeholder:`C` |nbsp| |+----------------+| |nbsp| :diagtext:`is always` |nbsp| |+-----------------+| | 
 | |                                                         ||:placeholder:`D`||                                ||:placeholder:`B`||                                     ||:diagtext:`false`|| | 
 | |                                                         |+----------------+|                                |+----------------+|                                     |+-----------------+| | 
 | |                                                         ||:placeholder:`B`||                                ||:placeholder:`D`||                                     ||:diagtext:`true` || | 
 | |                                                         |+----------------+|                                |+----------------+|                                     |+-----------------+| | 
 | +---------------------------------------------------------+------------------+--------------------------------+------------------+-------------------------------------+-------------------+ | 
 |  | 
 |  | 
 | -Wtautological-constant-out-of-range-compare | 
 | -------------------------------------------- | 
 | This diagnostic is enabled by default. | 
 |  | 
 | **Diagnostic text:** | 
 |  | 
 | +------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-------------------------------------+-------------------+ | 
 | |:warning:`warning:` |nbsp| :diagtext:`comparison of` |nbsp| |+----------------------------------------------+| |nbsp| :diagtext:`with` |nbsp| |+--------------------------------------------------------+| |nbsp| :diagtext:`is always` |nbsp| |+-----------------+| | 
 | |                                                            ||+--------------------------------------------+||                                ||+------------------------------------------------------+||                                     ||:diagtext:`false`|| | 
 | |                                                            |||:diagtext:`constant` |nbsp| :placeholder:`A`|||                                |||:diagtext:`expression of type` |nbsp| :placeholder:`C`|||                                     |+-----------------+| | 
 | |                                                            ||+--------------------------------------------+||                                ||+------------------------------------------------------+||                                     ||:diagtext:`true` || | 
 | |                                                            |+----------------------------------------------+|                                |+--------------------------------------------------------+|                                     |+-----------------+| | 
 | |                                                            ||:diagtext:`true`                              ||                                ||:diagtext:`boolean expression`                          ||                                     |                   | | 
 | |                                                            |+----------------------------------------------+|                                |+--------------------------------------------------------+|                                     |                   | | 
 | |                                                            ||:diagtext:`false`                             ||                                |                                                          |                                     |                   | | 
 | |                                                            |+----------------------------------------------+|                                |                                                          |                                     |                   | | 
 | +------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-------------------------------------+-------------------+ | 
 |  | 
 |  | 
 | -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-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 | 
 | ----------------------------------------- | 
 | This diagnostic is enabled by default. | 
 |  | 
 | **Diagnostic text:** | 
 |  | 
 | +------------------------------------------------------------+--------------------------------------+--------------------------------+--------------------------------------+-------------------------------------+-------------------+ | 
 | |:warning:`warning:` |nbsp| :diagtext:`comparison of` |nbsp| |+------------------------------------+| |nbsp| :placeholder:`C` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`is always` |nbsp| |+-----------------+| | 
 | |                                                            ||:placeholder:`D`                    ||                                ||:diagtext:`unsigned enum expression`||                                     ||:diagtext:`false`|| | 
 | |                                                            |+------------------------------------+|                                |+------------------------------------+|                                     |+-----------------+| | 
 | |                                                            ||:diagtext:`unsigned enum expression`||                                ||:placeholder:`D`                    ||                                     ||:diagtext:`true` || | 
 | |                                                            |+------------------------------------+|                                |+------------------------------------+|                                     |+-----------------+| | 
 | +------------------------------------------------------------+--------------------------------------+--------------------------------+--------------------------------------+-------------------------------------+-------------------+ | 
 |  | 
 |  | 
 | -Wtautological-unsigned-zero-compare | 
 | ------------------------------------ | 
 | This diagnostic is enabled by default. | 
 |  | 
 | **Diagnostic text:** | 
 |  | 
 | +------------------------------------------------------------+---------------------------------+--------------------------------+---------------------------------+-------------------------------------+-------------------+ | 
 | |:warning:`warning:` |nbsp| :diagtext:`comparison of` |nbsp| |+-------------------------------+| |nbsp| :placeholder:`C` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`is always` |nbsp| |+-----------------+| | 
 | |                                                            ||:placeholder:`D`               ||                                ||:diagtext:`unsigned expression`||                                     ||:diagtext:`false`|| | 
 | |                                                            |+-------------------------------+|                                |+-------------------------------+|                                     |+-----------------+| | 
 | |                                                            ||:diagtext:`unsigned expression`||                                ||:placeholder:`D`               ||                                     ||:diagtext:`true` || | 
 | |                                                            |+-------------------------------+|                                |+-------------------------------+|                                     |+-----------------+| | 
 | +------------------------------------------------------------+---------------------------------+--------------------------------+---------------------------------+-------------------------------------+-------------------+ | 
 |  | 
 |  | 
 | -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 '`:placeholder:`B`: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 '`:placeholder:`A`:diagtext:`' requires holding` |nbsp| |+---------------------------------+| | 
 | |                           ||:diagtext:`reading`||                                                                                                   ||:diagtext:`any mutex`            || | 
 | |                           |+-------------------+|                                                                                                   |+---------------------------------+| | 
 | |                           ||:diagtext:`writing`||                                                                                                   ||:diagtext:`any mutex exclusively`|| | 
 | |                           |+-------------------+|                                                                                                   |+---------------------------------+| | 
 | +---------------------------+---------------------+---------------------------------------------------------------------------------------------------+-----------------------------------+ | 
 |  | 
 | +---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ | 
 | |:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+| | 
 | |                           ||:diagtext:`reading`||                                                                                                                           ||+------------------------------------------+            || | 
 | |                           |+-------------------+|                                                                                                                           |||:diagtext:`'`:placeholder:`C`:diagtext:`'`|            || | 
 | |                           ||:diagtext:`writing`||                                                                                                                           ||+------------------------------------------+            || | 
 | |                           |+-------------------+|                                                                                                                           |+--------------------------------------------------------+| | 
 | |                           |                     |                                                                                                                           ||+------------------------------------------------------+|| | 
 | |                           |                     |                                                                                                                           |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`||| | 
 | |                           |                     |                                                                                                                           ||+------------------------------------------------------+|| | 
 | |                           |                     |                                                                                                                           |+--------------------------------------------------------+| | 
 | +---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ | 
 |  | 
 | +---------------------------+---------------------+------------------------------------------------------------------------------------+-----------------------------------+ | 
 | |:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable '`:placeholder:`A`:diagtext:`' requires holding` |nbsp| |+---------------------------------+| | 
 | |                           ||:diagtext:`reading`||                                                                                    ||:diagtext:`any mutex`            || | 
 | |                           |+-------------------+|                                                                                    |+---------------------------------+| | 
 | |                           ||:diagtext:`writing`||                                                                                    ||:diagtext:`any mutex exclusively`|| | 
 | |                           |+-------------------+|                                                                                    |+---------------------------------+| | 
 | +---------------------------+---------------------+------------------------------------------------------------------------------------+-----------------------------------+ | 
 |  | 
 | +---------------------------+---------------------+------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ | 
 | |:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+| | 
 | |                           ||:diagtext:`reading`||                                                                                                            ||+------------------------------------------+            || | 
 | |                           |+-------------------+|                                                                                                            |||:diagtext:`'`:placeholder:`C`:diagtext:`'`|            || | 
 | |                           ||:diagtext:`writing`||                                                                                                            ||+------------------------------------------+            || | 
 | |                           |+-------------------+|                                                                                                            |+--------------------------------------------------------+| | 
 | |                           |                     |                                                                                                            ||+------------------------------------------------------+|| | 
 | |                           |                     |                                                                                                            |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`||| | 
 | |                           |                     |                                                                                                            ||+------------------------------------------------------+|| | 
 | |                           |                     |                                                                                                            |+--------------------------------------------------------+| | 
 | +---------------------------+---------------------+------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ | 
 |  | 
 |  | 
 | -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 '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+| | 
 | |                                                                                                                                       ||+------------------------------------------+            || | 
 | |                                                                                                                                       |||:diagtext:`'`:placeholder:`C`:diagtext:`'`|            || | 
 | |                                                                                                                                       ||+------------------------------------------+            || | 
 | |                                                                                                                                       |+--------------------------------------------------------+| | 
 | |                                                                                                                                       ||+------------------------------------------------------+|| | 
 | |                                                                                                                                       |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`||| | 
 | |                                                                                                                                       ||+------------------------------------------------------+|| | 
 | |                                                                                                                                       |+--------------------------------------------------------+| | 
 | +---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ | 
 |  | 
 | +---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ | 
 | |:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+| | 
 | |                           ||:diagtext:`reading`||                                                                                                                           ||+------------------------------------------+            || | 
 | |                           |+-------------------+|                                                                                                                           |||:diagtext:`'`:placeholder:`C`:diagtext:`'`|            || | 
 | |                           ||:diagtext:`writing`||                                                                                                                           ||+------------------------------------------+            || | 
 | |                           |+-------------------+|                                                                                                                           |+--------------------------------------------------------+| | 
 | |                           |                     |                                                                                                                           ||+------------------------------------------------------+|| | 
 | |                           |                     |                                                                                                                           |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`||| | 
 | |                           |                     |                                                                                                                           ||+------------------------------------------------------+|| | 
 | |                           |                     |                                                                                                                           |+--------------------------------------------------------+| | 
 | +---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ | 
 |  | 
 | +---------------------------+---------------------+------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ | 
 | |:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+| | 
 | |                           ||:diagtext:`reading`||                                                                                                            ||+------------------------------------------+            || | 
 | |                           |+-------------------+|                                                                                                            |||:diagtext:`'`:placeholder:`C`:diagtext:`'`|            || | 
 | |                           ||:diagtext:`writing`||                                                                                                            ||+------------------------------------------+            || | 
 | |                           |+-------------------+|                                                                                                            |+--------------------------------------------------------+| | 
 | |                           |                     |                                                                                                            ||+------------------------------------------------------+|| | 
 | |                           |                     |                                                                                                            |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`||| | 
 | |                           |                     |                                                                                                            ||+------------------------------------------------------+|| | 
 | |                           |                     |                                                                                                            |+--------------------------------------------------------+| | 
 | +---------------------------+---------------------+------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ | 
 |  | 
 |  | 
 | -Wthread-safety-reference | 
 | ------------------------- | 
 | **Diagnostic text:** | 
 |  | 
 | +----------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ | 
 | |:warning:`warning:` |nbsp| :diagtext:`passing variable '`:placeholder:`B`:diagtext:`' by reference requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+| | 
 | |                                                                                                                                                    ||+------------------------------------------+            || | 
 | |                                                                                                                                                    |||:diagtext:`'`:placeholder:`C`:diagtext:`'`|            || | 
 | |                                                                                                                                                    ||+------------------------------------------+            || | 
 | |                                                                                                                                                    |+--------------------------------------------------------+| | 
 | |                                                                                                                                                    ||+------------------------------------------------------+|| | 
 | |                                                                                                                                                    |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`||| | 
 | |                                                                                                                                                    ||+------------------------------------------------------+|| | 
 | |                                                                                                                                                    |+--------------------------------------------------------+| | 
 | +----------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ | 
 |  | 
 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ | 
 | |:warning:`warning:` |nbsp| :diagtext:`passing the value that '`:placeholder:`B`:diagtext:`' points to by reference requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+| | 
 | |                                                                                                                                                                    ||+------------------------------------------+            || | 
 | |                                                                                                                                                                    |||:diagtext:`'`:placeholder:`C`:diagtext:`'`|            || | 
 | |                                                                                                                                                                    ||+------------------------------------------+            || | 
 | |                                                                                                                                                                    |+--------------------------------------------------------+| | 
 | |                                                                                                                                                                    ||+------------------------------------------------------+|| | 
 | |                                                                                                                                                                    |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`||| | 
 | |                                                                                                                                                                    ||+------------------------------------------------------+|| | 
 | |                                                                                                                                                                    |+--------------------------------------------------------+| | 
 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ | 
 |  | 
 |  | 
 | -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-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:`'`| | 
 | +-----------------------------------------------------------------------------------------------------------+ | 
 |  | 
 |  | 
 | -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-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:`in`||                    |||                                            | | 
 | |                           |||+--------------+|                    |||                                            | | 
 | |                           ||+----------------+--------------------+||                                            | | 
 | |                           |+---------------------------------------+|                                            | | 
 | |                           ||:diagtext:`relational`                 ||                                            | | 
 | |                           |+---------------------------------------+|                                            | | 
 | +---------------------------+-----------------------------------------+--------------------------------------------+ | 
 |  | 
 |  | 
 | -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`   ||                                                         | | 
 | |                                                      |+---------------------------------------------------------------+|                                                         | | 
 | +------------------------------------------------------+-----------------------------------------------------------------+---------------------------------------------------------+ | 
 |  | 
 |  | 
 | -Wvariadic-macros | 
 | ----------------- | 
 | Some of the diagnostics controlled by this flag are enabled by default. | 
 |  | 
 | **Diagnostic text:** | 
 |  | 
 | +--------------------------------------------------------------------------------+ | 
 | |:warning:`warning:` |nbsp| :diagtext:`named variadic macros are a GNU extension`| | 
 | +--------------------------------------------------------------------------------+ | 
 |  | 
 | +-----------------------------------------------------------------------------------------------------------+ | 
 | |:warning:`warning:` |nbsp| :diagtext:`\_\_VA\_OPT\_\_ can only appear in the expansion of a variadic macro`| | 
 | +-----------------------------------------------------------------------------------------------------------+ | 
 |  | 
 | +------------------------------------------------------------------------+ | 
 | |:warning:`warning:` |nbsp| :diagtext:`variadic macros are a C99 feature`| | 
 | +------------------------------------------------------------------------+ | 
 |  | 
 |  | 
 | -Wvec-elem-size | 
 | --------------- | 
 | This diagnostic is an error by default, but the flag ``-Wno-vec-elem-size`` can be used to disable the error. | 
 |  | 
 | **Diagnostic text:** | 
 |  | 
 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 
 | |:error:`error:` |nbsp| :diagtext:`vector operands do not have the same elements sizes (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`| | 
 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 
 |  | 
 |  | 
 | -Wvector-conversion | 
 | ------------------- | 
 | **Diagnostic text:** | 
 |  | 
 | +------------------------------------------------------------------------+----------------------------------------------------------------+ | 
 | |:warning:`warning:` |nbsp| :diagtext:`incompatible vector types` |nbsp| |+--------------------------------------------------------------+| | 
 | |                                                                        ||: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`                             || | 
 | |                                                                        |+--------------------------------------------------------------+| | 
 | +------------------------------------------------------------------------+----------------------------------------------------------------+ | 
 |  | 
 |  | 
 | -Wvector-conversions | 
 | -------------------- | 
 | Synonym for `-Wvector-conversion`_. | 
 |  | 
 |  | 
 | -Wvexing-parse | 
 | -------------- | 
 | This diagnostic is enabled by default. | 
 |  | 
 | **Diagnostic text:** | 
 |  | 
 | +----------------------------------------------------------------------------------------------+ | 
 | |:warning:`warning:` |nbsp| :diagtext:`empty parentheses interpreted as a function declaration`| | 
 | +----------------------------------------------------------------------------------------------+ | 
 |  | 
 | +-----------------------------------------------------------------------------------------------+ | 
 | |:warning:`warning:` |nbsp| :diagtext:`parentheses were disambiguated as a function declaration`| | 
 | +-----------------------------------------------------------------------------------------------+ | 
 |  | 
 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------+ | 
 | |:warning:`warning:` |nbsp| :diagtext:`parentheses were disambiguated as redundant parentheses around declaration of variable named` |nbsp| :placeholder:`A`| | 
 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------+ | 
 |  | 
 |  | 
 | -Wvisibility | 
 | ------------ | 
 | This diagnostic is enabled by default. | 
 |  | 
 | **Diagnostic text:** | 
 |  | 
 | +---------------------------------------------------------------------------------------------------------------------------------------------+ | 
 | |:warning:`warning:` |nbsp| :diagtext:`declaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will not be visible outside of this function`| | 
 | +---------------------------------------------------------------------------------------------------------------------------------------------+ | 
 |  | 
 | +----------------------------------------------------------------------------------------------------------------------------------------------+ | 
 | |:warning:`warning:` |nbsp| :diagtext:`redefinition of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will not be visible outside of this function`| | 
 | +----------------------------------------------------------------------------------------------------------------------------------------------+ | 
 |  | 
 |  | 
 | -Wvla | 
 | ----- | 
 | **Diagnostic text:** | 
 |  | 
 | +-----------------------------------------------------------------+ | 
 | |:warning:`warning:` |nbsp| :diagtext:`variable length array used`| | 
 | +-----------------------------------------------------------------+ | 
 |  | 
 |  | 
 | -Wvla-extension | 
 | --------------- | 
 | **Diagnostic text:** | 
 |  | 
 | +-------------------------------------------------------------------------------+ | 
 | |:warning:`warning:` |nbsp| :diagtext:`variable length arrays are a C99 feature`| | 
 | +-------------------------------------------------------------------------------+ | 
 |  | 
 |  | 
 | -Wvoid-ptr-dereference | 
 | ---------------------- | 
 | This diagnostic is enabled by default. | 
 |  | 
 | **Diagnostic text:** | 
 |  | 
 | +--------------------------------------------------------------------------------------------------------------------+ | 
 | |:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow indirection on operand of type` |nbsp| :placeholder:`A`| | 
 | +--------------------------------------------------------------------------------------------------------------------+ | 
 |  | 
 |  | 
 | -Wvolatile-register-var | 
 | ----------------------- | 
 | This diagnostic flag exists for GCC compatibility, and has no effect in Clang. | 
 |  | 
 | -Wweak-template-vtables | 
 | ----------------------- | 
 | **Diagnostic text:** | 
 |  | 
 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 
 | |:warning:`warning:` |nbsp| :diagtext:`explicit template instantiation` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will emit a vtable in every translation unit`| | 
 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 
 |  | 
 |  | 
 | -Wweak-vtables | 
 | -------------- | 
 | **Diagnostic text:** | 
 |  | 
 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 
 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has no out-of-line virtual method definitions; its vtable will be emitted in every translation unit`| | 
 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 
 |  | 
 |  | 
 | -Wwritable-strings | 
 | ------------------ | 
 | This diagnostic is enabled by default. | 
 |  | 
 | Also controls `-Wdeprecated-writable-strings`_. | 
 |  | 
 | **Diagnostic text:** | 
 |  | 
 | +-------------------------------------------------------------------------------------------------------------------------+ | 
 | |:warning:`warning:` |nbsp| :diagtext:`ISO C++11 does not allow conversion from string literal to` |nbsp| :placeholder:`A`| | 
 | +-------------------------------------------------------------------------------------------------------------------------+ | 
 |  | 
 |  | 
 | -Wwrite-strings | 
 | --------------- | 
 | Synonym for `-Wwritable-strings`_. | 
 |  | 
 |  | 
 | -Wzero-as-null-pointer-constant | 
 | ------------------------------- | 
 | **Diagnostic text:** | 
 |  | 
 | +--------------------------------------------------------------------+ | 
 | |:warning:`warning:` |nbsp| :diagtext:`zero as null pointer constant`| | 
 | +--------------------------------------------------------------------+ | 
 |  | 
 |  | 
 | -Wzero-length-array | 
 | ------------------- | 
 | **Diagnostic text:** | 
 |  | 
 | +------------------------------------------------------------------------+ | 
 | |:warning:`warning:` |nbsp| :diagtext:`zero size arrays are an extension`| | 
 | +------------------------------------------------------------------------+ | 
 |  | 
 |  |