11049 lines
		
	
	
		
			897 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
			
		
		
	
	
			11049 lines
		
	
	
		
			897 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
| ..
 | |
|   -------------------------------------------------------------------
 | |
|   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.
 | |
| 
 | |
| -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`|
 | |
| +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| 
 | |
| -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-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
 | |
| -----------------------
 | |
| Controls `-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
 | |
| --------------
 | |
| Synonym for `-Wc++98-c++11-c++14-compat`_.
 | |
| 
 | |
| 
 | |
| -Wc++14-compat-pedantic
 | |
| -----------------------
 | |
| Synonym for `-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++1y-extensions
 | |
| ------------------
 | |
| Synonym for `-Wc++14-extensions`_.
 | |
| 
 | |
| 
 | |
| -Wc++1z-compat
 | |
| --------------
 | |
| This diagnostic is enabled by default.
 | |
| 
 | |
| Also controls `-Wdeprecated-increment-bool`_, `-Wdeprecated-register`_.
 | |
| 
 | |
| **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++1z-extensions
 | |
| ------------------
 | |
| Some of the diagnostics controlled by this flag are enabled by default.
 | |
| 
 | |
| **Diagnostic text:**
 | |
| 
 | |
| +------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`constexpr if is a C++1z extension`|
 | |
| +------------------------------------------------------------------------+
 | |
| 
 | |
| +---------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`'constexpr' on lambda expressions is a C++1z extension`|
 | |
| +---------------------------------------------------------------------------------------------+
 | |
| 
 | |
| +---------------------------------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++1z extension`|
 | |
| +---------------------------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| +---------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`decomposition declarations are a C++1z extension`|
 | |
| +---------------------------------------------------------------------------------------+
 | |
| 
 | |
| +--------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`pack fold expression is a C++1z extension`|
 | |
| +--------------------------------------------------------------------------------+
 | |
| 
 | |
| +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`'begin' and 'end' returning different types (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`) is a C++1z extension`|
 | |
| +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| +----------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are a C++1z feature`|
 | |
| +----------------------------------------------------------------------------------------+
 | |
| 
 | |
| +----------------------------------------+--------------------+-------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`'`|+------------------+|:diagtext:`' initialization statements are a C++1z extension`|
 | |
| |                                        ||:diagtext:`if`    ||                                                             |
 | |
| |                                        |+------------------+|                                                             |
 | |
| |                                        ||:diagtext:`switch`||                                                             |
 | |
| |                                        |+------------------+|                                                             |
 | |
| +----------------------------------------+--------------------+-------------------------------------------------------------+
 | |
| 
 | |
| +-----------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`inline variables are a C++1z extension`|
 | |
| +-----------------------------------------------------------------------------+
 | |
| 
 | |
| +---------------------------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`use of multiple declarators in a single using declaration is a C++1z extension`|
 | |
| +---------------------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| +-------------------------------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`nested namespace definition is a C++1z extension; define each namespace separately`|
 | |
| +-------------------------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| +---------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`capture of '\*this' by copy is a C++1z extension`|
 | |
| +---------------------------------------------------------------------------------------+
 | |
| 
 | |
| +------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`static\_assert with no message is a C++1z extension`|
 | |
| +------------------------------------------------------------------------------------------+
 | |
| 
 | |
| +--------------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`template template parameter using 'typename' is a C++1z extension`|
 | |
| +--------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| +--------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`default scope specifier for attributes is a C++1z extension`|
 | |
| +--------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| +-----------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`pack expansion of using declaration is a C++1z extension`|
 | |
| +-----------------------------------------------------------------------------------------------+
 | |
| 
 | |
| 
 | |
| -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++1z`|
 | |
| |                                                            ||:diagtext:`a namespace`  ||                                                                                |
 | |
| |                                                            |+-------------------------+|                                                                                |
 | |
| |                                                            ||:diagtext:`an enumerator`||                                                                                |
 | |
| |                                                            |+-------------------------+|                                                                                |
 | |
| +------------------------------------------------------------+---------------------------+--------------------------------------------------------------------------------+
 | |
| 
 | |
| +---------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`constexpr if is incompatible with C++ standards before C++1z`|
 | |
| +---------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| +----------------------------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`constexpr on lambda expressions is incompatible with C++ standards before C++1z`|
 | |
| +----------------------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| +------------------------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`decomposition declarations are incompatible with C++ standards before C++1z`|
 | |
| +------------------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| +-----------------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`pack fold expression is incompatible with C++ standards before C++1z`|
 | |
| +-----------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| +---------------------------+--------------------+----------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| |+------------------+| |nbsp| :diagtext:`initialization statements are incompatible with C++ standards before C++1z`|
 | |
| |                           ||:diagtext:`if`    ||                                                                                              |
 | |
| |                           |+------------------+|                                                                                              |
 | |
| |                           ||:diagtext:`switch`||                                                                                              |
 | |
| |                           |+------------------+|                                                                                              |
 | |
| +---------------------------+--------------------+----------------------------------------------------------------------------------------------+
 | |
| 
 | |
| +--------------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`inline variables are incompatible with C++ standards before C++1z`|
 | |
| +--------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| +------------------------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`nested namespace definition is incompatible with C++ standards before C++1z`|
 | |
| +------------------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| +-------------------------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`by value capture of '\*this' is incompatible with C++ standards before C++1z`|
 | |
| +-------------------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| +---------------------------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`static\_assert with no message is incompatible with C++ standards before C++1z`|
 | |
| +---------------------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`non-type template parameters declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`are incompatible with C++ standards before C++1z`|
 | |
| +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| +-----------------------------------------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`template template parameter using 'typename' is incompatible with C++ standards before C++1z`|
 | |
| +-----------------------------------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| +--------------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C++ standards before C++1z`|
 | |
| +--------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| +-----------------------------------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`default scope specifier for attributes is incompatible with C++ standards before C++1z`|
 | |
| +-----------------------------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| +------------------------------------------------------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`use of multiple declarators in a single using declaration is incompatible with C++ standards before C++1z`|
 | |
| +------------------------------------------------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| +-----------------------------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`pack expansion using declaration is incompatible with C++ standards before C++1z`|
 | |
| +-----------------------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | |
| |: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++1z`|
 | |
| +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| 
 | |
| -Wc++98-c++11-c++14-compat-pedantic
 | |
| -----------------------------------
 | |
| Also controls `-Wc++98-c++11-c++14-compat`_.
 | |
| 
 | |
| **Diagnostic text:**
 | |
| 
 | |
| +---------------------------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are incompatible with C++ standards before C++1z`|
 | |
| +---------------------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| 
 | |
| -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-pedantic
 | |
| -----------------------------
 | |
| Also controls `-Wc++98-c++11-compat`_.
 | |
| 
 | |
| **Diagnostic text:**
 | |
| 
 | |
| +---------------------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`binary integer literals are incompatible with C++ standards before C++14`|
 | |
| +---------------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| 
 | |
| -Wc++98-compat
 | |
| --------------
 | |
| Also controls `-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-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
 | |
| -----------
 | |
| 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`|
 | |
| +--------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| 
 | |
| -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:`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`||
 | |
| |                                                                      |+--------------------+|
 | |
| +----------------------------------------------------------------------+----------------------+
 | |
| 
 | |
| 
 | |
| -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++1z`|
 | |
| +---------------------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| 
 | |
| -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++1z`|
 | |
| +-------------------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| 
 | |
| -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++1z 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++1z 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.
 | |
| 
 | |
| **Diagnostic text:**
 | |
| 
 | |
| +------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`comparison of two values with different enumeration types`|
 | |
| +------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| 
 | |
| -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`|
 | |
| +-------------------------------------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| 
 | |
| -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`_, `-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 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:`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 unsupported '`:placeholder:`A`:diagtext:`' in the target attribute string`|
 | |
| +-------------------------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| 
 | |
| -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 C99`|
 | |
| +------------------------------------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| +---------------------------------------------------------------------------------------------------------------------------------------------+
 | |
| |: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 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++1z 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:`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-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
 | |
| ----------------------------------
 | |
| **Diagnostic text:**
 | |
| 
 | |
| +---------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`forward references to 'enum' types are a Microsoft extension`|
 | |
| +---------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| 
 | |
| -Wmicrosoft-enum-value
 | |
| ----------------------
 | |
| This diagnostic is enabled by default.
 | |
| 
 | |
| **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-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-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`|
 | |
| +----------------------------------------------------------------+
 | |
| 
 | |
| 
 | |
| -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`|
 | |
| +---------------------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| 
 | |
| -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`|
 | |
| +---------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| 
 | |
| -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-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-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 non-GC 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 '`:placeholder:`A`:diagtext:`' was ignored by the PS4 toolchain, using '-fPIC'`|
 | |
| +----------------------------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| 
 | |
| -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`|
 | |
| +-------------------------------------------------------------------------------------------+
 | |
| 
 | |
| 
 | |
| -Wover-aligned
 | |
| --------------
 | |
| **Diagnostic text:**
 | |
| 
 | |
| +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires` |nbsp| :placeholder:`B` |nbsp| :diagtext:`bytes of alignment and the default allocator only guarantees` |nbsp| :placeholder:`C` |nbsp| :diagtext:`bytes`|
 | |
| +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| 
 | |
| -Woverflow
 | |
| ----------
 | |
| This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
 | |
| 
 | |
| -Woverlength-strings
 | |
| --------------------
 | |
| **Diagnostic text:**
 | |
| 
 | |
| +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`string literal of length` |nbsp| :placeholder:`A` |nbsp| :diagtext:`exceeds maximum length` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that` |nbsp| |+-------------------+| |nbsp| :diagtext:`compilers are required to support`|
 | |
| |                                                                                                                                                                                         ||:diagtext:`C90`    ||                                                     |
 | |
| |                                                                                                                                                                                         |+-------------------+|                                                     |
 | |
| |                                                                                                                                                                                         ||:diagtext:`ISO C99`||                                                     |
 | |
| |                                                                                                                                                                                         |+-------------------+|                                                     |
 | |
| |                                                                                                                                                                                         ||:diagtext:`C++`    ||                                                     |
 | |
| |                                                                                                                                                                                         |+-------------------+|                                                     |
 | |
| +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------+
 | |
| 
 | |
| 
 | |
| -Woverloaded-shift-op-parentheses
 | |
| ---------------------------------
 | |
| This diagnostic is enabled by default.
 | |
| 
 | |
| **Diagnostic text:**
 | |
| 
 | |
| +------------------------------------------------------------------+----------------+------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`overloaded operator` |nbsp| |+--------------+| |nbsp| :diagtext:`has higher precedence than comparison operator`|
 | |
| |                                                                  ||:diagtext:`>>`||                                                                  |
 | |
| |                                                                  |+--------------+|                                                                  |
 | |
| |                                                                  ||:diagtext:`<<`||                                                                  |
 | |
| |                                                                  |+--------------+|                                                                  |
 | |
| +------------------------------------------------------------------+----------------+------------------------------------------------------------------+
 | |
| 
 | |
| 
 | |
| -Woverloaded-virtual
 | |
| --------------------
 | |
| **Diagnostic text:**
 | |
| 
 | |
| +-----------------------------------------------------------------------------------------------+-----------------------+
 | |
| |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`hides overloaded virtual` |nbsp| |+---------------------+|
 | |
| |                                                                                               ||:diagtext:`function` ||
 | |
| |                                                                                               |+---------------------+|
 | |
| |                                                                                               ||:diagtext:`functions`||
 | |
| |                                                                                               |+---------------------+|
 | |
| +-----------------------------------------------------------------------------------------------+-----------------------+
 | |
| 
 | |
| 
 | |
| -Woverride-module
 | |
| -----------------
 | |
| This diagnostic is enabled by default.
 | |
| 
 | |
| **Diagnostic text:**
 | |
| 
 | |
| +-------------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`overriding the module target triple with` |nbsp| :placeholder:`A`|
 | |
| +-------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| 
 | |
| -Woverriding-method-mismatch
 | |
| ----------------------------
 | |
| **Diagnostic text:**
 | |
| 
 | |
| +-------------------------------------------------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on parameter type in declaration of` |nbsp| :placeholder:`A`|
 | |
| +-------------------------------------------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| +------------------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in declaration of` |nbsp| :placeholder:`A`|
 | |
| +------------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| +----------------------------------------------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on return type in declaration of` |nbsp| :placeholder:`A`|
 | |
| +----------------------------------------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| +--------------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`conflicting return type in declaration of` |nbsp| :placeholder:`A`|
 | |
| +--------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| +--------------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`conflicting variadic declaration of method and its implementation`|
 | |
| +--------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in declaration of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
 | |
| +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`conflicting return type in declaration of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
 | |
| +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| 
 | |
| -Woverriding-t-option
 | |
| ---------------------
 | |
| This diagnostic is enabled by default.
 | |
| 
 | |
| **Diagnostic text:**
 | |
| 
 | |
| +---------------------------------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`overriding '`:placeholder:`A`:diagtext:`' option with '`:placeholder:`B`:diagtext:`'`|
 | |
| +---------------------------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| 
 | |
| -Wpacked
 | |
| --------
 | |
| **Diagnostic text:**
 | |
| 
 | |
| +--------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`packed attribute is unnecessary for` |nbsp| :placeholder:`A`|
 | |
| +--------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| 
 | |
| -Wpadded
 | |
| --------
 | |
| **Diagnostic text:**
 | |
| 
 | |
| +------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`padding` |nbsp| |+---------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with` |nbsp| :placeholder:`C` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to align anonymous bit-field`|
 | |
| |                                                      ||:diagtext:`struct`   ||                                                                                ||:diagtext:`byte`|||             ||                                                |
 | |
| |                                                      |+---------------------+|                                                                                |+----------------+|+-------------+|                                                |
 | |
| |                                                      ||:diagtext:`interface`||                                                                                ||:diagtext:`bit` |||:diagtext:`s`||                                                |
 | |
| |                                                      |+---------------------+|                                                                                |+----------------+|+-------------+|                                                |
 | |
| |                                                      ||:diagtext:`class`    ||                                                                                |                  |               |                                                |
 | |
| |                                                      |+---------------------+|                                                                                |                  |               |                                                |
 | |
| +------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+------------------------------------------------+
 | |
| 
 | |
| +------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+----------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`padding` |nbsp| |+---------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with` |nbsp| :placeholder:`C` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to align` |nbsp| :placeholder:`E`|
 | |
| |                                                      ||:diagtext:`struct`   ||                                                                                ||:diagtext:`byte`|||             ||                                                    |
 | |
| |                                                      |+---------------------+|                                                                                |+----------------+|+-------------+|                                                    |
 | |
| |                                                      ||:diagtext:`interface`||                                                                                ||:diagtext:`bit` |||:diagtext:`s`||                                                    |
 | |
| |                                                      |+---------------------+|                                                                                |+----------------+|+-------------+|                                                    |
 | |
| |                                                      ||:diagtext:`class`    ||                                                                                |                  |               |                                                    |
 | |
| |                                                      |+---------------------+|                                                                                |                  |               |                                                    |
 | |
| +------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+----------------------------------------------------+
 | |
| 
 | |
| +--------------------------------------------------------------------------------------------------------------------------------------+------------------+---------------+-----------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`padding size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with` |nbsp| :placeholder:`B` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to alignment boundary`|
 | |
| |                                                                                                                                      ||:diagtext:`byte`|||             ||                                         |
 | |
| |                                                                                                                                      |+----------------+|+-------------+|                                         |
 | |
| |                                                                                                                                      ||:diagtext:`bit` |||:diagtext:`s`||                                         |
 | |
| |                                                                                                                                      |+----------------+|+-------------+|                                         |
 | |
| +--------------------------------------------------------------------------------------------------------------------------------------+------------------+---------------+-----------------------------------------+
 | |
| 
 | |
| 
 | |
| -Wparentheses
 | |
| -------------
 | |
| This diagnostic is enabled by default.
 | |
| 
 | |
| Also controls `-Wbitwise-op-parentheses`_, `-Wdangling-else`_, `-Wlogical-not-parentheses`_, `-Wlogical-op-parentheses`_, `-Woverloaded-shift-op-parentheses`_, `-Wparentheses-equality`_, `-Wshift-op-parentheses`_.
 | |
| 
 | |
| **Diagnostic text:**
 | |
| 
 | |
| +-----------------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`using the result of an assignment as a condition without parentheses`|
 | |
| +-----------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has lower precedence than` |nbsp| :placeholder:`B`:diagtext:`;` |nbsp| :placeholder:`B` |nbsp| :diagtext:`will be evaluated first`|
 | |
| +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| +---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`operator '?:' has lower precedence than '`:placeholder:`A`:diagtext:`'; '`:placeholder:`A`:diagtext:`' will be evaluated first`|
 | |
| +---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| 
 | |
| -Wparentheses-equality
 | |
| ----------------------
 | |
| This diagnostic is enabled by default.
 | |
| 
 | |
| **Diagnostic text:**
 | |
| 
 | |
| +--------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`equality comparison with extraneous parentheses`|
 | |
| +--------------------------------------------------------------------------------------+
 | |
| 
 | |
| 
 | |
| -Wpartial-availability
 | |
| ----------------------
 | |
| Synonym for `-Wunguarded-availability`_.
 | |
| 
 | |
| 
 | |
| -Rpass
 | |
| ------
 | |
| **Diagnostic text:**
 | |
| 
 | |
| The text of this diagnostic is not controlled by Clang.
 | |
| 
 | |
| 
 | |
| -Rpass-analysis
 | |
| ---------------
 | |
| **Diagnostic text:**
 | |
| 
 | |
| The text of this diagnostic is not controlled by Clang.
 | |
| 
 | |
| +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | |
| |:remark:`remark:` |nbsp| :placeholder:`A`:diagtext:`; allow reordering by specifying '#pragma clang loop vectorize(enable)' before the loop. If the arrays will always be independent specify '#pragma clang loop vectorize(assume\_safety)' before the loop or provide the '\_\_restrict\_\_' qualifier with the independent array arguments. Erroneous results will occur if these options are incorrectly applied!`|
 | |
| +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | |
| |:remark:`remark:` |nbsp| :placeholder:`A`:diagtext:`; allow reordering by specifying '#pragma clang loop vectorize(enable)' before the loop or by providing the compiler option '-ffast-math'.`|
 | |
| +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| 
 | |
| -Wpass-failed
 | |
| -------------
 | |
| This diagnostic is enabled by default.
 | |
| 
 | |
| **Diagnostic text:**
 | |
| 
 | |
| The text of this diagnostic is not controlled by Clang.
 | |
| 
 | |
| 
 | |
| -Rpass-missed
 | |
| -------------
 | |
| **Diagnostic text:**
 | |
| 
 | |
| The text of this diagnostic is not controlled by Clang.
 | |
| 
 | |
| 
 | |
| -Wpch-date-time
 | |
| ---------------
 | |
| This diagnostic is enabled by default.
 | |
| 
 | |
| **Diagnostic text:**
 | |
| 
 | |
| +---------------------------+--------------------------------+-----------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| |+------------------------------+| |nbsp| :diagtext:`uses \_\_DATE\_\_ or \_\_TIME\_\_`|
 | |
| |                           ||:diagtext:`precompiled header`||                                                     |
 | |
| |                           |+------------------------------+|                                                     |
 | |
| |                           ||:diagtext:`module`            ||                                                     |
 | |
| |                           |+------------------------------+|                                                     |
 | |
| +---------------------------+--------------------------------+-----------------------------------------------------+
 | |
| 
 | |
| 
 | |
| -Wpedantic
 | |
| ----------
 | |
| Also controls `-Wc++11-extra-semi`_, `-Wc++11-long-long`_, `-Wc++14-binary-literal`_, `-Wc11-extensions`_, `-Wcomplex-component-init`_, `-Wdeclaration-after-statement`_, `-Wdollar-in-identifier-extension`_, `-Wembedded-directive`_, `-Wempty-translation-unit`_, `-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-forward-reference`_, `-Wmicrosoft-fixed-enum`_, `-Wmicrosoft-flexible-array`_, `-Wmicrosoft-redeclare-static`_, `-Wnested-anon-types`_, `-Wnullability-extension`_, `-Woverlength-strings`_, `-Wretained-language-linkage`_, `-Wvariadic-macros`_, `-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:`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++1z 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:`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++1z 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:`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-once-outside-header
 | |
| ----------------------------
 | |
| This diagnostic is enabled by default.
 | |
| 
 | |
| **Diagnostic text:**
 | |
| 
 | |
| +----------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`#pragma once in main 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`_, `-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:`'`|
 | |
| +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| 
 | |
| -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:`no data and` |nbsp| :placeholder:`C` |nbsp| |+-----------------+| |nbsp| :diagtext:`mismatched data that will be ignored`|
 | |
| |                                                                                                                              ||             ||                                             ||:diagtext:`:has` ||                                                               ||:diagtext:`:has` ||                                                        |
 | |
| |                                                                                                                              |+-------------+|                                             |+-----------------+|                                                               |+-----------------+|                                                        |
 | |
| |                                                                                                                              ||:diagtext:`s`||                                             ||:diagtext:`:have`||                                                               ||: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 of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`was selected for synthesis`|
 | |
| +-----------------------------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| 
 | |
| -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`|
 | |
| +-------------------------------------------------------------------------+
 | |
| 
 | |
| 
 | |
| -Wregister
 | |
| ----------
 | |
| This diagnostic is enabled by default.
 | |
| 
 | |
| Also controls `-Wdeprecated-register`_.
 | |
| 
 | |
| **Diagnostic text:**
 | |
| 
 | |
| +----------------------------------------------------------------------------------------------+
 | |
| |:error:`error:` |nbsp| :diagtext:`ISO C++1z 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 non-void coroutine`|
 | |
| +--------------------------------------------------------------------------------+
 | |
| 
 | |
| +-------------------------------------------------------------------------------+
 | |
| |: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 non-void coroutine`|
 | |
| +----------------------------------------------------------------------------------+
 | |
| 
 | |
| +---------------------------------------------------------------------------------+
 | |
| |: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 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:`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:`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-out-of-range-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` ||
 | |
| |                                                                                     |+-----------------+|
 | |
| +-------------------------------------------------------------------------------------+-------------------+
 | |
| 
 | |
| +-------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`comparison of unsigned`|+------------------------+| |nbsp| :diagtext:`expression` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is always` |nbsp| :placeholder:`B`|
 | |
| |                                                             ||                        ||                                                                                                           |
 | |
| |                                                             |+------------------------+|                                                                                                           |
 | |
| |                                                             || |nbsp| :diagtext:`enum`||                                                                                                           |
 | |
| |                                                             |+------------------------+|                                                                                                           |
 | |
| +-------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| +--------------------------------------------------------------------------------------------------------+--------------------------+----------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`comparison of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`unsigned`|+------------------------+| |nbsp| :diagtext:`expression is always` |nbsp| :placeholder:`B`|
 | |
| |                                                                                                        ||                        ||                                                                |
 | |
| |                                                                                                        |+------------------------+|                                                                |
 | |
| |                                                                                                        || |nbsp| :diagtext:`enum`||                                                                |
 | |
| |                                                                                                        |+------------------------+|                                                                |
 | |
| +--------------------------------------------------------------------------------------------------------+--------------------------+----------------------------------------------------------------+
 | |
| 
 | |
| 
 | |
| -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`||
 | |
| |                                                                                                                                                      |+-----------------+|
 | |
| +------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
 | |
| 
 | |
| 
 | |
| -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-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
 | |
| ------------------------
 | |
| **Diagnostic text:**
 | |
| 
 | |
| +----------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is only available conditionally`|
 | |
| +----------------------------------------------------------------------------------------------+
 | |
| 
 | |
| +------------------------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be partial because the receiver type is unknown`|
 | |
| +------------------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| +--------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is partial:` |nbsp| :placeholder:`B`|
 | |
| +--------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | |
| |: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 warning group '`:placeholder:`A`:diagtext:`', ignored`|
 | |
| +----------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| +-------------------------------------------------------------+
 | |
| |: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` |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-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-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:`joined argument expects additional value: '`:placeholder:`A`:diagtext:`'`|
 | |
| +---------------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| +-----------------------------------------------------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`argument '-fdiagnostics-show-hotness' requires profile-guided optimization information`|
 | |
| +-----------------------------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| +----------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+
 | |
| |: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:`'`|
 | |
| +---------------------------------------------------------------------------------------------------------+
 | |
| 
 | |
| 
 | |
| -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-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
 | |
| -----------------
 | |
| **Diagnostic text:**
 | |
| 
 | |
| +--------------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`named variadic macros are a GNU extension`|
 | |
| +--------------------------------------------------------------------------------+
 | |
| 
 | |
| +------------------------------------------------------------------------+
 | |
| |: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`|
 | |
| +-----------------------------------------------------------------------------------------------+
 | |
| 
 | |
| 
 | |
| -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-length-array
 | |
| -------------------
 | |
| **Diagnostic text:**
 | |
| 
 | |
| +------------------------------------------------------------------------+
 | |
| |:warning:`warning:` |nbsp| :diagtext:`zero size arrays are an extension`|
 | |
| +------------------------------------------------------------------------+
 | |
| 
 | |
| 
 |