mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-01-03 06:10:23 +00:00
69ab8b46b8
The built-in SVE types are supposed to be treated as opaque types. This means that for initialisation purposes they should be treated as a single unit, much like a scalar type. However, as Eli pointed out, actually using "scalar" in the diagnostics is likely to cause confusion, given the types are logically vectors. The patch therefore uses custom diagnostics or generalises existing ones. Some of the messages use the word "indivisible" to try to make it clear(er) that these types can't be initialised elementwise. I don't think it's possible to trigger warn_braces_around_(scalar_)init for sizeless types as things stand, since the types can't be used as members or elements of more complex types. But it seemed better to be consistent with ext_many_braces_around_(scalar_)init, so the patch changes it anyway. Differential Revision: https://reviews.llvm.org/D76689
14013 lines
1.1 MiB
14013 lines
1.1 MiB
..
|
|
-------------------------------------------------------------------
|
|
NOTE: This file is automatically generated by running clang-tblgen
|
|
-gen-diag-docs. Do not edit this file by hand!!
|
|
-------------------------------------------------------------------
|
|
|
|
.. Add custom CSS to output. FIXME: This should be put into <head> rather
|
|
than the start of <body>.
|
|
.. raw:: html
|
|
|
|
<style>
|
|
table.docutils {
|
|
width: 1px;
|
|
}
|
|
table.docutils td {
|
|
border: none;
|
|
padding: 0 0 0 0.2em;
|
|
vertical-align: middle;
|
|
white-space: nowrap;
|
|
width: 1px;
|
|
font-family: monospace;
|
|
}
|
|
table.docutils tr + tr {
|
|
border-top: 0.2em solid #aaa;
|
|
}
|
|
.error {
|
|
font-family: monospace;
|
|
font-weight: bold;
|
|
color: #c00;
|
|
}
|
|
.warning {
|
|
font-family: monospace;
|
|
font-weight: bold;
|
|
color: #80a;
|
|
}
|
|
.remark {
|
|
font-family: monospace;
|
|
font-weight: bold;
|
|
color: #00c;
|
|
}
|
|
.diagtext {
|
|
font-family: monospace;
|
|
font-weight: bold;
|
|
}
|
|
</style>
|
|
|
|
.. FIXME: rST doesn't support formatting this, so we format all <td> elements
|
|
as monospace font face instead.
|
|
.. |nbsp| unicode:: 0xA0
|
|
:trim:
|
|
|
|
.. Roles generated by clang-tblgen.
|
|
.. role:: error
|
|
.. role:: warning
|
|
.. role:: remark
|
|
.. role:: diagtext
|
|
.. role:: placeholder(emphasis)
|
|
|
|
=========================
|
|
Diagnostic flags in Clang
|
|
=========================
|
|
.. contents::
|
|
:local:
|
|
|
|
Introduction
|
|
============
|
|
|
|
This page lists the diagnostic flags currently supported by Clang.
|
|
|
|
Diagnostic flags
|
|
================
|
|
|
|
-W
|
|
--
|
|
Synonym for `-Wextra`_.
|
|
|
|
|
|
-W#pragma-messages
|
|
------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
The text of this diagnostic is not controlled by Clang.
|
|
|
|
|
|
-W#warnings
|
|
-----------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
The text of this diagnostic is not controlled by Clang.
|
|
|
|
|
|
-WCFString-literal
|
|
------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`input conversion stopped due to an input byte that does not belong to the input codeset UTF-8`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-WCL4
|
|
-----
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
Controls `-Wall`_, `-Wextra`_.
|
|
|
|
|
|
-WIndependentClass-attribute
|
|
----------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'objc\_independent\_class' attribute may be put on a typedef only; attribute is ignored`|
|
|
+------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'objc\_independent\_class' attribute may be put on Objective-C object pointer type only; attribute is ignored`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-WNSObject-attribute
|
|
--------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'NSObject' attribute may be put on a typedef only; attribute is ignored`|
|
|
+--------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wabi
|
|
-----
|
|
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
|
|
|
|
-Wabsolute-value
|
|
----------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`absolute value function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`given an argument of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`but has parameter of type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`which may cause truncation of value`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------+----------------------+---------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`taking the absolute value of` |nbsp| |+--------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is suspicious`|
|
|
| ||:diagtext:`pointer` || |
|
|
| |+--------------------+| |
|
|
| ||:diagtext:`function`|| |
|
|
| |+--------------------+| |
|
|
| ||:diagtext:`array` || |
|
|
| |+--------------------+| |
|
|
+---------------------------------------------------------------------------+----------------------+---------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`taking the absolute value of unsigned type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has no effect`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------+----------------------------+------------------------------------------------------------------------------------------------------------------+----------------------------+------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`using` |nbsp| |+--------------------------+| |nbsp| :diagtext:`absolute value function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when argument is of` |nbsp| |+--------------------------+| |nbsp| :diagtext:`type`|
|
|
| ||:diagtext:`integer` || ||:diagtext:`integer` || |
|
|
| |+--------------------------+| |+--------------------------+| |
|
|
| ||:diagtext:`floating point`|| ||:diagtext:`floating point`|| |
|
|
| |+--------------------------+| |+--------------------------+| |
|
|
| ||:diagtext:`complex` || ||:diagtext:`complex` || |
|
|
| |+--------------------------+| |+--------------------------+| |
|
|
+----------------------------------------------------+----------------------------+------------------------------------------------------------------------------------------------------------------+----------------------------+------------------------+
|
|
|
|
|
|
-Wabstract-final-class
|
|
----------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------+--------------------+-------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`abstract class is marked '`|+------------------+|:diagtext:`'`|
|
|
| ||:diagtext:`final` || |
|
|
| |+------------------+| |
|
|
| ||:diagtext:`sealed`|| |
|
|
| |+------------------+| |
|
|
+-----------------------------------------------------------------+--------------------+-------------+
|
|
|
|
|
|
-Wabstract-vbase-init
|
|
---------------------
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`initializer for virtual base class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of abstract class` |nbsp| :placeholder:`B` |nbsp| :diagtext:`will never be used`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Waddress
|
|
---------
|
|
This diagnostic is enabled by default.
|
|
|
|
Controls `-Wpointer-bool-conversion`_, `-Wstring-compare`_, `-Wtautological-pointer-compare`_.
|
|
|
|
|
|
-Waddress-of-packed-member
|
|
--------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`taking address of packed member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of class or structure` |nbsp| :placeholder:`B` |nbsp| :diagtext:`may result in an unaligned pointer value`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Waddress-of-temporary
|
|
----------------------
|
|
This diagnostic is an error by default, but the flag ``-Wno-address-of-temporary`` can be used to disable the error.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------------+
|
|
|:error:`error:` |nbsp| :diagtext:`taking the address of a temporary object of type` |nbsp| :placeholder:`A`|
|
|
+-----------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Waggregate-return
|
|
------------------
|
|
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
|
|
|
|
-Wall
|
|
-----
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
Controls `-Wmisleading-indentation`_, `-Wmost`_, `-Wparentheses`_, `-Wswitch`_, `-Wswitch-bool`_.
|
|
|
|
|
|
-Walloca
|
|
--------
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`use of function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is discouraged; there is no way to check for failure but failure may still occur, resulting in a possibly exploitable security vulnerability`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Walloca-with-align-alignof
|
|
---------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`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`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wambiguous-reversed-operator
|
|
-----------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ISO C++20 considers use of overloaded operator '`:placeholder:`A`:diagtext:`' (with operand types` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C`:diagtext:`) to be ambiguous despite there being a unique best viable function`|+-----------------------------------------------+|
|
|
| || |nbsp| :diagtext:`with non-reversed arguments`||
|
|
| |+-----------------------------------------------+|
|
|
| || ||
|
|
| |+-----------------------------------------------+|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------+
|
|
|
|
|
|
-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`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wanon-enum-enum-conversion
|
|
---------------------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
Also controls `-Wdeprecated-anon-enum-enum-conversion`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------+--------------------------------------------+-----------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+------------------------------------------+| |nbsp| :diagtext:`different enumeration types`|
|
|
| ||:diagtext:`arithmetic between` || |
|
|
| |+------------------------------------------+| |
|
|
| ||:diagtext:`bitwise operation between` || |
|
|
| |+------------------------------------------+| |
|
|
| ||:diagtext:`comparison of` || |
|
|
| |+------------------------------------------+| |
|
|
| ||:diagtext:`conditional expression between`|| |
|
|
| |+------------------------------------------+| |
|
|
| ||:diagtext:`compound assignment of` || |
|
|
| |+------------------------------------------+| |
|
|
+---------------------------+--------------------------------------------+-----------------------------------------------+
|
|
|
|
|
|
-Wanonymous-pack-parens
|
|
-----------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ISO C++11 requires a parenthesized pack declaration to have a name`|
|
|
+---------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Warc
|
|
-----
|
|
This diagnostic is enabled by default.
|
|
|
|
Controls `-Warc-non-pod-memaccess`_, `-Warc-retain-cycles`_, `-Warc-unsafe-retained-assign`_.
|
|
|
|
|
|
-Warc-bridge-casts-disallowed-in-nonarc
|
|
---------------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' casts have no effect when not using ARC`|
|
|
+-------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Warc-maybe-repeated-use-of-weak
|
|
--------------------------------
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------+-------------------------------+------------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`weak` |nbsp| |+-----------------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`may be accessed multiple times in this` |nbsp| |+--------------------+| |nbsp| :diagtext:`and may be unpredictably set to nil; assign to a strong variable to keep the object alive`|
|
|
| ||:diagtext:`variable` || ||:diagtext:`function`|| |
|
|
| |+-----------------------------+| |+--------------------+| |
|
|
| ||:diagtext:`property` || ||:diagtext:`method` || |
|
|
| |+-----------------------------+| |+--------------------+| |
|
|
| ||:diagtext:`implicit property`|| ||:diagtext:`block` || |
|
|
| |+-----------------------------+| |+--------------------+| |
|
|
| ||:diagtext:`instance variable`|| ||:diagtext:`lambda` || |
|
|
| |+-----------------------------+| |+--------------------+| |
|
|
+---------------------------------------------------+-------------------------------+------------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Warc-non-pod-memaccess
|
|
-----------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+---------------------------+| |nbsp| :diagtext:`this` |nbsp| :placeholder:`B` |nbsp| :diagtext:`call is a pointer to ownership-qualified type` |nbsp| :placeholder:`C`|
|
|
| ||:diagtext:`destination for`|| |
|
|
| |+---------------------------+| |
|
|
| ||:diagtext:`source of` || |
|
|
| |+---------------------------+| |
|
|
+---------------------------+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Warc-performSelector-leaks
|
|
---------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`performSelector may cause a leak because its selector is unknown`|
|
|
+-------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Warc-repeated-use-of-weak
|
|
--------------------------
|
|
Also controls `-Warc-maybe-repeated-use-of-weak`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------+-------------------------------+--------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`weak` |nbsp| |+-----------------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is accessed multiple times in this` |nbsp| |+--------------------+| |nbsp| :diagtext:`but may be unpredictably set to nil; assign to a strong variable to keep the object alive`|
|
|
| ||:diagtext:`variable` || ||:diagtext:`function`|| |
|
|
| |+-----------------------------+| |+--------------------+| |
|
|
| ||:diagtext:`property` || ||:diagtext:`method` || |
|
|
| |+-----------------------------+| |+--------------------+| |
|
|
| ||:diagtext:`implicit property`|| ||:diagtext:`block` || |
|
|
| |+-----------------------------+| |+--------------------+| |
|
|
| ||:diagtext:`instance variable`|| ||:diagtext:`lambda` || |
|
|
| |+-----------------------------+| |+--------------------+| |
|
|
+---------------------------------------------------+-------------------------------+--------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Warc-retain-cycles
|
|
-------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`capturing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`strongly in this block is likely to lead to a retain cycle`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Warc-unsafe-retained-assign
|
|
----------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------+---------------------------------+-------------------------------------+----------------------+------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`assigning` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`to a weak` |nbsp| |+--------------------+|:diagtext:`; object will be released after assignment`|
|
|
| ||:diagtext:`array literal` || ||:diagtext:`property`|| |
|
|
| |+-------------------------------+| |+--------------------+| |
|
|
| ||:diagtext:`dictionary literal` || ||:diagtext:`variable`|| |
|
|
| |+-------------------------------+| |+--------------------+| |
|
|
| ||:diagtext:`numeric literal` || | | |
|
|
| |+-------------------------------+| | | |
|
|
| ||:diagtext:`boxed expression` || | | |
|
|
| |+-------------------------------+| | | |
|
|
| ||:diagtext:`<should not happen>`|| | | |
|
|
| |+-------------------------------+| | | |
|
|
| ||:diagtext:`block literal` || | | |
|
|
| |+-------------------------------+| | | |
|
|
+--------------------------------------------------------+---------------------------------+-------------------------------------+----------------------+------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------+--------------------------------+--------+----------------------+------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`assigning retained object to` |nbsp| |+------------------------------+| |nbsp| |+--------------------+|:diagtext:`; object will be released after assignment`|
|
|
| ||:diagtext:`weak` || ||:diagtext:`property`|| |
|
|
| |+------------------------------+| |+--------------------+| |
|
|
| ||:diagtext:`unsafe\_unretained`|| ||:diagtext:`variable`|| |
|
|
| |+------------------------------+| |+--------------------+| |
|
|
+---------------------------------------------------------------------------+--------------------------------+--------+----------------------+------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`assigning retained object to unsafe property; object will be released after assignment`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wargument-outside-range
|
|
------------------------
|
|
This diagnostic is an error by default, but the flag ``-Wno-argument-outside-range`` can be used to disable the error.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:error:`error:` |nbsp| :diagtext:`argument value` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is outside the valid range \[`:placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`\]`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Warray-bounds
|
|
--------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`array index` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is past the end of the array (which contains` |nbsp| :placeholder:`B` |nbsp| :diagtext:`element`|+-------------+|:diagtext:`)`|
|
|
| || || |
|
|
| |+-------------+| |
|
|
| ||:diagtext:`s`|| |
|
|
| |+-------------+| |
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`array index` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is before the beginning of the array`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------+----------------------------------------------------------------------------+--------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`array argument is too small;` |nbsp| |+--------------------------------------------------------------------------+|:diagtext:`, callee requires at least` |nbsp| :placeholder:`B`|
|
|
| ||+------------------------------------------------------------------------+|| |
|
|
| |||:diagtext:`contains` |nbsp| :placeholder:`A` |nbsp| :diagtext:`elements`||| |
|
|
| ||+------------------------------------------------------------------------+|| |
|
|
| |+--------------------------------------------------------------------------+| |
|
|
| ||+----------------------------------------------+ || |
|
|
| |||:diagtext:`is of size` |nbsp| :placeholder:`A`| || |
|
|
| ||+----------------------------------------------+ || |
|
|
| |+--------------------------------------------------------------------------+| |
|
|
+---------------------------------------------------------------------------+----------------------------------------------------------------------------+--------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------+
|
|
|: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
|
|
-----
|
|
Synonym for `-Wasm-operand-widths`_.
|
|
|
|
|
|
-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 flag exists for GCC compatibility, and has no effect in Clang.
|
|
|
|
-Watimport-in-framework-header
|
|
------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`use of '@import' in framework header is discouraged, including this header requires -fmodules`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Watomic-alignment
|
|
------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------+------------------------+------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`atomic operation may incur significant performance penalty`|
|
|
| ||:diagtext:`large` || |
|
|
| |+----------------------+| |
|
|
| ||:diagtext:`misaligned`|| |
|
|
| |+----------------------+| |
|
|
+---------------------------+------------------------+------------------------------------------------------------------------------+
|
|
|
|
|
|
-Watomic-implicit-seq-cst
|
|
-------------------------
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`implicit use of sequentially-consistent atomic may incur stronger memory barriers than necessary`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Watomic-memory-ordering
|
|
------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`memory order argument to atomic operation is invalid`|
|
|
+-------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Watomic-properties
|
|
-------------------
|
|
Controls `-Wcustom-atomic-properties`_, `-Wimplicit-atomic-properties`_.
|
|
|
|
|
|
-Watomic-property-with-user-defined-accessor
|
|
--------------------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------+--------------------+-----------------------------------------------+--------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`writable atomic property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot pair a synthesized` |nbsp| |+------------------+| |nbsp| :diagtext:`with a user defined` |nbsp| |+------------------+|
|
|
| ||:diagtext:`getter`|| ||:diagtext:`getter`||
|
|
| |+------------------+| |+------------------+|
|
|
| ||:diagtext:`setter`|| ||:diagtext:`setter`||
|
|
| |+------------------+| |+------------------+|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------+--------------------+-----------------------------------------------+--------------------+
|
|
|
|
|
|
-Wattribute-packed-for-bitfield
|
|
-------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'packed' attribute was ignored on bit-fields with single-byte alignment in older versions of GCC and Clang`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wattributes
|
|
------------
|
|
This diagnostic is enabled by default.
|
|
|
|
Controls `-Wignored-attributes`_, `-Wunknown-attributes`_.
|
|
|
|
|
|
-Wauto-disable-vptr-sanitizer
|
|
-----------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`implicitly disabling vptr sanitizer because rtti wasn't enabled`|
|
|
+------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wauto-import
|
|
-------------
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------+---------------------------------+-------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`treating #`|+-------------------------------+| |nbsp| :diagtext:`as an import of module '`:placeholder:`B`:diagtext:`'`|
|
|
| ||:diagtext:`include` || |
|
|
| |+-------------------------------+| |
|
|
| ||:diagtext:`import` || |
|
|
| |+-------------------------------+| |
|
|
| ||:diagtext:`include\_next` || |
|
|
| |+-------------------------------+| |
|
|
| ||:diagtext:`\_\_include\_macros`|| |
|
|
| |+-------------------------------+| |
|
|
+-------------------------------------------------+---------------------------------+-------------------------------------------------------------------------+
|
|
|
|
|
|
-Wauto-storage-class
|
|
--------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'auto' storage class specifier is not permitted in C++11, and will not be supported in future releases`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wauto-var-id
|
|
-------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'auto' deduced as 'id' in declaration of` |nbsp| :placeholder:`A`|
|
|
+-------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wavailability
|
|
--------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'unavailable' availability overrides all other availability information`|
|
|
+--------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------+----------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ignoring availability attribute` |nbsp| |+--------------------------------------+|
|
|
| ||:diagtext:`on '+load' method` ||
|
|
| |+--------------------------------------+|
|
|
| ||:diagtext:`with constructor attribute`||
|
|
| |+--------------------------------------+|
|
|
| ||:diagtext:`with destructor attribute` ||
|
|
| |+--------------------------------------+|
|
|
+------------------------------------------------------------------------------+----------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`only 'unavailable' and 'deprecated' are supported for Swift availability`|
|
|
+---------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------+
|
|
|: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` || |
|
|
| |+------------------------------+| |+---------------------------------------------+| |
|
|
+---------------------------+--------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------+--------------------------------+
|
|
|
|
|
|
-Wavr-rtlib-linking-quirks
|
|
--------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`support for linking stdlibs for microcontroller '`:placeholder:`A`:diagtext:`' is not implemented`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`no avr-gcc installation can be found on the system, cannot link standard libraries`|
|
|
+-------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`no avr-libc installation can be found on the system, cannot link standard libraries`|
|
|
+--------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`no target microcontroller specified on command line, cannot link standard libraries, please pass -mmcu=<mcu name>`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`standard library not linked and so no interrupt vector table or compiler runtime routines will be linked`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wbackend-plugin
|
|
----------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
The text of this diagnostic is not controlled by Clang.
|
|
|
|
|
|
-Wbackslash-newline-escape
|
|
--------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`backslash and newline separated by space`|
|
|
+-------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wbad-function-cast
|
|
-------------------
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`cast from function call of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to non-matching type` |nbsp| :placeholder:`B`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wbinary-literal
|
|
----------------
|
|
Controls `-Wc++14-binary-literal`_, `-Wc++98-c++11-compat-binary-literal`_, `-Wgnu-binary-literal`_.
|
|
|
|
|
|
-Wbind-to-temporary-copy
|
|
------------------------
|
|
Also controls `-Wc++98-compat-bind-to-temporary-copy`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`C++98 requires an accessible copy constructor for class` |nbsp| :placeholder:`C` |nbsp| :diagtext:`when binding a reference to a temporary; was` |nbsp| |+---------------------+|
|
|
| ||:diagtext:`private` ||
|
|
| |+---------------------+|
|
|
| ||:diagtext:`protected`||
|
|
| |+---------------------+|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+
|
|
|
|
+--------------------------------------------------------------------+------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`no viable constructor` |nbsp| |+----------------------------------------------------+| |nbsp| :diagtext:`of type` |nbsp| :placeholder:`B`:diagtext:`; C++98 requires a copy constructor when binding a reference to a temporary`|
|
|
| ||:diagtext:`copying variable` || |
|
|
| |+----------------------------------------------------+| |
|
|
| ||:diagtext:`copying parameter` || |
|
|
| |+----------------------------------------------------+| |
|
|
| ||:diagtext:`returning object` || |
|
|
| |+----------------------------------------------------+| |
|
|
| ||:diagtext:`initializing statement expression result`|| |
|
|
| |+----------------------------------------------------+| |
|
|
| ||:diagtext:`throwing object` || |
|
|
| |+----------------------------------------------------+| |
|
|
| ||:diagtext:`copying member subobject` || |
|
|
| |+----------------------------------------------------+| |
|
|
| ||:diagtext:`copying array element` || |
|
|
| |+----------------------------------------------------+| |
|
|
| ||:diagtext:`allocating object` || |
|
|
| |+----------------------------------------------------+| |
|
|
| ||:diagtext:`copying temporary` || |
|
|
| |+----------------------------------------------------+| |
|
|
| ||:diagtext:`initializing base subobject` || |
|
|
| |+----------------------------------------------------+| |
|
|
| ||:diagtext:`initializing vector element` || |
|
|
| |+----------------------------------------------------+| |
|
|
| ||:diagtext:`capturing value` || |
|
|
| |+----------------------------------------------------+| |
|
|
+--------------------------------------------------------------------+------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wbinding-in-condition
|
|
----------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ISO C++17 does not permit structured binding declaration in a condition`|
|
|
+--------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wbitfield-constant-conversion
|
|
------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`implicit truncation from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to bit-field changes value from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wbitfield-enum-conversion
|
|
--------------------------
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`bit-field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not wide enough to store all enumerators of` |nbsp| :placeholder:`B`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`signed bit-field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`needs an extra bit to represent the largest positive enumerators of` |nbsp| :placeholder:`B`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`assigning value of signed enum type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to unsigned bit-field` |nbsp| :placeholder:`A`:diagtext:`; negative enumerators of enum` |nbsp| :placeholder:`B` |nbsp| :diagtext:`will be converted to positive values`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wbitfield-width
|
|
----------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`width of anonymous bit-field (`:placeholder:`A` |nbsp| :diagtext:`bits) exceeds width of its type; value will be truncated to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`bit`|+-------------+|
|
|
| || ||
|
|
| |+-------------+|
|
|
| ||:diagtext:`s`||
|
|
| |+-------------+|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`width of bit-field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`(`:placeholder:`B` |nbsp| :diagtext:`bits) exceeds the width of its type; value will be truncated to` |nbsp| :placeholder:`C` |nbsp| :diagtext:`bit`|+-------------+|
|
|
| || ||
|
|
| |+-------------+|
|
|
| ||:diagtext:`s`||
|
|
| |+-------------+|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+
|
|
|
|
|
|
-Wbitwise-conditional-parentheses
|
|
---------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`operator '?:' has lower precedence than '`:placeholder:`A`:diagtext:`'; '`:placeholder:`A`:diagtext:`' will be evaluated first`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wbitwise-op-parentheses
|
|
------------------------
|
|
**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`_.
|
|
|
|
|
|
-Wbool-operation
|
|
----------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------+-------------------------------------------------+--------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`bitwise negation of a boolean expression`|+-----------------------------------------------+| |nbsp| :diagtext:`did you mean logical negation?`|
|
|
| ||:diagtext:`;` || |
|
|
| |+-----------------------------------------------+| |
|
|
| || |nbsp| :diagtext:`always evaluates to 'true';`|| |
|
|
| |+-----------------------------------------------+| |
|
|
+-------------------------------------------------------------------------------+-------------------------------------------------+--------------------------------------------------+
|
|
|
|
|
|
-Wbraced-scalar-init
|
|
--------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------+----------------------------+-----------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`braces around` |nbsp| |+--------------------------+|:diagtext:`initializer`|
|
|
| ||:diagtext:`scalar` |nbsp| || |
|
|
| |+--------------------------+| |
|
|
| || || |
|
|
| |+--------------------------+| |
|
|
+------------------------------------------------------------+----------------------------+-----------------------+
|
|
|
|
|
|
-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-assume-aligned-alignment
|
|
----------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`requested alignment must be` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bytes or smaller; maximum alignment assumed`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-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| :diagtext:`'`:placeholder:`A`:diagtext:`' will always overflow; destination buffer has size` |nbsp| :placeholder:`B`:diagtext:`, but size argument is` |nbsp| :placeholder:`C`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wbuiltin-requires-header
|
|
-------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`declaration of built-in function '`:placeholder:`B`:diagtext:`' requires inclusion of the header <`:placeholder:`A`:diagtext:`>`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wc++-compat
|
|
------------
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+
|
|
|:warning:`warning:` |nbsp| |+-------------------------+|+------------------+| |nbsp| :diagtext:`has size 0 in C,` |nbsp| |+-------------------------+| |nbsp| :diagtext:`in C++`|
|
|
| || |||:diagtext:`struct`|| ||:diagtext:`size 1` || |
|
|
| |+-------------------------+|+------------------+| |+-------------------------+| |
|
|
| ||:diagtext:`empty` |nbsp| |||:diagtext:`union` || ||:diagtext:`non-zero size`|| |
|
|
| |+-------------------------+|+------------------+| |+-------------------------+| |
|
|
+---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+
|
|
|
|
|
|
-Wc++0x-compat
|
|
--------------
|
|
Synonym for `-Wc++11-compat`_.
|
|
|
|
|
|
-Wc++0x-extensions
|
|
------------------
|
|
Synonym for `-Wc++11-extensions`_.
|
|
|
|
|
|
-Wc++0x-narrowing
|
|
-----------------
|
|
Synonym for `-Wc++11-narrowing`_.
|
|
|
|
|
|
-Wc++11-compat
|
|
--------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
Also controls `-Wc++11-compat-deprecated-writable-strings`_, `-Wc++11-compat-reserved-user-defined-literal`_, `-Wc++11-narrowing`_, `-Wc++98-c++11-c++14-c++17-compat`_, `-Wc++98-c++11-c++14-compat`_, `-Wc++98-c++11-compat`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`integer literal is too large to be represented in type 'long' and is subject to undefined behavior under C++98, interpreting as 'unsigned long'; this literal will` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`in C++11 onwards`|
|
|
| ||:diagtext:`have type 'long long'`|| |
|
|
| |+---------------------------------+| |
|
|
| ||:diagtext:`be ill-formed` || |
|
|
| |+---------------------------------+| |
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'auto' storage class specifier is redundant and incompatible with C++11`|
|
|
+--------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`identifier after literal will be treated as a user-defined literal suffix in C++11`|
|
|
+-------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is a keyword in C++11`|
|
|
+-------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`use of right-shift operator ('>>') in template argument will require parentheses in C++11`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation cannot be 'inline'`|
|
|
+--------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`must occur at global scope`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not in a namespace enclosing` |nbsp| :placeholder:`B`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`must occur in namespace` |nbsp| :placeholder:`B`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`integer literal is too large to be represented in type 'long', interpreting as 'unsigned long' per C++98; this literal will` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`in C++11 onwards`|
|
|
| ||:diagtext:`have type 'long long'`|| |
|
|
| |+---------------------------------+| |
|
|
| ||:diagtext:`be ill-formed` || |
|
|
| |+---------------------------------+| |
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+
|
|
|
|
|
|
-Wc++11-compat-deprecated-writable-strings
|
|
------------------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`conversion from string literal to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wc++11-compat-pedantic
|
|
-----------------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
Controls `-Wc++11-compat`_, `-Wc++98-c++11-c++14-c++17-compat-pedantic`_, `-Wc++98-c++11-c++14-compat-pedantic`_, `-Wc++98-c++11-compat-pedantic`_.
|
|
|
|
|
|
-Wc++11-compat-reserved-user-defined-literal
|
|
--------------------------------------------
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`identifier after literal will be treated as a reserved user-defined literal suffix in C++11`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wc++11-extensions
|
|
------------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
Also controls `-Wc++11-extra-semi`_, `-Wc++11-inline-namespace`_, `-Wc++11-long-long`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`alias declarations are a C++11 extension`|
|
|
+-------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from array size expression of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| |+-----------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is a C++11 extension`|
|
|
| ||:diagtext:`integral` || |
|
|
| |+-----------------------+| |
|
|
| ||:diagtext:`enumeration`|| |
|
|
| |+-----------------------+| |
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'auto' type specifier is a C++11 extension`|
|
|
+---------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a C++11 extension`|
|
|
+-----------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------+-----------------------+--------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`function definitions are a C++11 extension`|
|
|
| ||:diagtext:`defaulted`|| |
|
|
| |+---------------------+| |
|
|
| ||:diagtext:`deleted` || |
|
|
| |+---------------------+| |
|
|
+---------------------------+-----------------------+--------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`befriending enumeration type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C++11 extension`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C++11 extension`|
|
|
+--------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`explicit conversion functions are a C++11 extension`|
|
|
+------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`extern templates are a C++11 extension`|
|
|
+-----------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`range-based for loop is a C++11 extension`|
|
|
+--------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`generalized initializer lists are a C++11 extension`|
|
|
+------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`use of enumeration in a nested name specifier is a C++11 extension`|
|
|
+---------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`non-class friend type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C++11 extension`|
|
|
+----------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`in-class initialization of non-static data member is a C++11 extension`|
|
|
+-------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' keyword is a C++11 extension`|
|
|
+--------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`reference qualifiers on functions are a C++11 extension`|
|
|
+----------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`rvalue references are a C++11 extension`|
|
|
+------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`scoped enumerations are a C++11 extension`|
|
|
+--------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in union is a C++11 extension`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`non-type template argument referring to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with internal linkage is a C++11 extension`|
|
|
| ||:diagtext:`function`|| |
|
|
| |+--------------------+| |
|
|
| ||:diagtext:`object` || |
|
|
| |+--------------------+| |
|
|
+--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'template' keyword outside of a template`|
|
|
+-------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`default template arguments for a function template are a C++11 extension`|
|
|
+---------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'typename' occurs outside of a template`|
|
|
+------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`unelaborated friend declaration is a C++11 extension; specify '`|+---------------------+|:diagtext:`' to befriend` |nbsp| :placeholder:`B`|
|
|
| ||:diagtext:`struct` || |
|
|
| |+---------------------+| |
|
|
| ||:diagtext:`interface`|| |
|
|
| |+---------------------+| |
|
|
| ||:diagtext:`union` || |
|
|
| |+---------------------+| |
|
|
| ||:diagtext:`class` || |
|
|
| |+---------------------+| |
|
|
| ||:diagtext:`enum` || |
|
|
| |+---------------------+| |
|
|
+------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`variadic templates are a C++11 extension`|
|
|
+-------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wc++11-extra-semi
|
|
------------------
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`extra ';' outside of a function is a C++11 extension`|
|
|
+-------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wc++11-inline-namespace
|
|
------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`inline namespaces are a C++11 feature`|
|
|
+----------------------------------------------------------------------------+
|
|
|
|
|
|
-Wc++11-long-long
|
|
-----------------
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'long long' is a C++11 extension`|
|
|
+-----------------------------------------------------------------------+
|
|
|
|
|
|
-Wc++11-narrowing
|
|
-----------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------+-----------------------------------------+--------+--------------------------------------------------------------------------------------------------------------------------+
|
|
|:error:`error:` |nbsp| |+---------------------------------------+| |nbsp| |+------------------------------------------------------------------------------------------------------------------------+|
|
|
| ||:diagtext:`case value` || ||+--------------------------------------------------------------------------------------------------------------+ ||
|
|
| |+---------------------------------------+| |||:diagtext:`cannot be narrowed from type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`| ||
|
|
| ||:diagtext:`enumerator value` || ||+--------------------------------------------------------------------------------------------------------------+ ||
|
|
| |+---------------------------------------+| |+------------------------------------------------------------------------------------------------------------------------+|
|
|
| ||:diagtext:`non-type template argument` || ||+----------------------------------------------------------------------------------------------------------------------+||
|
|
| |+---------------------------------------+| |||:diagtext:`evaluates to` |nbsp| :placeholder:`C`:diagtext:`, which cannot be narrowed to type` |nbsp| :placeholder:`D`|||
|
|
| ||:diagtext:`array size` || ||+----------------------------------------------------------------------------------------------------------------------+||
|
|
| |+---------------------------------------+| |+------------------------------------------------------------------------------------------------------------------------+|
|
|
| ||:diagtext:`constexpr if condition` || | |
|
|
| |+---------------------------------------+| | |
|
|
| ||:diagtext:`explicit specifier argument`|| | |
|
|
| |+---------------------------------------+| | |
|
|
+-----------------------+-----------------------------------------+--------+--------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:error:`error:` |nbsp| :diagtext:`constant expression evaluates to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`which cannot be narrowed to type` |nbsp| :placeholder:`B`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:error:`error:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be narrowed to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in initializer list`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:error:`error:` |nbsp| :diagtext:`non-constant-expression cannot be narrowed from type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in initializer list`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`constant expression evaluates to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`which cannot be narrowed to type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in C++11`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be narrowed to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in initializer list in C++11`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`non-constant-expression cannot be narrowed from type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in initializer list in C++11`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wc++14-binary-literal
|
|
----------------------
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`binary integer literals are a C++14 extension`|
|
|
+------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wc++14-compat
|
|
--------------
|
|
Controls `-Wc++98-c++11-c++14-c++17-compat`_, `-Wc++98-c++11-c++14-compat`_.
|
|
|
|
|
|
-Wc++14-compat-pedantic
|
|
-----------------------
|
|
Controls `-Wc++14-compat`_, `-Wc++98-c++11-c++14-c++17-compat-pedantic`_, `-Wc++98-c++11-c++14-compat-pedantic`_.
|
|
|
|
|
|
-Wc++14-extensions
|
|
------------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
Also controls `-Wc++14-binary-literal`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`|
|
|
| ||:diagtext:`function` || |
|
|
| |+-----------------------+| |
|
|
| ||:diagtext:`constructor`|| |
|
|
| |+-----------------------+| |
|
|
+-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`multiple return statements in constexpr function is a C++14 extension`|
|
|
+------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`variable declaration in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`|
|
|
| ||:diagtext:`function` || |
|
|
| |+-----------------------+| |
|
|
| ||:diagtext:`constructor`|| |
|
|
| |+-----------------------+| |
|
|
+----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------+-------------------------+----------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`type definition in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`|
|
|
| ||:diagtext:`function` || |
|
|
| |+-----------------------+| |
|
|
| ||:diagtext:`constructor`|| |
|
|
| |+-----------------------+| |
|
|
+-----------------------------------------------------------------------------+-------------------------+----------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++14 extension`|
|
|
+---------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'decltype(auto)' type specifier is a C++14 extension`|
|
|
+-------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`initialized lambda captures are a C++14 extension`|
|
|
+----------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`variable templates are a C++14 extension`|
|
|
+-------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wc++17-compat
|
|
--------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
Controls `-Wc++17-compat-mangling`_, `-Wc++98-c++11-c++14-c++17-compat`_, `-Wdeprecated-increment-bool`_, `-Wdeprecated-register`_.
|
|
|
|
|
|
-Wc++17-compat-mangling
|
|
-----------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`mangled name of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will change in C++17 due to non-throwing exception specification in function signature`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wc++17-compat-pedantic
|
|
-----------------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
Controls `-Wc++17-compat`_, `-Wc++98-c++11-c++14-c++17-compat-pedantic`_.
|
|
|
|
|
|
-Wc++17-extensions
|
|
------------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ISO C++ standards before C++17 do not allow new expression for type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to use list-initialization`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`constexpr if is a C++17 extension`|
|
|
+------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'constexpr' on lambda expressions is a C++17 extension`|
|
|
+---------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++17 extension`|
|
|
+---------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`decomposition declarations are a C++17 extension`|
|
|
+---------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`pack fold expression is a C++17 extension`|
|
|
+--------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'begin' and 'end' returning different types (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`) is a C++17 extension`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are a C++17 feature`|
|
|
+----------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------+--------------------+-------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'`|+------------------+|:diagtext:`' initialization statements are a C++17 extension`|
|
|
| ||:diagtext:`if` || |
|
|
| |+------------------+| |
|
|
| ||:diagtext:`switch`|| |
|
|
| |+------------------+| |
|
|
+----------------------------------------+--------------------+-------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`inline variables are a C++17 extension`|
|
|
+-----------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`use of multiple declarators in a single using declaration is a C++17 extension`|
|
|
+---------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`nested namespace definition is a C++17 extension; define each namespace separately`|
|
|
+-------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------+---------------------------+-----------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`attributes on` |nbsp| |+-------------------------+| |nbsp| :diagtext:`declaration are a C++17 extension`|
|
|
| ||:diagtext:`a namespace` || |
|
|
| |+-------------------------+| |
|
|
| ||:diagtext:`an enumerator`|| |
|
|
| |+-------------------------+| |
|
|
+------------------------------------------------------------+---------------------------+-----------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`capture of '\*this' by copy is a C++17 extension`|
|
|
+---------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`static\_assert with no message is a C++17 extension`|
|
|
+------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`template template parameter using 'typename' is a C++17 extension`|
|
|
+--------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`default scope specifier for attributes is a C++17 extension`|
|
|
+--------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`pack expansion of using declaration is a C++17 extension`|
|
|
+-----------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wc++1y-extensions
|
|
------------------
|
|
Synonym for `-Wc++14-extensions`_.
|
|
|
|
|
|
-Wc++1z-compat
|
|
--------------
|
|
Synonym for `-Wc++17-compat`_.
|
|
|
|
|
|
-Wc++1z-compat-mangling
|
|
-----------------------
|
|
Synonym for `-Wc++17-compat-mangling`_.
|
|
|
|
|
|
-Wc++1z-extensions
|
|
------------------
|
|
Synonym for `-Wc++17-extensions`_.
|
|
|
|
|
|
-Wc++20-compat
|
|
--------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`aggregate initialization of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with user-declared constructors is incompatible with C++20`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'consteval' specifier is incompatible with C++ standards before C++20`|
|
|
+------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'constinit' specifier is incompatible with C++ standards before C++20`|
|
|
+------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`this expression will be parsed as explicit(bool) in C++20`|
|
|
+------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'<=>' is a single token in C++20; add a space to avoid a change in behavior`|
|
|
+------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`type of UTF-8 string literal will change from array of const char to array of const char8\_t in C++20`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is a keyword in C++20`|
|
|
+-------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wc++20-compat-pedantic
|
|
-----------------------
|
|
Synonym for `-Wc++20-compat`_.
|
|
|
|
|
|
-Wc++20-designator
|
|
------------------
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`designated initializers are a C++20 extension`|
|
|
+------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wc++20-extensions
|
|
------------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
Also controls `-Wc++20-designator`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`use of function template name with no prior declaration in function call with explicit template arguments is a C++20 extension`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`default member initializer for bit-field is a C++20 extension`|
|
|
+----------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++20 extension`|
|
|
| ||:diagtext:`function` || |
|
|
| |+-----------------------+| |
|
|
| ||:diagtext:`constructor`|| |
|
|
| |+-----------------------+| |
|
|
+-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`constexpr constructor that does not initialize all members is a C++20 extension`|
|
|
+----------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------+-------------------------+----------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`function try block in constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++20 extension`|
|
|
| ||:diagtext:`function` || |
|
|
| |+-----------------------+| |
|
|
| ||:diagtext:`constructor`|| |
|
|
| |+-----------------------+| |
|
|
+------------------------------------------------------------------------------+-------------------------+----------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------+-------------------------+----------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`uninitialized variable in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++20 extension`|
|
|
| ||:diagtext:`function` || |
|
|
| |+-----------------------+| |
|
|
| ||:diagtext:`constructor`|| |
|
|
| |+-----------------------+| |
|
|
+------------------------------------------------------------------------------------+-------------------------+----------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`constexpr union constructor that does not initialize any member is a C++20 extension`|
|
|
+---------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++20 extension`|
|
|
+---------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`decomposition declaration declared` |nbsp| |+------------------------------------------------------------+| |nbsp| :diagtext:`is a C++20 extension`|
|
|
| ||+------------------------------------------+ || |
|
|
| |||:diagtext:`'`:placeholder:`B`:diagtext:`'`| || |
|
|
| ||+------------------------------------------+ || |
|
|
| |+------------------------------------------------------------+| |
|
|
| ||+----------------------------------------------------------+|| |
|
|
| |||:diagtext:`with '`:placeholder:`B`:diagtext:`' specifiers`||| |
|
|
| ||+----------------------------------------------------------+|| |
|
|
| |+------------------------------------------------------------+| |
|
|
+---------------------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`defaulted comparison operators are a C++20 extension`|
|
|
+-------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`explicit capture of 'this' with a capture default of '=' is a C++20 extension`|
|
|
+--------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`explicit(bool) is a C++20 extension`|
|
|
+--------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`range-based for loop initialization statements are a C++20 extension`|
|
|
+-----------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`initialized lambda pack captures are a C++20 extension`|
|
|
+---------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`inline nested namespace definition is a C++20 extension`|
|
|
+----------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`explicit template parameter list for lambdas is a C++20 extension`|
|
|
+--------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`invoking a pointer to a 'const &' member function on an rvalue is a C++20 extension`|
|
|
+--------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wc++2a-compat
|
|
--------------
|
|
Synonym for `-Wc++20-compat`_.
|
|
|
|
|
|
-Wc++2a-compat-pedantic
|
|
-----------------------
|
|
Synonym for `-Wc++20-compat-pedantic`_.
|
|
|
|
|
|
-Wc++2a-extensions
|
|
------------------
|
|
Synonym for `-Wc++20-extensions`_.
|
|
|
|
|
|
-Wc++98-c++11-c++14-c++17-compat
|
|
--------------------------------
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`use of function template name with no prior function template declaration in function call with explicit template arguments is incompatible with C++ standards before C++20`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`default member initializer for bit-field is incompatible with C++ standards before C++20`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++20`|
|
|
| ||:diagtext:`function` || |
|
|
| |+-----------------------+| |
|
|
| ||:diagtext:`constructor`|| |
|
|
| |+-----------------------+| |
|
|
+-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`constexpr constructor that does not initialize all members is incompatible with C++ standards before C++20`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`function try block in constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++20`|
|
|
| ||:diagtext:`function` || |
|
|
| |+-----------------------+| |
|
|
| ||:diagtext:`constructor`|| |
|
|
| |+-----------------------+| |
|
|
+------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`uninitialized variable in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++20`|
|
|
| ||:diagtext:`function` || |
|
|
| |+-----------------------+| |
|
|
| ||:diagtext:`constructor`|| |
|
|
| |+-----------------------+| |
|
|
+------------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`constexpr union constructor that does not initialize any member is incompatible with C++ standards before C++20`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`virtual constexpr functions are incompatible with C++ standards before C++20`|
|
|
+-------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------+--------------------------------------------------------------+-------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`decomposition declaration declared` |nbsp| |+------------------------------------------------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++20`|
|
|
| ||+------------------------------------------+ || |
|
|
| |||:diagtext:`'`:placeholder:`B`:diagtext:`'`| || |
|
|
| ||+------------------------------------------+ || |
|
|
| |+------------------------------------------------------------+| |
|
|
| ||+----------------------------------------------------------+|| |
|
|
| |||:diagtext:`with '`:placeholder:`B`:diagtext:`' specifiers`||| |
|
|
| ||+----------------------------------------------------------+|| |
|
|
| |+------------------------------------------------------------+| |
|
|
+---------------------------------------------------------------------------------+--------------------------------------------------------------+-------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`defaulted comparison operators are incompatible with C++ standards before C++20`|
|
|
+----------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------+--------------------------------------+----------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`explicitly defaulting this` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`with a type different from the implicit type is incompatible with C++ standards before C++20`|
|
|
| ||:diagtext:`default constructor` || |
|
|
| |+------------------------------------+| |
|
|
| ||:diagtext:`copy constructor` || |
|
|
| |+------------------------------------+| |
|
|
| ||:diagtext:`move constructor` || |
|
|
| |+------------------------------------+| |
|
|
| ||:diagtext:`copy assignment operator`|| |
|
|
| |+------------------------------------+| |
|
|
| ||:diagtext:`move assignment operator`|| |
|
|
| |+------------------------------------+| |
|
|
| ||:diagtext:`destructor` || |
|
|
| |+------------------------------------+| |
|
|
+-------------------------------------------------------------------------+--------------------------------------+----------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`explicit capture of 'this' with a capture default of '=' is incompatible with C++ standards before C++20`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`explicit(bool) is incompatible with C++ standards before C++20`|
|
|
+-----------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`range-based for loop initialization statements are incompatible with C++ standards before C++20`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`initialized lambda capture packs are incompatible with C++ standards before C++20`|
|
|
+------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`inline nested namespace definition is incompatible with C++ standards before C++20`|
|
|
+-------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------+----------------------------------+-----------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`of lambda is incompatible with C++ standards before C++20`|
|
|
| ||:diagtext:`default construction`|| |
|
|
| |+--------------------------------+| |
|
|
| ||:diagtext:`assignment` || |
|
|
| |+--------------------------------+| |
|
|
+---------------------------+----------------------------------+-----------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`explicit template parameter list for lambdas is incompatible with C++ standards before C++20`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'<=>' operator is incompatible with C++ standards before C++20`|
|
|
+-----------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'char8\_t' type specifier is incompatible with C++ standards before C++20`|
|
|
+----------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wc++98-c++11-c++14-c++17-compat-pedantic
|
|
-----------------------------------------
|
|
Also controls `-Wc++98-c++11-c++14-c++17-compat`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`designated initializers are incompatible with C++ standards before C++20`|
|
|
+---------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`invoking a pointer to a 'const &' member function on an rvalue is incompatible with C++ standards before C++20`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wc++98-c++11-c++14-compat
|
|
--------------------------
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`class template argument deduction is incompatible with C++ standards before C++17`|+---------------------------------------------------------------------------------+|
|
|
| || ||
|
|
| |+---------------------------------------------------------------------------------+|
|
|
| ||+-------------------------------------------------------------------------------+||
|
|
| |||:diagtext:`; for compatibility, use explicit type name` |nbsp| :placeholder:`B`|||
|
|
| ||+-------------------------------------------------------------------------------+||
|
|
| |+---------------------------------------------------------------------------------+|
|
|
+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`constexpr if is incompatible with C++ standards before C++17`|
|
|
+---------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`constexpr on lambda expressions is incompatible with C++ standards before C++17`|
|
|
+----------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`decomposition declarations are incompatible with C++ standards before C++17`|
|
|
+------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`pack fold expression is incompatible with C++ standards before C++17`|
|
|
+-----------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------+--------------------+----------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+------------------+| |nbsp| :diagtext:`initialization statements are incompatible with C++ standards before C++17`|
|
|
| ||:diagtext:`if` || |
|
|
| |+------------------+| |
|
|
| ||:diagtext:`switch`|| |
|
|
| |+------------------+| |
|
|
+---------------------------+--------------------+----------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`inline variables are incompatible with C++ standards before C++17`|
|
|
+--------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`nested namespace definition is incompatible with C++ standards before C++17`|
|
|
+------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`by value capture of '\*this' is incompatible with C++ standards before C++17`|
|
|
+-------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`static\_assert with no message is incompatible with C++ standards before C++17`|
|
|
+---------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`non-type template parameters declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`are incompatible with C++ standards before C++17`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`template template parameter using 'typename' is incompatible with C++ standards before C++17`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C++ standards before C++17`|
|
|
+--------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`default scope specifier for attributes is incompatible with C++ standards before C++17`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`use of multiple declarators in a single using declaration is incompatible with C++ standards before C++17`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`pack expansion using declaration is incompatible with C++ standards before C++17`|
|
|
+-----------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'begin' and 'end' returning different types (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`) is incompatible with C++ standards before C++17`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wc++98-c++11-c++14-compat-pedantic
|
|
-----------------------------------
|
|
Also controls `-Wc++98-c++11-c++14-compat`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------+---------------------------+--------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`attributes on` |nbsp| |+-------------------------+| |nbsp| :diagtext:`declaration are incompatible with C++ standards before C++17`|
|
|
| ||:diagtext:`a namespace` || |
|
|
| |+-------------------------+| |
|
|
| ||:diagtext:`an enumerator`|| |
|
|
| |+-------------------------+| |
|
|
+------------------------------------------------------------+---------------------------+--------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are incompatible with C++ standards before C++17`|
|
|
+---------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wc++98-c++11-compat
|
|
--------------------
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`|
|
|
| ||:diagtext:`function` || |
|
|
| |+-----------------------+| |
|
|
| ||:diagtext:`constructor`|| |
|
|
| |+-----------------------+| |
|
|
+-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`multiple return statements in constexpr function is incompatible with C++ standards before C++14`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`constexpr function with no return statements is incompatible with C++ standards before C++14`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`variable declaration in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`|
|
|
| ||:diagtext:`function` || |
|
|
| |+-----------------------+| |
|
|
| ||:diagtext:`constructor`|| |
|
|
| |+-----------------------+| |
|
|
+----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`type definition in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`|
|
|
| ||:diagtext:`function` || |
|
|
| |+-----------------------+| |
|
|
| ||:diagtext:`constructor`|| |
|
|
| |+-----------------------+| |
|
|
+-----------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'decltype(auto)' type specifier is incompatible with C++ standards before C++14`|
|
|
+----------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`return type deduction is incompatible with C++ standards before C++14`|
|
|
+------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`digit separators are incompatible with C++ standards before C++14`|
|
|
+--------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`generic lambdas are incompatible with C++11`|
|
|
+----------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`initialized lambda captures are incompatible with C++ standards before C++14`|
|
|
+-------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`variable templates are incompatible with C++ standards before C++14`|
|
|
+----------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wc++98-c++11-compat-binary-literal
|
|
-----------------------------------
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`binary integer literals are incompatible with C++ standards before C++14`|
|
|
+---------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wc++98-c++11-compat-pedantic
|
|
-----------------------------
|
|
Controls `-Wc++98-c++11-compat`_, `-Wc++98-c++11-compat-binary-literal`_.
|
|
|
|
|
|
-Wc++98-compat
|
|
--------------
|
|
Also controls `-Wc++98-c++11-c++14-c++17-compat`_, `-Wc++98-c++11-c++14-compat`_, `-Wc++98-c++11-compat`_, `-Wc++98-compat-local-type-template-args`_, `-Wc++98-compat-unnamed-type-template-args`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`alias declarations are incompatible with C++98`|
|
|
+-------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'alignas' is incompatible with C++98`|
|
|
+---------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`alignof expressions are incompatible with C++98`|
|
|
+--------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`C++11 attribute syntax is incompatible with C++98`|
|
|
+----------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'auto' type specifier is incompatible with C++98`|
|
|
+---------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'constexpr' specifier is incompatible with C++98`|
|
|
+---------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`constructor call from initializer list is incompatible with C++98`|
|
|
+--------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'decltype' type specifier is incompatible with C++98`|
|
|
+-------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------+-----------------------+--------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`function definitions are incompatible with C++98`|
|
|
| ||:diagtext:`defaulted`|| |
|
|
| |+---------------------+| |
|
|
| ||:diagtext:`deleted` || |
|
|
| |+---------------------+| |
|
|
+---------------------------+-----------------------+--------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`delegating constructors are incompatible with C++98`|
|
|
+------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`scalar initialized from empty initializer list is incompatible with C++98`|
|
|
+----------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`initializing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`from an 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` |nbsp| |+--------------------+| |nbsp| :diagtext:`goto statement to one of its possible targets is incompatible with C++98`|
|
|
| ||:diagtext:`indirect`|| |
|
|
| |+--------------------+| |
|
|
| ||:diagtext:`asm` || |
|
|
| |+--------------------+| |
|
|
+-------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`initialization of initializer\_list object is incompatible with C++98`|
|
|
+------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`inline namespaces are incompatible with C++98`|
|
|
+------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`lambda expressions are incompatible with C++98`|
|
|
+-------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'<::' is treated as digraph '<:' (aka '\[') followed by ':' in C++98`|
|
|
+-----------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`literal operators are incompatible with C++98`|
|
|
+------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`universal character name referring to a control character is incompatible with C++98`|
|
|
+---------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`specifying character '`:placeholder:`A`:diagtext:`' with a universal character name is incompatible with C++98`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`noexcept specifications are incompatible with C++98`|
|
|
+------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`noexcept expressions are incompatible with C++98`|
|
|
+---------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`use of non-static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in an unevaluated context is incompatible with C++98`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`non-class friend type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with C++98`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`in-class initialization of non-static data members is incompatible with C++98`|
|
|
+--------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------+------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+----------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+----------------------------+| |nbsp| :diagtext:`member` |nbsp| :placeholder:`B` |nbsp| :diagtext:`with a non-trivial` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`is incompatible with C++98`|
|
|
| ||:diagtext:`anonymous struct`|| ||:diagtext:`default constructor` || |
|
|
| |+----------------------------+| |+------------------------------------+| |
|
|
| ||:diagtext:`union` || ||:diagtext:`copy constructor` || |
|
|
| |+----------------------------+| |+------------------------------------+| |
|
|
| | | ||:diagtext:`move constructor` || |
|
|
| | | |+------------------------------------+| |
|
|
| | | ||:diagtext:`copy assignment operator`|| |
|
|
| | | |+------------------------------------+| |
|
|
| | | ||:diagtext:`move assignment operator`|| |
|
|
| | | |+------------------------------------+| |
|
|
| | | ||:diagtext:`destructor` || |
|
|
| | | |+------------------------------------+| |
|
|
+---------------------------+------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+----------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'nullptr' is incompatible with C++98`|
|
|
+---------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' keyword is incompatible with C++98`|
|
|
+--------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`passing object of trivial but non-POD type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`through variadic` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++98`|
|
|
| ||:diagtext:`function` || |
|
|
| |+-----------------------+| |
|
|
| ||:diagtext:`block` || |
|
|
| |+-----------------------+| |
|
|
| ||:diagtext:`method` || |
|
|
| |+-----------------------+| |
|
|
| ||:diagtext:`constructor`|| |
|
|
| |+-----------------------+| |
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`raw string literals are incompatible with C++98`|
|
|
+--------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`reference qualifiers on functions are incompatible with C++98`|
|
|
+----------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`reference initialized from initializer list is incompatible with C++98`|
|
|
+-------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`rvalue references are incompatible with C++98`|
|
|
+------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`scoped enumerations are incompatible with C++98`|
|
|
+--------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`substitution failure due to access control is incompatible with C++98`|
|
|
+------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`static\_assert declarations are incompatible with C++98`|
|
|
+----------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in union is incompatible with C++98`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`jump from switch statement to this case label is incompatible with C++98`|
|
|
+---------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`redundant parentheses surrounding address non-type template argument are incompatible with C++98`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`use of null pointer as non-type template argument is incompatible with C++98`|
|
|
+-------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`non-type template argument referring to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with internal linkage is incompatible with C++98`|
|
|
| ||:diagtext:`function`|| |
|
|
| |+--------------------+| |
|
|
| ||:diagtext:`object` || |
|
|
| |+--------------------+| |
|
|
+--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`use of 'template' keyword outside of a template is incompatible with C++98`|
|
|
+-----------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`default template arguments for a function template are incompatible with C++98`|
|
|
+---------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`trailing return types are incompatible with C++98`|
|
|
+----------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`consecutive right angle brackets are incompatible with C++98 (use '> >')`|
|
|
+---------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`use of 'typename' outside of a template is incompatible with C++98`|
|
|
+---------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------+-----------------------+------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`befriending` |nbsp| :placeholder:`B` |nbsp| :diagtext:`without '`|+---------------------+|:diagtext:`' keyword is incompatible with C++98`|
|
|
| ||:diagtext:`struct` || |
|
|
| |+---------------------+| |
|
|
| ||:diagtext:`interface`|| |
|
|
| |+---------------------+| |
|
|
| ||:diagtext:`union` || |
|
|
| |+---------------------+| |
|
|
| ||:diagtext:`class` || |
|
|
| |+---------------------+| |
|
|
| ||:diagtext:`enum` || |
|
|
| |+---------------------+| |
|
|
+-------------------------------------------------------------------------------------------------------+-----------------------+------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`using this character in an identifier is incompatible with C++98`|
|
|
+-------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C++98`|
|
|
+-----------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' type specifier is incompatible with C++98`|
|
|
+---------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`inheriting constructors are incompatible with C++98`|
|
|
+------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`variadic templates are incompatible with C++98`|
|
|
+-------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wc++98-compat-bind-to-temporary-copy
|
|
-------------------------------------
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------+----------------------------+
|
|
|:warning:`warning:` |nbsp| |+----------------------------------------------------+| |nbsp| :diagtext:`of type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`when binding a reference to a temporary would` |nbsp| |+----------------------------------------------+| |nbsp| :diagtext:`in C++98`|
|
|
| ||:diagtext:`copying variable` || ||:diagtext:`invoke an inaccessible constructor`|| |
|
|
| |+----------------------------------------------------+| |+----------------------------------------------+| |
|
|
| ||:diagtext:`copying parameter` || ||:diagtext:`find no viable constructor` || |
|
|
| |+----------------------------------------------------+| |+----------------------------------------------+| |
|
|
| ||:diagtext:`returning object` || ||:diagtext:`find ambiguous constructors` || |
|
|
| |+----------------------------------------------------+| |+----------------------------------------------+| |
|
|
| ||:diagtext:`initializing statement expression result`|| ||:diagtext:`invoke a deleted constructor` || |
|
|
| |+----------------------------------------------------+| |+----------------------------------------------+| |
|
|
| ||:diagtext:`throwing object` || | | |
|
|
| |+----------------------------------------------------+| | | |
|
|
| ||:diagtext:`copying member subobject` || | | |
|
|
| |+----------------------------------------------------+| | | |
|
|
| ||:diagtext:`copying array element` || | | |
|
|
| |+----------------------------------------------------+| | | |
|
|
| ||:diagtext:`allocating object` || | | |
|
|
| |+----------------------------------------------------+| | | |
|
|
| ||:diagtext:`copying temporary` || | | |
|
|
| |+----------------------------------------------------+| | | |
|
|
| ||:diagtext:`initializing base subobject` || | | |
|
|
| |+----------------------------------------------------+| | | |
|
|
| ||:diagtext:`initializing vector element` || | | |
|
|
| |+----------------------------------------------------+| | | |
|
|
| ||:diagtext:`capturing value` || | | |
|
|
| |+----------------------------------------------------+| | | |
|
|
+---------------------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------+----------------------------+
|
|
|
|
|
|
-Wc++98-compat-extra-semi
|
|
-------------------------
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`extra ';' outside of a function is incompatible with C++98`|
|
|
+-------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wc++98-compat-local-type-template-args
|
|
---------------------------------------
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`local type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as template argument is incompatible with C++98`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wc++98-compat-pedantic
|
|
-----------------------
|
|
Also controls `-Wc++98-c++11-c++14-c++17-compat-pedantic`_, `-Wc++98-c++11-c++14-compat-pedantic`_, `-Wc++98-c++11-compat-pedantic`_, `-Wc++98-compat`_, `-Wc++98-compat-bind-to-temporary-copy`_, `-Wc++98-compat-extra-semi`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from array size expression of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| |+-----------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is incompatible with C++98`|
|
|
| ||:diagtext:`integral` || |
|
|
| |+-----------------------+| |
|
|
| ||:diagtext:`enumeration`|| |
|
|
| |+-----------------------+| |
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`cast between pointer-to-function and pointer-to-object is incompatible with C++98`|
|
|
+------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`empty macro arguments are incompatible with C++98`|
|
|
+----------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are incompatible with C++98`|
|
|
+--------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`extern templates are incompatible with C++98`|
|
|
+-----------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'long long' is incompatible with C++98`|
|
|
+-----------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`C++98 requires newline at end of file`|
|
|
+----------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`#line number greater than 32767 is incompatible with C++98`|
|
|
+-------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`variadic macros are incompatible with C++98`|
|
|
+----------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wc++98-compat-unnamed-type-template-args
|
|
-----------------------------------------
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`unnamed type as template argument is incompatible with C++98`|
|
|
+---------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wc11-extensions
|
|
----------------
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`anonymous unions are a C11 extension`|
|
|
+---------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`anonymous structs are a C11 extension`|
|
|
+----------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is a C11 extension`|
|
|
+----------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wc2x-extensions
|
|
----------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`omitting the parameter name in a function definition is a C2x extension`|
|
|
+--------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wc99-compat
|
|
------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------+--------------------------------------------------------+--------------------------------------------+
|
|
|:warning:`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-designator
|
|
----------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
Also controls `-Wc++20-designator`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`designated initializers are a C99 feature`|
|
|
+--------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`array designators are a C99 extension`|
|
|
+----------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`mixture of designated and non-designated initializers in the same initializer list is a C99 extension`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`nested designators are a C99 extension`|
|
|
+-----------------------------------------------------------------------------+
|
|
|
|
|
|
-Wc99-extensions
|
|
----------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
Also controls `-Wc99-designator`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------+
|
|
|:warning:`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:`'`:placeholder:`A`:diagtext:`' is a C99 extension`|
|
|
+----------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------+
|
|
|: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:`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`|
|
|
+---------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wcall-to-pure-virtual-from-ctor-dtor
|
|
-------------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`call to pure virtual member function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has undefined behavior; overrides of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in subclasses are not available in the` |nbsp| |+-----------------------+| |nbsp| :diagtext:`of` |nbsp| :placeholder:`C`|
|
|
| ||:diagtext:`constructor`|| |
|
|
| |+-----------------------+| |
|
|
| ||:diagtext:`destructor` || |
|
|
| |+-----------------------+| |
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+
|
|
|
|
|
|
-Wcast-align
|
|
------------
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`increases required alignment from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wcast-calling-convention
|
|
-------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`cast between incompatible calling conventions '`:placeholder:`A`:diagtext:`' and '`:placeholder:`B`:diagtext:`'; calls through this pointer may abort at runtime`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wcast-of-sel-type
|
|
------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`cast of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is deprecated; use sel\_getName instead`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wcast-qual
|
|
-----------
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`drops` |nbsp| |+-----------------------------------------+|
|
|
| ||:diagtext:`const and volatile qualifiers`||
|
|
| |+-----------------------------------------+|
|
|
| ||:diagtext:`const qualifier` ||
|
|
| |+-----------------------------------------+|
|
|
| ||:diagtext:`volatile qualifier` ||
|
|
| |+-----------------------------------------+|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`must have all intermediate pointers const qualified to be safe`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wcast-qual-unrelated
|
|
---------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`from` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to` |nbsp| :placeholder:`C` |nbsp| :diagtext:`because it casts away qualifiers, even though the source and destination types are unrelated`|
|
|
| ||:diagtext:`const\_cast` || |
|
|
| |+---------------------------------+| |
|
|
| ||:diagtext:`static\_cast` || |
|
|
| |+---------------------------------+| |
|
|
| ||:diagtext:`reinterpret\_cast` || |
|
|
| |+---------------------------------+| |
|
|
| ||:diagtext:`dynamic\_cast` || |
|
|
| |+---------------------------------+| |
|
|
| ||:diagtext:`C-style cast` || |
|
|
| |+---------------------------------+| |
|
|
| ||:diagtext:`functional-style cast`|| |
|
|
| |+---------------------------------+| |
|
|
+---------------------------------------------------------------------+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wchar-align
|
|
------------
|
|
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
|
|
|
|
-Wchar-subscripts
|
|
-----------------
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------+-------------------------+-------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`array section` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is of type 'char'`|
|
|
| ||:diagtext:`lower bound`|| |
|
|
| |+-----------------------+| |
|
|
| ||:diagtext:`length` || |
|
|
| |+-----------------------+| |
|
|
+------------------------------------------------------------+-------------------------+-------------------------------------+
|
|
|
|
+------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`array subscript is of type 'char'`|
|
|
+------------------------------------------------------------------------+
|
|
|
|
|
|
-Wclang-cl-pch
|
|
--------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`support for '/Yc' with more than one source file not implemented yet; flag ignored`|
|
|
+-------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`support for '/Yc' and '/Yu' with different filenames not implemented yet; flags ignored`|
|
|
+------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`#pragma hdrstop filename not supported, /Fp can be used to specify precompiled header filename`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`definition of macro` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not match definition in precompiled header`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wclass-varargs
|
|
---------------
|
|
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`|| |
|
|
| |+-----------------------+| |
|
|
+---------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------+
|
|
|
|
|
|
-Wcmse-union-leak
|
|
-----------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------+-------------------------------------------------+----------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`passing union across security boundary via` |nbsp| |+-----------------------------------------------+| |nbsp| :diagtext:`may leak information`|
|
|
| ||+---------------------------------------------+|| |
|
|
| |||:diagtext:`parameter` |nbsp| :placeholder:`B`||| |
|
|
| ||+---------------------------------------------+|| |
|
|
| |+-----------------------------------------------+| |
|
|
| ||:diagtext:`return value` || |
|
|
| |+-----------------------------------------------+| |
|
|
+-----------------------------------------------------------------------------------------+-------------------------------------------------+----------------------------------------+
|
|
|
|
|
|
-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`|
|
|
+----------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wconcepts-ts-compat
|
|
--------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ISO C++20 does not permit the 'bool' keyword after 'concept'`|
|
|
+---------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-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`_, `-Wobjc-bool-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-evaluated
|
|
--------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' will always evaluate to 'true' in a manifestly constant-evaluated expression`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-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` |nbsp| :placeholder:`A` |nbsp| :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`_, `-Wimplicit-float-conversion`_, `-Wimplicit-int-conversion`_, `-Wint-conversion`_, `-Wliteral-conversion`_, `-Wnon-literal-null-conversion`_, `-Wnull-conversion`_, `-Wobjc-literal-conversion`_, `-Wshorten-64-to-32`_, `-Wsign-conversion`_, `-Wstring-conversion`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`implicit conversion discards imaginary component:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns vector to scalar:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`passing non-generic address space pointer to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may cause dynamic conversion affecting performance`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`non-type template argument with value '`:placeholder:`A`:diagtext:`' converted to '`:placeholder:`B`:diagtext:`' for unsigned template parameter of type` |nbsp| :placeholder:`C`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`non-type template argument value '`:placeholder:`A`:diagtext:`' truncated to '`:placeholder:`B`:diagtext:`' for template parameter of type` |nbsp| :placeholder:`C`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wconversion-null
|
|
-----------------
|
|
Synonym for `-Wnull-conversion`_.
|
|
|
|
|
|
-Wcoroutine
|
|
-----------
|
|
Synonym for `-Wcoroutine-missing-unhandled-exception`_.
|
|
|
|
|
|
-Wcoroutine-missing-unhandled-exception
|
|
---------------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is required to declare the member 'unhandled\_exception()' when exceptions are enabled`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wcovered-switch-default
|
|
------------------------
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`default label in switch which covers all enumeration values`|
|
|
+--------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wcpp
|
|
-----
|
|
Synonym for `-W#warnings`_.
|
|
|
|
|
|
-Wcstring-format-directive
|
|
--------------------------
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`using` |nbsp| :placeholder:`A` |nbsp| :diagtext:`directive in` |nbsp| |+--------------------+| |nbsp| :diagtext:`which is being passed as a formatting argument to the formatting` |nbsp| |+----------------------+|
|
|
| ||:diagtext:`NSString`|| ||:diagtext:`method` ||
|
|
| |+--------------------+| |+----------------------+|
|
|
| ||:diagtext:`CFString`|| ||:diagtext:`CFfunction`||
|
|
| |+--------------------+| |+----------------------+|
|
|
+------------------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+------------------------+
|
|
|
|
|
|
-Wctad-maybe-unsupported
|
|
------------------------
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may not intend to support class template argument deduction`|
|
|
+--------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wctor-dtor-privacy
|
|
-------------------
|
|
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
|
|
|
|
-Wctu
|
|
-----
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`imported AST from '`:placeholder:`A`:diagtext:`' had been generated for a different target, current:` |nbsp| :placeholder:`B`:diagtext:`, imported:` |nbsp| :placeholder:`C`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wcuda-compat
|
|
-------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute parameter` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is negative and will be ignored`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`nvcc does not allow '\_\_`:placeholder:`A`:diagtext:`\_\_' to appear after '()' in lambdas`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ignored 'inline' attribute on kernel function` |nbsp| :placeholder:`A`|
|
|
+------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`kernel function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a member function; this may not be accepted by nvcc`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`argument to '#pragma unroll' should not be in parentheses in CUDA C/C++`|
|
|
+--------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wcustom-atomic-properties
|
|
--------------------------
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------+--------------------+----------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`atomic by default property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has a user defined` |nbsp| |+------------------+| |nbsp| :diagtext:`(property should be marked 'atomic' if this is intended)`|
|
|
| ||:diagtext:`getter`|| |
|
|
| |+------------------+| |
|
|
| ||:diagtext:`setter`|| |
|
|
| |+------------------+| |
|
|
+---------------------------------------------------------------------------------------------------------------------------------------+--------------------+----------------------------------------------------------------------------+
|
|
|
|
|
|
-Wdangling
|
|
----------
|
|
This diagnostic is enabled by default.
|
|
|
|
Also controls `-Wdangling-field`_, `-Wdangling-gsl`_, `-Wdangling-initializer-list`_, `-Wreturn-stack-address`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------+----------------------------+---------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| |nbsp| |+--------------------------+|:diagtext:`will be destroyed at the end of the full-expression`|
|
|
| ||+-----------------------------+---------------------------------------------------------+--------+------------------------------------------------------------------------+|| ||+------------------------+|| |
|
|
| |||:diagtext:`temporary` |nbsp| |+-------------------------------------------------------+| |nbsp| |+----------------------------------------------------------------------+||| |||:placeholder:`D` |nbsp| ||| |
|
|
| ||| ||:diagtext:`whose address is used as value of` || ||+-------------------------------+------------------------------------+|||| ||+------------------------+|| |
|
|
| ||| |+-------------------------------------------------------+| |||+-----------------------------+|:diagtext:`member of local variable`||||| |+--------------------------+| |
|
|
| ||| ||+--------------------------------+--------------------+|| |||| || ||||| || || |
|
|
| ||| |||+------------------------------+|:diagtext:`bound to`||| |||+-----------------------------+| ||||| |+--------------------------+| |
|
|
| ||| |||| || ||| ||||:diagtext:`reference` |nbsp| || ||||| | | |
|
|
| ||| |||+------------------------------+| ||| |||+-----------------------------+| ||||| | | |
|
|
| ||| ||||:diagtext:`implicitly` |nbsp| || ||| ||+-------------------------------+------------------------------------+|||| | | |
|
|
| ||| |||+------------------------------+| ||| |+----------------------------------------------------------------------+||| | | |
|
|
| ||| ||+--------------------------------+--------------------+|| ||+-------------------------+-----------------------+ |||| | | |
|
|
| ||| |+-------------------------------------------------------+| |||:diagtext:`local` |nbsp| |+---------------------+| |||| | | |
|
|
| ||| | | ||| ||:diagtext:`variable` || |||| | | |
|
|
| ||| | | ||| |+---------------------+| |||| | | |
|
|
| ||| | | ||| ||:diagtext:`reference`|| |||| | | |
|
|
| ||| | | ||| |+---------------------+| |||| | | |
|
|
| ||| | | ||+-------------------------+-----------------------+ |||| | | |
|
|
| ||| | | |+----------------------------------------------------------------------+||| | | |
|
|
| ||+-----------------------------+---------------------------------------------------------+--------+------------------------------------------------------------------------+|| | | |
|
|
| |+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| | | |
|
|
| ||+---------------------------------+----------------------------------------------------------+ || | | |
|
|
| |||:diagtext:`array backing` |nbsp| |+--------------------------------------------------------+| || | | |
|
|
| ||| ||:diagtext:`initializer list subobject of local variable`|| || | | |
|
|
| ||| |+--------------------------------------------------------+| || | | |
|
|
| ||| ||:diagtext:`local initializer list` || || | | |
|
|
| ||| |+--------------------------------------------------------+| || | | |
|
|
| ||+---------------------------------+----------------------------------------------------------+ || | | |
|
|
| |+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| | | |
|
|
+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------+----------------------------+---------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+---------------------------+--------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`sorry, lifetime extension of` |nbsp| |+---------------------------------------------+| |nbsp| :diagtext:`created by aggregate initialization using default member initializer is not supported; lifetime of` |nbsp| |+-------------------------+| |nbsp| :diagtext:`will end at the end of the full-expression`|
|
|
| ||:diagtext:`temporary` || ||:diagtext:`temporary` || |
|
|
| |+---------------------------------------------+| |+-------------------------+| |
|
|
| ||:diagtext:`backing array of initializer list`|| ||:diagtext:`backing array`|| |
|
|
| |+---------------------------------------------+| |+-------------------------+| |
|
|
+---------------------------------------------------------------------------+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+---------------------------+--------------------------------------------------------------+
|
|
|
|
|
|
-Wdangling-else
|
|
---------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`add explicit braces to avoid dangling else`|
|
|
+---------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wdangling-field
|
|
----------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------+-----------------------+------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`binding reference member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to stack allocated` |nbsp| |+---------------------+| |nbsp| :placeholder:`B`|
|
|
| ||:diagtext:`variable` || |
|
|
| |+---------------------+| |
|
|
| ||:diagtext:`parameter`|| |
|
|
| |+---------------------+| |
|
|
+-------------------------------------------------------------------------------------------------------------------------------------+-----------------------+------------------------+
|
|
|
|
+---------------------------+--------------------------------------------------------+--------+----------------------------------+--------------------------------------------------+----------------------+------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+------------------------------------------------------+| |nbsp| |+--------------------------------+|:diagtext:`member` |nbsp| :placeholder:`A` |nbsp| |+--------------------+| |nbsp| :diagtext:`a temporary object whose lifetime is shorter than the lifetime of the constructed object`|
|
|
| ||:diagtext:`reference` || || || ||:diagtext:`binds to`|| |
|
|
| |+------------------------------------------------------+| |+--------------------------------+| |+--------------------+| |
|
|
| ||:diagtext:`backing array for 'std::initializer\_list'`|| ||:diagtext:`subobject of` |nbsp| || ||:diagtext:`is` || |
|
|
| |+------------------------------------------------------+| |+--------------------------------+| |+--------------------+| |
|
|
+---------------------------+--------------------------------------------------------+--------+----------------------------------+--------------------------------------------------+----------------------+------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`initializing pointer member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with the stack address of` |nbsp| |+---------------------+| |nbsp| :placeholder:`B`|
|
|
| ||:diagtext:`variable` || |
|
|
| |+---------------------+| |
|
|
| ||:diagtext:`parameter`|| |
|
|
| |+---------------------+| |
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`temporary bound to reference member of allocated object will be destroyed at the end of the full-expression`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wdangling-gsl
|
|
--------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`object backing the pointer will be destroyed at the end of the full-expression`|
|
|
+---------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`initializing pointer member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to point to a temporary object whose lifetime is shorter than the lifetime of the constructed object`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wdangling-initializer-list
|
|
---------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------+----------------------------------------------------------------+-----------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`array backing` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`will be destroyed at the end of the full-expression`|
|
|
| ||:diagtext:`initializer list subobject of the allocated object`|| |
|
|
| |+--------------------------------------------------------------+| |
|
|
| ||:diagtext:`the allocated initializer list` || |
|
|
| |+--------------------------------------------------------------+| |
|
|
+------------------------------------------------------------+----------------------------------------------------------------+-----------------------------------------------------------------------+
|
|
|
|
|
|
-Wdarwin-sdk-settings
|
|
---------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`SDK settings were ignored as 'SDKSettings.json' could not be parsed`|
|
|
+----------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wdate-time
|
|
-----------
|
|
**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`|
|
|
+-----------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wdefaulted-function-deleted
|
|
----------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------+------------------------+--------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`explicitly defaulted` |nbsp| |+----------------------+| |nbsp| :diagtext:`comparison operator` |nbsp| :diagtext:`is implicitly deleted`|
|
|
| ||:diagtext:`<ERROR>` || |
|
|
| |+----------------------+| |
|
|
| ||:diagtext:`equality` || |
|
|
| |+----------------------+| |
|
|
| ||:diagtext:`three-way` || |
|
|
| |+----------------------+| |
|
|
| ||:diagtext:`equality` || |
|
|
| |+----------------------+| |
|
|
| ||:diagtext:`relational`|| |
|
|
| |+----------------------+| |
|
|
+-------------------------------------------------------------------+------------------------+--------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------+--------------------------------------+-----------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`explicitly defaulted` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`is implicitly deleted`|
|
|
| ||:diagtext:`default constructor` || |
|
|
| |+------------------------------------+| |
|
|
| ||:diagtext:`copy constructor` || |
|
|
| |+------------------------------------+| |
|
|
| ||:diagtext:`move constructor` || |
|
|
| |+------------------------------------+| |
|
|
| ||:diagtext:`copy assignment operator`|| |
|
|
| |+------------------------------------+| |
|
|
| ||:diagtext:`move assignment operator`|| |
|
|
| |+------------------------------------+| |
|
|
| ||:diagtext:`destructor` || |
|
|
| |+------------------------------------+| |
|
|
+-------------------------------------------------------------------+--------------------------------------+-----------------------------------------+
|
|
|
|
|
|
-Wdelegating-ctor-cycles
|
|
------------------------
|
|
This diagnostic is an error by default, but the flag ``-Wno-delegating-ctor-cycles`` can be used to disable the error.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------+
|
|
|:error:`error:` |nbsp| :diagtext:`constructor for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`creates a delegation cycle`|
|
|
+------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wdelete-abstract-non-virtual-dtor
|
|
----------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`called on` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that is abstract but has non-virtual destructor`|
|
|
| ||:diagtext:`delete` || |
|
|
| |+----------------------+| |
|
|
| ||:diagtext:`destructor`|| |
|
|
| |+----------------------+| |
|
|
+---------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wdelete-incomplete
|
|
-------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**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-abstract-non-virtual-dtor
|
|
--------------------------------------
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------+------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
|
|
|: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`|| |
|
|
| |+----------------------+| |
|
|
+---------------------------+------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wdelete-non-virtual-dtor
|
|
-------------------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
Controls `-Wdelete-abstract-non-virtual-dtor`_, `-Wdelete-non-abstract-non-virtual-dtor`_.
|
|
|
|
|
|
-Wdeprecated
|
|
------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
Also controls `-Wdeprecated-anon-enum-enum-conversion`_, `-Wdeprecated-array-compare`_, `-Wdeprecated-attributes`_, `-Wdeprecated-comma-subscript`_, `-Wdeprecated-copy`_, `-Wdeprecated-copy-dtor`_, `-Wdeprecated-declarations`_, `-Wdeprecated-dynamic-exception-spec`_, `-Wdeprecated-enum-compare`_, `-Wdeprecated-enum-compare-conditional`_, `-Wdeprecated-enum-enum-conversion`_, `-Wdeprecated-enum-float-conversion`_, `-Wdeprecated-increment-bool`_, `-Wdeprecated-register`_, `-Wdeprecated-this-capture`_, `-Wdeprecated-volatile`_, `-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:`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:`-fconcepts-ts is deprecated - use '-std=c++20' for Concepts support`|
|
|
+----------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|: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-anon-enum-enum-conversion
|
|
--------------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------+--------------------------------------------+--------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+------------------------------------------+| |nbsp| :diagtext:`different enumeration types` |nbsp| :diagtext:`is deprecated`|
|
|
| ||:diagtext:`arithmetic between` || |
|
|
| |+------------------------------------------+| |
|
|
| ||:diagtext:`bitwise operation between` || |
|
|
| |+------------------------------------------+| |
|
|
| ||:diagtext:`comparison of` || |
|
|
| |+------------------------------------------+| |
|
|
| ||:diagtext:`conditional expression between`|| |
|
|
| |+------------------------------------------+| |
|
|
| ||:diagtext:`compound assignment of` || |
|
|
| |+------------------------------------------+| |
|
|
+---------------------------+--------------------------------------------+--------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wdeprecated-array-compare
|
|
--------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`comparison between two arrays is deprecated; to compare array addresses, use unary '+' to decay operands to pointers`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wdeprecated-attributes
|
|
-----------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`specifying vector types with the 'mode' attribute is deprecated; use the 'vector\_size' attribute instead`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wdeprecated-comma-subscript
|
|
----------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`top-level comma expression in array subscript is deprecated`|
|
|
+--------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wdeprecated-copy
|
|
-----------------
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------+---------------------------------+----------------------------------------------------------------------------------------------------------------------------+---------------------------------+
|
|
|: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 copy` |nbsp| |+-------------------------------+|
|
|
| ||:diagtext:`constructor` || ||:diagtext:`assignment operator`||
|
|
| |+-------------------------------+| |+-------------------------------+|
|
|
| ||:diagtext:`assignment operator`|| ||:diagtext:`constructor` ||
|
|
| |+-------------------------------+| |+-------------------------------+|
|
|
+--------------------------------------------------------------------------+---------------------------------+----------------------------------------------------------------------------------------------------------------------------+---------------------------------+
|
|
|
|
|
|
-Wdeprecated-copy-dtor
|
|
----------------------
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------+---------------------------------+--------------------------------------------------------------------------------------------------------------------------+
|
|
|: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 destructor`|
|
|
| ||:diagtext:`constructor` || |
|
|
| |+-------------------------------+| |
|
|
| ||:diagtext:`assignment operator`|| |
|
|
| |+-------------------------------+| |
|
|
+--------------------------------------------------------------------------+---------------------------------+--------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wdeprecated-declarations
|
|
-------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`specifying 'uuid' as an ATL attribute is deprecated; use \_\_declspec instead`|
|
|
+--------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`use of C-style parameters in Objective-C method declarations is deprecated`|
|
|
+-----------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated`|
|
|
+----------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be deprecated because the receiver type is unknown`|
|
|
+---------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated:` |nbsp| :placeholder:`B`|
|
|
+-----------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`property access is using` |nbsp| :placeholder:`A` |nbsp| :diagtext:`method which is deprecated`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wdeprecated-dynamic-exception-spec
|
|
-----------------------------------
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`dynamic exception specifications are deprecated`|
|
|
+--------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wdeprecated-enum-compare
|
|
-------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------+--------------------------------------------+--------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+------------------------------------------+| |nbsp| :diagtext:`different enumeration types` |nbsp| :diagtext:`is deprecated`|
|
|
| ||:diagtext:`arithmetic between` || |
|
|
| |+------------------------------------------+| |
|
|
| ||:diagtext:`bitwise operation between` || |
|
|
| |+------------------------------------------+| |
|
|
| ||:diagtext:`comparison of` || |
|
|
| |+------------------------------------------+| |
|
|
| ||:diagtext:`conditional expression between`|| |
|
|
| |+------------------------------------------+| |
|
|
| ||:diagtext:`compound assignment of` || |
|
|
| |+------------------------------------------+| |
|
|
+---------------------------+--------------------------------------------+--------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wdeprecated-enum-compare-conditional
|
|
-------------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------+--------------------------------------------+--------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+------------------------------------------+| |nbsp| :diagtext:`different enumeration types` |nbsp| :diagtext:`is deprecated`|
|
|
| ||:diagtext:`arithmetic between` || |
|
|
| |+------------------------------------------+| |
|
|
| ||:diagtext:`bitwise operation between` || |
|
|
| |+------------------------------------------+| |
|
|
| ||:diagtext:`comparison of` || |
|
|
| |+------------------------------------------+| |
|
|
| ||:diagtext:`conditional expression between`|| |
|
|
| |+------------------------------------------+| |
|
|
| ||:diagtext:`compound assignment of` || |
|
|
| |+------------------------------------------+| |
|
|
+---------------------------+--------------------------------------------+--------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wdeprecated-enum-enum-conversion
|
|
---------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------+--------------------------------------------+--------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+------------------------------------------+| |nbsp| :diagtext:`different enumeration types` |nbsp| :diagtext:`is deprecated`|
|
|
| ||:diagtext:`arithmetic between` || |
|
|
| |+------------------------------------------+| |
|
|
| ||:diagtext:`bitwise operation between` || |
|
|
| |+------------------------------------------+| |
|
|
| ||:diagtext:`comparison of` || |
|
|
| |+------------------------------------------+| |
|
|
| ||:diagtext:`conditional expression between`|| |
|
|
| |+------------------------------------------+| |
|
|
| ||:diagtext:`compound assignment of` || |
|
|
| |+------------------------------------------+| |
|
|
+---------------------------+--------------------------------------------+--------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wdeprecated-enum-float-conversion
|
|
----------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------+--------------------------------------------+--------+----------------------------+--------------------------------------------------------+------------------+--------+----------------------------+---------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+------------------------------------------+| |nbsp| |+--------------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`C` |nbsp| |+----------------+| |nbsp| |+--------------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`D` |nbsp| :diagtext:`is deprecated`|
|
|
| ||:diagtext:`arithmetic between` || ||:diagtext:`floating-point`|| ||:diagtext:`with`|| ||:diagtext:`enumeration` || |
|
|
| |+------------------------------------------+| |+--------------------------+| |+----------------+| |+--------------------------+| |
|
|
| ||:diagtext:`bitwise operation between` || ||:diagtext:`enumeration` || ||:diagtext:`from`|| ||:diagtext:`floating-point`|| |
|
|
| |+------------------------------------------+| |+--------------------------+| |+----------------+| |+--------------------------+| |
|
|
| ||:diagtext:`comparison of` || | | ||:diagtext:`and` || | | |
|
|
| |+------------------------------------------+| | | |+----------------+| | | |
|
|
| ||:diagtext:`conditional expression between`|| | | | | | | |
|
|
| |+------------------------------------------+| | | | | | | |
|
|
| ||:diagtext:`compound assignment of` || | | | | | | |
|
|
| |+------------------------------------------+| | | | | | | |
|
|
+---------------------------+--------------------------------------------+--------+----------------------------+--------------------------------------------------------+------------------+--------+----------------------------+---------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wdeprecated-implementations
|
|
----------------------------
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------+----------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`implementing deprecated` |nbsp| |+--------------------+|
|
|
| ||:diagtext:`method` ||
|
|
| |+--------------------+|
|
|
| ||:diagtext:`class` ||
|
|
| |+--------------------+|
|
|
| ||:diagtext:`category`||
|
|
| |+--------------------+|
|
|
+----------------------------------------------------------------------+----------------------+
|
|
|
|
+----------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`implementing unavailable method`|
|
|
+----------------------------------------------------------------------+
|
|
|
|
|
|
-Wdeprecated-increment-bool
|
|
---------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`incrementing expression of type bool is deprecated and incompatible with C++17`|
|
|
+---------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wdeprecated-objc-isa-usage
|
|
---------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`assignment to Objective-C's isa is deprecated in favor of object\_setClass()`|
|
|
+-------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`direct access to Objective-C's isa is deprecated in favor of object\_getClass()`|
|
|
+----------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wdeprecated-objc-pointer-introspection
|
|
---------------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
Also controls `-Wdeprecated-objc-pointer-introspection-performSelector`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`bitmasking for introspection of Objective-C object pointers is strongly discouraged`|
|
|
+--------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wdeprecated-objc-pointer-introspection-performSelector
|
|
-------------------------------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`bitmasking for introspection of Objective-C object pointers is strongly discouraged`|
|
|
+--------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wdeprecated-register
|
|
---------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'register' storage class specifier is deprecated and incompatible with C++17`|
|
|
+-------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wdeprecated-this-capture
|
|
-------------------------
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`implicit capture of 'this' with a capture default of '=' is deprecated`|
|
|
+-------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wdeprecated-volatile
|
|
---------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`compound assignment to object of volatile-qualified type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------+-----------------------+-----------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`of object of volatile-qualified type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is deprecated`|
|
|
| ||:diagtext:`decrement`|| |
|
|
| |+---------------------+| |
|
|
| ||:diagtext:`increment`|| |
|
|
| |+---------------------+| |
|
|
+---------------------------+-----------------------+-----------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`use of result of assignment to object of volatile-qualified type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`volatile-qualified parameter type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`volatile-qualified return type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated`|
|
|
+------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`volatile qualifier in structured binding declaration is deprecated`|
|
|
+---------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wdeprecated-writable-strings
|
|
-----------------------------
|
|
Synonym for `-Wc++11-compat-deprecated-writable-strings`_.
|
|
|
|
|
|
-Wdirect-ivar-access
|
|
--------------------
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`instance variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is being directly accessed`|
|
|
+------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wdisabled-macro-expansion
|
|
--------------------------
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`disabled expansion of recursive macro`|
|
|
+----------------------------------------------------------------------------+
|
|
|
|
|
|
-Wdisabled-optimization
|
|
-----------------------
|
|
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
|
|
|
|
-Wdiscard-qual
|
|
--------------
|
|
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
|
|
|
|
-Wdistributed-object-modifiers
|
|
------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on parameter type in implementation of` |nbsp| :placeholder:`A`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on return type in implementation of` |nbsp| :placeholder:`A`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wdiv-by-zero
|
|
-------------
|
|
Synonym for `-Wdivision-by-zero`_.
|
|
|
|
|
|
-Wdivision-by-zero
|
|
------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------+-----------------------+----------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`by zero is undefined`|
|
|
| ||:diagtext:`remainder`|| |
|
|
| |+---------------------+| |
|
|
| ||:diagtext:`division` || |
|
|
| |+---------------------+| |
|
|
+---------------------------+-----------------------+----------------------------------------+
|
|
|
|
|
|
-Wdll-attribute-on-redeclaration
|
|
--------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`redeclaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not add` |nbsp| :placeholder:`B` |nbsp| :diagtext:`attribute`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wdllexport-explicit-instantiation-decl
|
|
---------------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation declaration should not be 'dllexport'`|
|
|
+---------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wdllimport-static-field-def
|
|
----------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`definition of dllimport static field`|
|
|
+---------------------------------------------------------------------------+
|
|
|
|
|
|
-Wdocumentation
|
|
---------------
|
|
Also controls `-Wdocumentation-deprecated-sync`_, `-Wdocumentation-html`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------+----------------+-----------------------+------------------------------------------------------------------------+-----------------------+-------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+---------------------+|:diagtext:`' command should not be used in a comment attached to a non-`|+---------------------+| |nbsp| :diagtext:`declaration`|
|
|
| ||:diagtext:`\\`|||:diagtext:`class` || ||:diagtext:`class` || |
|
|
| |+--------------+|+---------------------+| |+---------------------+| |
|
|
| ||:diagtext:`@` |||:diagtext:`interface`|| ||:diagtext:`interface`|| |
|
|
| |+--------------+|+---------------------+| |+---------------------+| |
|
|
| | ||:diagtext:`protocol` || ||:diagtext:`protocol` || |
|
|
| | |+---------------------+| |+---------------------+| |
|
|
| | ||:diagtext:`struct` || ||:diagtext:`struct` || |
|
|
| | |+---------------------+| |+---------------------+| |
|
|
| | ||:diagtext:`union` || ||:diagtext:`union` || |
|
|
| | |+---------------------+| |+---------------------+| |
|
|
+----------------------------------------+----------------+-----------------------+------------------------------------------------------------------------+-----------------------+-------------------------------+
|
|
|
|
+-----------------------------------------------------------+----------------+-----------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`duplicated command '`|+--------------+|:placeholder:`B`:diagtext:`'`|
|
|
| ||:diagtext:`\\`|| |
|
|
| |+--------------+| |
|
|
| ||:diagtext:`@` || |
|
|
| |+--------------+| |
|
|
+-----------------------------------------------------------+----------------+-----------------------------+
|
|
|
|
+------------------------------------------------------------------+----------------+-------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`empty paragraph passed to '`|+--------------+|:placeholder:`B`:diagtext:`' command`|
|
|
| ||:diagtext:`\\`|| |
|
|
| |+--------------+| |
|
|
| ||:diagtext:`@` || |
|
|
| |+--------------+| |
|
|
+------------------------------------------------------------------+----------------+-------------------------------------+
|
|
|
|
+----------------------------------------+----------------+--------------------------+---------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+------------------------+|:diagtext:`' command should not be used in a comment attached to a non-container declaration`|
|
|
| ||:diagtext:`\\`|||:diagtext:`classdesign` || |
|
|
| |+--------------+|+------------------------+| |
|
|
| ||:diagtext:`@` |||:diagtext:`coclass` || |
|
|
| |+--------------+|+------------------------+| |
|
|
| | ||:diagtext:`dependency` || |
|
|
| | |+------------------------+| |
|
|
| | ||:diagtext:`helper` || |
|
|
| | |+------------------------+| |
|
|
| | ||:diagtext:`helperclass` || |
|
|
| | |+------------------------+| |
|
|
| | ||:diagtext:`helps` || |
|
|
| | |+------------------------+| |
|
|
| | ||:diagtext:`instancesize`|| |
|
|
| | |+------------------------+| |
|
|
| | ||:diagtext:`ownership` || |
|
|
| | |+------------------------+| |
|
|
| | ||:diagtext:`performance` || |
|
|
| | |+------------------------+| |
|
|
| | ||:diagtext:`security` || |
|
|
| | |+------------------------+| |
|
|
| | ||:diagtext:`superclass` || |
|
|
| | |+------------------------+| |
|
|
+----------------------------------------+----------------+--------------------------+---------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------+----------------+---------------------------+---------------------------------------------------------------------+-----------------------------------+-------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+-------------------------+|:diagtext:`' command should be used in a comment attached to` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`declaration`|
|
|
| ||:diagtext:`\\`|||:diagtext:`function` || ||:diagtext:`a function` || |
|
|
| |+--------------+|+-------------------------+| |+---------------------------------+| |
|
|
| ||:diagtext:`@` |||:diagtext:`functiongroup`|| ||:diagtext:`a function` || |
|
|
| |+--------------+|+-------------------------+| |+---------------------------------+| |
|
|
| | ||:diagtext:`method` || ||:diagtext:`an Objective-C method`|| |
|
|
| | |+-------------------------+| |+---------------------------------+| |
|
|
| | ||:diagtext:`methodgroup` || ||:diagtext:`an Objective-C method`|| |
|
|
| | |+-------------------------+| |+---------------------------------+| |
|
|
| | ||:diagtext:`callback` || ||:diagtext:`a pointer to function`|| |
|
|
| | |+-------------------------+| |+---------------------------------+| |
|
|
+----------------------------------------+----------------+---------------------------+---------------------------------------------------------------------+-----------------------------------+-------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`HTML start tag prematurely ended, expected attribute name or '>'`|
|
|
+-------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`expected quoted string after equals sign`|
|
|
+-------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------+----------------+-------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command does not have a valid word argument`|
|
|
| ||:diagtext:`\\`|| |
|
|
| |+--------------+| |
|
|
| ||:diagtext:`@` || |
|
|
| |+--------------+| |
|
|
+----------------------------------------+----------------+-------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------+
|
|
|: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 '`|+--------------+|:diagtext:`deprecated' command but does not have a deprecation attribute`|
|
|
| ||:diagtext:`\\`|| |
|
|
| |+--------------+| |
|
|
| ||:diagtext:`@` || |
|
|
| |+--------------+| |
|
|
+-------------------------------------------------------------------+----------------+-------------------------------------------------------------------------+
|
|
|
|
|
|
-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`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wdtor-name
|
|
-----------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ISO C++ considers this destructor name lookup to be ambiguous`|
|
|
+----------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ISO C++ requires the name after '::~' to be found in the same scope as the name before '::~'`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`qualified destructor name only found in lexical scope; omit the qualifier to find this type name by unqualified lookup`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wdtor-typedef
|
|
--------------
|
|
This diagnostic is an error by default, but the flag ``-Wno-dtor-typedef`` can be used to disable the error.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------+------------------------+-------------------------------------------------------------+
|
|
|:error:`error:` |nbsp| :diagtext:`destructor cannot be declared using a` |nbsp| |+----------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`of the class name`|
|
|
| ||:diagtext:`typedef` || |
|
|
| |+----------------------+| |
|
|
| ||:diagtext:`type alias`|| |
|
|
| |+----------------------+| |
|
|
+--------------------------------------------------------------------------------+------------------------+-------------------------------------------------------------+
|
|
|
|
|
|
-Wduplicate-decl-specifier
|
|
--------------------------
|
|
Some of the diagnostics controlled by this flag are 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`|
|
|
+-----------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`multiple identical address spaces specified for type`|
|
|
+-------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`duplicate '`:placeholder:`A`:diagtext:`' declaration specifier`|
|
|
+-----------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wduplicate-enum
|
|
----------------
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`element` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has been implicitly assigned` |nbsp| :placeholder:`B` |nbsp| :diagtext:`which another element has been assigned`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wduplicate-method-arg
|
|
----------------------
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`redeclaration of method parameter` |nbsp| :placeholder:`A`|
|
|
+------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wduplicate-method-match
|
|
------------------------
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`multiple declarations of method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found and ignored`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wduplicate-protocol
|
|
--------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`duplicate protocol definition of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is ignored`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wdynamic-class-memaccess
|
|
-------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------+-------------------------------+------------------------------------------------------------------------------------------------+----------------------------------------+---------------------------------------------------------------------------------------------+-------------------------+
|
|
|:warning:`warning:` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`this` |nbsp| :placeholder:`B` |nbsp| :diagtext:`call is a pointer to` |nbsp| |+--------------------------------------+|:diagtext:`dynamic class` |nbsp| :placeholder:`D`:diagtext:`; vtable pointer will be` |nbsp| |+-----------------------+|
|
|
| ||:diagtext:`destination for` || || || ||:diagtext:`overwritten`||
|
|
| |+-----------------------------+| |+--------------------------------------+| |+-----------------------+|
|
|
| ||:diagtext:`source of` || ||:diagtext:`class containing a` |nbsp| || ||:diagtext:`copied` ||
|
|
| |+-----------------------------+| |+--------------------------------------+| |+-----------------------+|
|
|
| ||:diagtext:`first operand of` || | | ||:diagtext:`moved` ||
|
|
| |+-----------------------------+| | | |+-----------------------+|
|
|
| ||:diagtext:`second operand of`|| | | ||:diagtext:`compared` ||
|
|
| |+-----------------------------+| | | |+-----------------------+|
|
|
+---------------------------+-------------------------------+------------------------------------------------------------------------------------------------+----------------------------------------+---------------------------------------------------------------------------------------------+-------------------------+
|
|
|
|
|
|
-Wdynamic-exception-spec
|
|
------------------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
Also controls `-Wdeprecated-dynamic-exception-spec`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------+
|
|
|:error:`error:` |nbsp| :diagtext:`ISO C++17 does not allow dynamic exception specifications`|
|
|
+--------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Weffc++
|
|
--------
|
|
Synonym for `-Wnon-virtual-dtor`_.
|
|
|
|
|
|
-Wembedded-directive
|
|
--------------------
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`embedding a directive within macro arguments has undefined behavior`|
|
|
+----------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wempty-body
|
|
------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`for loop has empty body`|
|
|
+--------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`if statement has empty body`|
|
|
+------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`range-based for loop has empty body`|
|
|
+--------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`switch statement has empty body`|
|
|
+----------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`while loop has empty body`|
|
|
+----------------------------------------------------------------+
|
|
|
|
|
|
-Wempty-decomposition
|
|
---------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ISO C++17 does not allow a decomposition group to be empty`|
|
|
+-------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wempty-init-stmt
|
|
-----------------
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------+-----------------------------+---------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`empty initialization statement of '`|+---------------------------+|:diagtext:`' has no effect`|
|
|
| ||:diagtext:`if` || |
|
|
| |+---------------------------+| |
|
|
| ||:diagtext:`switch` || |
|
|
| |+---------------------------+| |
|
|
| ||:diagtext:`range-based for`|| |
|
|
| |+---------------------------+| |
|
|
+--------------------------------------------------------------------------+-----------------------------+---------------------------+
|
|
|
|
|
|
-Wempty-translation-unit
|
|
------------------------
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ISO C requires a translation unit to contain at least one declaration`|
|
|
+------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wencode-type
|
|
-------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`encoding of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`type is incomplete because` |nbsp| :placeholder:`B` |nbsp| :diagtext:`component has unknown encoding`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wendif-labels
|
|
--------------
|
|
Synonym for `-Wextra-tokens`_.
|
|
|
|
|
|
-Wenum-compare
|
|
--------------
|
|
This diagnostic is enabled by default.
|
|
|
|
Also controls `-Wdeprecated-enum-compare`_, `-Wenum-compare-switch`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------+--------------------------------------------+-----------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+------------------------------------------+| |nbsp| :diagtext:`different enumeration types`|
|
|
| ||:diagtext:`arithmetic between` || |
|
|
| |+------------------------------------------+| |
|
|
| ||:diagtext:`bitwise operation between` || |
|
|
| |+------------------------------------------+| |
|
|
| ||:diagtext:`comparison of` || |
|
|
| |+------------------------------------------+| |
|
|
| ||:diagtext:`conditional expression between`|| |
|
|
| |+------------------------------------------+| |
|
|
| ||:diagtext:`compound assignment of` || |
|
|
| |+------------------------------------------+| |
|
|
+---------------------------+--------------------------------------------+-----------------------------------------------+
|
|
|
|
|
|
-Wenum-compare-conditional
|
|
--------------------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
Also controls `-Wdeprecated-enum-compare-conditional`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------+--------------------------------------------+-----------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+------------------------------------------+| |nbsp| :diagtext:`different enumeration types`|
|
|
| ||:diagtext:`arithmetic between` || |
|
|
| |+------------------------------------------+| |
|
|
| ||:diagtext:`bitwise operation between` || |
|
|
| |+------------------------------------------+| |
|
|
| ||:diagtext:`comparison of` || |
|
|
| |+------------------------------------------+| |
|
|
| ||:diagtext:`conditional expression between`|| |
|
|
| |+------------------------------------------+| |
|
|
| ||:diagtext:`compound assignment of` || |
|
|
| |+------------------------------------------+| |
|
|
+---------------------------+--------------------------------------------+-----------------------------------------------+
|
|
|
|
|
|
-Wenum-compare-switch
|
|
---------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`comparison of different enumeration types in switch statement`|
|
|
+----------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wenum-conversion
|
|
-----------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
Also controls `-Wenum-compare-conditional`_, `-Wenum-enum-conversion`_, `-Wenum-float-conversion`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from enumeration type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to different enumeration type` |nbsp| :placeholder:`B`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wenum-enum-conversion
|
|
----------------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
Also controls `-Wdeprecated-enum-enum-conversion`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------+--------------------------------------------+-----------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+------------------------------------------+| |nbsp| :diagtext:`different enumeration types`|
|
|
| ||:diagtext:`arithmetic between` || |
|
|
| |+------------------------------------------+| |
|
|
| ||:diagtext:`bitwise operation between` || |
|
|
| |+------------------------------------------+| |
|
|
| ||:diagtext:`comparison of` || |
|
|
| |+------------------------------------------+| |
|
|
| ||:diagtext:`conditional expression between`|| |
|
|
| |+------------------------------------------+| |
|
|
| ||:diagtext:`compound assignment of` || |
|
|
| |+------------------------------------------+| |
|
|
+---------------------------+--------------------------------------------+-----------------------------------------------+
|
|
|
|
|
|
-Wenum-float-conversion
|
|
-----------------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
Also controls `-Wdeprecated-enum-float-conversion`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------+--------------------------------------------+--------+----------------------------+--------------------------------------------------------+------------------+--------+----------------------------+------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+------------------------------------------+| |nbsp| |+--------------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`C` |nbsp| |+----------------+| |nbsp| |+--------------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`D`|
|
|
| ||:diagtext:`arithmetic between` || ||:diagtext:`floating-point`|| ||:diagtext:`with`|| ||:diagtext:`enumeration` || |
|
|
| |+------------------------------------------+| |+--------------------------+| |+----------------+| |+--------------------------+| |
|
|
| ||:diagtext:`bitwise operation between` || ||:diagtext:`enumeration` || ||:diagtext:`from`|| ||:diagtext:`floating-point`|| |
|
|
| |+------------------------------------------+| |+--------------------------+| |+----------------+| |+--------------------------+| |
|
|
| ||:diagtext:`comparison of` || | | ||:diagtext:`and` || | | |
|
|
| |+------------------------------------------+| | | |+----------------+| | | |
|
|
| ||:diagtext:`conditional expression between`|| | | | | | | |
|
|
| |+------------------------------------------+| | | | | | | |
|
|
| ||:diagtext:`compound assignment of` || | | | | | | |
|
|
| |+------------------------------------------+| | | | | | | |
|
|
+---------------------------+--------------------------------------------+--------+----------------------------+--------------------------------------------------------+------------------+--------+----------------------------+------------------------------------------------+
|
|
|
|
|
|
-Wenum-too-large
|
|
----------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`enumeration values exceed range of largest integer`|
|
|
+-----------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`incremented enumerator value` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not representable in the largest integer type`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wexceptions
|
|
------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`cannot refer to a non-static member from the handler of a` |nbsp| |+-----------------------+| |nbsp| :diagtext:`function try block`|
|
|
| ||:diagtext:`constructor`|| |
|
|
| |+-----------------------+| |
|
|
| ||:diagtext:`destructor` || |
|
|
| |+-----------------------+| |
|
|
+--------------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`exception of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will be caught by earlier handler`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has a non-throwing exception specification but can still throw`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wexcess-initializers
|
|
---------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------+--------------------+-------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`excess elements in` |nbsp| |+------------------+| |nbsp| :diagtext:`initializer`|
|
|
| ||:diagtext:`array` || |
|
|
| |+------------------+| |
|
|
| ||:diagtext:`vector`|| |
|
|
| |+------------------+| |
|
|
| ||:diagtext:`scalar`|| |
|
|
| |+------------------+| |
|
|
| ||:diagtext:`union` || |
|
|
| |+------------------+| |
|
|
| ||:diagtext:`struct`|| |
|
|
| |+------------------+| |
|
|
+-----------------------------------------------------------------+--------------------+-------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`excess elements in initializer for indivisible sizeless type` |nbsp| :placeholder:`A`|
|
|
+---------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`excess elements in char array initializer`|
|
|
+--------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`initializer-string for char array is too long`|
|
|
+------------------------------------------------------------------------------------+
|
|
|
|
|
|
-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`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wexport-unnamed
|
|
----------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------+------------------------------+------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ISO C++20 does not permit` |nbsp| |+----------------------------+| |nbsp| :diagtext:`declaration to appear in an export block`|
|
|
| ||:diagtext:`an empty` || |
|
|
| |+----------------------------+| |
|
|
| ||:diagtext:`a static\_assert`|| |
|
|
| |+----------------------------+| |
|
|
+------------------------------------------------------------------------+------------------------------+------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ISO C++20 does not permit a declaration that does not introduce any names to be exported`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wexport-using-directive
|
|
------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ISO C++20 does not permit using directive to be exported`|
|
|
+-----------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-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 `-Wdeprecated-copy`_, `-Wempty-init-stmt`_, `-Wignored-qualifiers`_, `-Winitializer-overrides`_, `-Wmissing-field-initializers`_, `-Wmissing-method-return-type`_, `-Wnull-pointer-arithmetic`_, `-Wsemicolon-before-method-body`_, `-Wsign-compare`_, `-Wunused-parameter`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`call to function without interrupt attribute could clobber interruptee's VFP registers`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wextra-qualification
|
|
---------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`extra qualification on member` |nbsp| :placeholder:`A`|
|
|
+--------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wextra-semi
|
|
------------
|
|
Also controls `-Wc++11-extra-semi`_, `-Wc++98-compat-extra-semi`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------+------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`extra ';'` |nbsp| |+----------------------------------------------+|
|
|
| ||:diagtext:`outside of a function` ||
|
|
| |+----------------------------------------------+|
|
|
| ||+--------------------------------------------+||
|
|
| |||:diagtext:`inside a` |nbsp| :placeholder:`B`|||
|
|
| ||+--------------------------------------------+||
|
|
| |+----------------------------------------------+|
|
|
| ||:diagtext:`inside instance variable list` ||
|
|
| |+----------------------------------------------+|
|
|
| ||:diagtext:`after member function definition` ||
|
|
| |+----------------------------------------------+|
|
|
+--------------------------------------------------------+------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`extra ';' after member function definition`|
|
|
+---------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wextra-semi-stmt
|
|
-----------------
|
|
Also controls `-Wempty-init-stmt`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`empty expression statement has no effect; remove unnecessary ';' to silence this warning`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wextra-tokens
|
|
--------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**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`|
|
|
+------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wfinal-dtor-non-final-class
|
|
----------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------+--------------------+--------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`class with destructor marked '`|+------------------+|:diagtext:`' cannot be inherited from`|
|
|
| ||:diagtext:`final` || |
|
|
| |+------------------+| |
|
|
| ||:diagtext:`sealed`|| |
|
|
| |+------------------+| |
|
|
+---------------------------------------------------------------------+--------------------+--------------------------------------+
|
|
|
|
|
|
-Wfixed-enum-extension
|
|
----------------------
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a Clang extension`|
|
|
+-----------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wflag-enum
|
|
-----------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`enumeration value` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is out of range of flags in enumeration type` |nbsp| :placeholder:`B`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wflexible-array-extensions
|
|
---------------------------
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may not be used as an array element due to flexible array member`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may not be nested in a struct due to flexible array member`|
|
|
+-------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wfloat-conversion
|
|
------------------
|
|
Also controls `-Wfloat-overflow-conversion`_, `-Wfloat-zero-conversion`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns floating-point number into integer:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wfloat-equal
|
|
-------------
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`comparing floating point with == or != is unsafe`|
|
|
+---------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wfloat-overflow-conversion
|
|
---------------------------
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`changes value from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`implicit conversion of out of range value from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is undefined`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wfloat-zero-conversion
|
|
-----------------------
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`changes non-zero value from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wfor-loop-analysis
|
|
-------------------
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is` |nbsp| |+-----------------------+| |nbsp| :diagtext:`both in the loop header and in the loop body`|
|
|
| ||:diagtext:`decremented`|| |
|
|
| |+-----------------------+| |
|
|
| ||:diagtext:`incremented`|| |
|
|
| |+-----------------------+| |
|
|
+-----------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`variable`|+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |nbsp| :diagtext:`used in loop condition not modified in loop body`|
|
|
| ||:diagtext:`s` || |
|
|
| |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |
|
|
| ||+------------------------+ || |
|
|
| ||| |nbsp| :placeholder:`B`| || |
|
|
| ||+------------------------+ || |
|
|
| |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |
|
|
| ||+------------------------------------------------------------------------------------+ || |
|
|
| |||:diagtext:`s` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C`| || |
|
|
| ||+------------------------------------------------------------------------------------+ || |
|
|
| |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |
|
|
| ||+-------------------------------------------------------------------------------------------------------------------+ || |
|
|
| |||:diagtext:`s` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D`| || |
|
|
| ||+-------------------------------------------------------------------------------------------------------------------+ || |
|
|
| |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |
|
|
| ||+--------------------------------------------------------------------------------------------------------------------------------------------------------+|| |
|
|
| |||:diagtext:`s` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`, and` |nbsp| :placeholder:`E`||| |
|
|
| ||+--------------------------------------------------------------------------------------------------------------------------------------------------------+|| |
|
|
| |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |
|
|
+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+
|
|
|
|
|
|
-Wformat
|
|
--------
|
|
This diagnostic is enabled by default.
|
|
|
|
Also controls `-Wformat-extra-args`_, `-Wformat-invalid-specifier`_, `-Wformat-security`_, `-Wformat-y2k`_, `-Wformat-zero-length`_, `-Wnonnull`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`using '%%P' format specifier without precision`|
|
|
+-------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+--------------------------------------------+| |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' should not be used as format arguments; add an explicit cast to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`instead`|
|
|
| ||:diagtext:`values of type` || |
|
|
| |+--------------------------------------------+| |
|
|
| ||:diagtext:`enum values with underlying type`|| |
|
|
| |+--------------------------------------------+| |
|
|
+---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`using '`:placeholder:`A`:diagtext:`' format specifier, but argument has boolean value`|
|
|
+----------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`format specifies type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`but the argument has` |nbsp| |+---------------------------+| |nbsp| :placeholder:`B`|
|
|
| ||:diagtext:`type` || |
|
|
| |+---------------------------+| |
|
|
| ||:diagtext:`underlying type`|| |
|
|
| |+---------------------------+| |
|
|
+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`using '`:placeholder:`A`:diagtext:`' format specifier annotation outside of os\_log()/os\_trace()`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------+-----------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`invalid position specified for` |nbsp| |+---------------------------+|
|
|
| ||:diagtext:`field width` ||
|
|
| |+---------------------------+|
|
|
| ||:diagtext:`field precision`||
|
|
| |+---------------------------+|
|
|
+-----------------------------------------------------------------------------+-----------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`cannot mix positional and non-positional arguments in format string`|
|
|
+----------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`length modifier '`:placeholder:`A`:diagtext:`' results in undefined behavior or no effect with '`:placeholder:`B`:diagtext:`' conversion specifier`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`format string should not be a wide string`|
|
|
+--------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`position arguments in format strings start counting at 1 (not 0)`|
|
|
+-------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`format string missing`|
|
|
+------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`object format flags cannot be used with '`:placeholder:`A`:diagtext:`' conversion specifier`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------+-----------------+-------------------------------------+-----------------------+--------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'`|+---------------+|:diagtext:`' specified field` |nbsp| |+---------------------+| |nbsp| :diagtext:`is missing a matching 'int' argument`|
|
|
| ||:diagtext:`\*` || ||:diagtext:`width` || |
|
|
| |+---------------+| |+---------------------+| |
|
|
| ||:diagtext:`.\*`|| ||:diagtext:`precision`|| |
|
|
| |+---------------+| |+---------------------+| |
|
|
+----------------------------------------+-----------------+-------------------------------------+-----------------------+--------------------------------------------------------+
|
|
|
|
+----------------------------------------------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| |+---------------------+| |nbsp| :diagtext:`should have type` |nbsp| :placeholder:`B`:diagtext:`, but argument has type` |nbsp| :placeholder:`C`|
|
|
| ||:diagtext:`width` || |
|
|
| |+---------------------+| |
|
|
| ||:diagtext:`precision`|| |
|
|
| |+---------------------+| |
|
|
+----------------------------------------------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`missing object format flag`|
|
|
+-----------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`format string contains '\\0' within the string body`|
|
|
+------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`format string is not null-terminated`|
|
|
+---------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`flag '`:placeholder:`A`:diagtext:`' is ignored when flag '`:placeholder:`B`:diagtext:`' is present`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`incomplete format specifier`|
|
|
+------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`more '%%' conversions than data arguments`|
|
|
+--------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is not a valid object format flag`|
|
|
+-------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`flag '`:placeholder:`A`:diagtext:`' results in undefined behavior with '`:placeholder:`B`:diagtext:`' conversion specifier`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------+-------------------------+------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+-----------------------+| |nbsp| :diagtext:`used with '`:placeholder:`B`:diagtext:`' conversion specifier, resulting in undefined behavior`|
|
|
| ||:diagtext:`field width`|| |
|
|
| |+-----------------------+| |
|
|
| ||:diagtext:`precision` || |
|
|
| |+-----------------------+| |
|
|
+---------------------------+-------------------------+------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`data argument position '`:placeholder:`A`:diagtext:`' exceeds the number of data arguments (`:placeholder:`B`:diagtext:`)`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`zero field width in scanf format string is unused`|
|
|
+----------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`no closing '\]' for '%%\[' in scanf format string`|
|
|
+----------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wformat-extra-args
|
|
-------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`data argument not used by format string`|
|
|
+------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wformat-invalid-specifier
|
|
--------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`invalid conversion specifier '`:placeholder:`A`:diagtext:`'`|
|
|
+--------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wformat-non-iso
|
|
----------------
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------+----------------------------------+---------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`'` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`is not supported by ISO C`|
|
|
| ||:diagtext:`length modifier` || |
|
|
| |+--------------------------------+| |
|
|
| ||:diagtext:`conversion specifier`|| |
|
|
| |+--------------------------------+| |
|
|
+-----------------------------------------------------------------------------+----------------------------------+---------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`using length modifier '`:placeholder:`A`:diagtext:`' with conversion specifier '`:placeholder:`B`:diagtext:`' is not supported by ISO C`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`positional arguments are not supported by ISO C`|
|
|
+--------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wformat-nonliteral
|
|
-------------------
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`format string is not a string literal`|
|
|
+----------------------------------------------------------------------------+
|
|
|
|
|
|
-Wformat-pedantic
|
|
-----------------
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+--------------------------------------------+| |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' should not be used as format arguments; add an explicit cast to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`instead`|
|
|
| ||:diagtext:`values of type` || |
|
|
| |+--------------------------------------------+| |
|
|
| ||:diagtext:`enum values with underlying type`|| |
|
|
| |+--------------------------------------------+| |
|
|
+---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`format specifies type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`but the argument has` |nbsp| |+---------------------------+| |nbsp| :placeholder:`B`|
|
|
| ||:diagtext:`type` || |
|
|
| |+---------------------------+| |
|
|
| ||:diagtext:`underlying type`|| |
|
|
| |+---------------------------+| |
|
|
+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
|
|
|
|
|
|
-Wformat-security
|
|
-----------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`format string is not a string literal (potentially insecure)`|
|
|
+---------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wformat-type-confusion
|
|
-----------------------
|
|
**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-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`_.
|
|
|
|
|
|
-Wfortify-source
|
|
----------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' will always overflow; destination buffer has size` |nbsp| :placeholder:`B`:diagtext:`, but format string expands to at least` |nbsp| :placeholder:`C`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' will always overflow; destination buffer has size` |nbsp| :placeholder:`B`:diagtext:`, but size argument is` |nbsp| :placeholder:`C`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' size argument is too large; destination buffer has size` |nbsp| :placeholder:`B`:diagtext:`, but size argument is` |nbsp| :placeholder:`C`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wfour-char-constants
|
|
---------------------
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`multi-character character constant`|
|
|
+-------------------------------------------------------------------------+
|
|
|
|
|
|
-Wframe-address
|
|
---------------
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`calling '`:placeholder:`A`:diagtext:`' with a nonzero argument is unsafe`|
|
|
+---------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wframe-larger-than=
|
|
--------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
The text of this diagnostic is not controlled by Clang.
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`stack frame size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bytes in` |nbsp| :placeholder:`B`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wframework-include-private-from-public
|
|
---------------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`public framework header includes private framework header '`:placeholder:`A`:diagtext:`'`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wfunction-def-in-objc-container
|
|
--------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`function definition inside an Objective-C container is deprecated`|
|
|
+--------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wfunction-multiversion
|
|
-----------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`body of cpu\_dispatch function will be ignored`|
|
|
+-------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`CPU list contains duplicate entries; attribute ignored`|
|
|
+---------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wfuture-compat
|
|
---------------
|
|
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
|
|
|
|
-Wgcc-compat
|
|
------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'diagnose\_if' is a clang extension`|
|
|
+--------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'enable\_if' is a clang extension`|
|
|
+------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`\_\_final is a GNU extension, consider using C++11 final`|
|
|
+-----------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute in this position on a function definition`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'break' is bound to loop, GCC binds it to switch`|
|
|
+---------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow the 'cleanup' attribute argument to be anything other than a simple identifier`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow an attribute in this position on a function declaration`|
|
|
+-----------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute to be written on a type`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow variable declarations in for loop initializers before C99`|
|
|
+-------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is bound to current loop, GCC binds it to the enclosing loop`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wglobal-constructors
|
|
---------------------
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`declaration requires a global constructor`|
|
|
+--------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`declaration requires a global destructor`|
|
|
+-------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wglobal-isel
|
|
-------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`-fglobal-isel support for the '`:placeholder:`A`:diagtext:`' architecture is incomplete`|
|
|
+------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`-fglobal-isel support is incomplete for this architecture at the current optimization level`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wgnu
|
|
-----
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
Controls `-Wgnu-alignof-expression`_, `-Wgnu-anonymous-struct`_, `-Wgnu-auto-type`_, `-Wgnu-binary-literal`_, `-Wgnu-case-range`_, `-Wgnu-complex-integer`_, `-Wgnu-compound-literal-initializer`_, `-Wgnu-conditional-omitted-operand`_, `-Wgnu-designator`_, `-Wgnu-empty-initializer`_, `-Wgnu-empty-struct`_, `-Wgnu-flexible-array-initializer`_, `-Wgnu-flexible-array-union-member`_, `-Wgnu-folding-constant`_, `-Wgnu-imaginary-constant`_, `-Wgnu-include-next`_, `-Wgnu-label-as-value`_, `-Wgnu-redeclared-enum`_, `-Wgnu-statement-expression`_, `-Wgnu-static-float-init`_, `-Wgnu-string-literal-operator-template`_, `-Wgnu-union-cast`_, `-Wgnu-variable-sized-type-not-at-end`_, `-Wgnu-zero-line-directive`_, `-Wgnu-zero-variadic-macro-arguments`_, `-Wredeclared-class-member`_, `-Wvla-extension`_, `-Wzero-length-array`_.
|
|
|
|
|
|
-Wgnu-alignof-expression
|
|
------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------+
|
|
|:warning:`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-inline-cpp-without-extern
|
|
-------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'gnu\_inline' attribute without 'extern' in C++ treated as externally available, this changed in Clang 10`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-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`|
|
|
+--------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Whip-only
|
|
----------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is ignored since it is only supported for HIP`|
|
|
+-------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Widiomatic-parentheses
|
|
-----------------------
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`using the result of an assignment as a condition without parentheses`|
|
|
+-----------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wignored-attributes
|
|
--------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'trivial\_abi' cannot be applied to` |nbsp| :placeholder:`A`|
|
|
+--------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+-----------------+| |nbsp| :diagtext:`will always resolve to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`even if weak definition of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is overridden`|
|
|
| ||:diagtext:`alias`|| |
|
|
| |+-----------------+| |
|
|
| ||:diagtext:`ifunc`|| |
|
|
| |+-----------------+| |
|
|
+---------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------+-------------------+----------------------------------------------------------------------------------------------------------------+----------------------+
|
|
|:warning:`warning:` |nbsp| |+-----------------+| |nbsp| :diagtext:`will not be in section '`:placeholder:`A`:diagtext:`' but in the same section as the` |nbsp| |+--------------------+|
|
|
| ||:diagtext:`alias`|| ||:diagtext:`aliasee` ||
|
|
| |+-----------------+| |+--------------------+|
|
|
| ||:diagtext:`ifunc`|| ||:diagtext:`resolver`||
|
|
| |+-----------------+| |+--------------------+|
|
|
+---------------------------+-------------------+----------------------------------------------------------------------------------------------------------------+----------------------+
|
|
|
|
+----------------------------------------------------------------------+------------------------+-------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'abi\_tag' attribute on` |nbsp| |+----------------------+| |nbsp| :diagtext:`namespace ignored`|
|
|
| ||:diagtext:`non-inline`|| |
|
|
| |+----------------------+| |
|
|
| ||:diagtext:`anonymous` || |
|
|
| |+----------------------+| |
|
|
+----------------------------------------------------------------------+------------------------+-------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`after definition is ignored`|
|
|
+-----------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'cmse\_nonsecure\_entry' cannot be applied to functions with internal linkage`|
|
|
+--------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'dllexport' attribute ignored on explicit instantiation definition`|
|
|
+---------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute can only be applied to instance variables or properties`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored`|
|
|
+--------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored for field of type` |nbsp| :placeholder:`B`|
|
|
+--------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored on inline function`|
|
|
+---------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' attribute cannot be specified on a definition`|
|
|
+-------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it is not attached to a declaration`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'nonnull' attribute applied to function with no pointer arguments`|
|
|
+--------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'nonnull' attribute when used on parameters takes no arguments`|
|
|
+-----------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored when parsing type`|
|
|
+--------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to a pointer or reference (`:placeholder:`B` |nbsp| :diagtext:`is invalid)`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------+------------------------------+-------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to`|+----------------------------+| |nbsp| :diagtext:`pointer arguments`|
|
|
| || || |
|
|
| |+----------------------------+| |
|
|
| || |nbsp| :diagtext:`constant`|| |
|
|
| |+----------------------------+| |
|
|
+----------------------------------------------------------------------------------------+------------------------------+-------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`attribute declaration must precede definition`|
|
|
+------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to return values that are pointers`|
|
|
+------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to return values that are pointers or references`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'sentinel' attribute requires named arguments`|
|
|
+------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------+-----------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'sentinel' attribute only supported for variadic` |nbsp| |+---------------------+|
|
|
| ||:diagtext:`functions`||
|
|
| |+---------------------+|
|
|
| ||:diagtext:`blocks` ||
|
|
| |+---------------------+|
|
|
+-----------------------------------------------------------------------------------------------+-----------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute argument not supported:` |nbsp| :placeholder:`B`|
|
|
+------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`unknown visibility` |nbsp| :placeholder:`A`|
|
|
+---------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be applied to` |nbsp| |+------------------------------+| |nbsp| :diagtext:`without return value`|
|
|
| ||:diagtext:`functions` || |
|
|
| |+------------------------------+| |
|
|
| ||:diagtext:`Objective-C method`|| |
|
|
| |+------------------------------+| |
|
|
+------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`\_\_weak attribute cannot be specified on a field declaration`|
|
|
+----------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`\_\_weak attribute cannot be specified on an automatic variable when ARC is not enabled`|
|
|
+------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------+---------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+-------------------------------------------------+|
|
|
| ||:diagtext:`functions` ||
|
|
| |+-------------------------------------------------+|
|
|
| ||:diagtext:`unions` ||
|
|
| |+-------------------------------------------------+|
|
|
| ||:diagtext:`variables and functions` ||
|
|
| |+-------------------------------------------------+|
|
|
| ||:diagtext:`functions and methods` ||
|
|
| |+-------------------------------------------------+|
|
|
| ||:diagtext:`functions, methods and blocks` ||
|
|
| |+-------------------------------------------------+|
|
|
| ||:diagtext:`functions, methods, and parameters` ||
|
|
| |+-------------------------------------------------+|
|
|
| ||:diagtext:`variables` ||
|
|
| |+-------------------------------------------------+|
|
|
| ||:diagtext:`variables and fields` ||
|
|
| |+-------------------------------------------------+|
|
|
| ||:diagtext:`variables, data members and tag types`||
|
|
| |+-------------------------------------------------+|
|
|
| ||:diagtext:`types and namespaces` ||
|
|
| |+-------------------------------------------------+|
|
|
| ||:diagtext:`variables, functions and classes` ||
|
|
| |+-------------------------------------------------+|
|
|
| ||:diagtext:`kernel functions` ||
|
|
| |+-------------------------------------------------+|
|
|
| ||:diagtext:`non-K&R-style functions` ||
|
|
| |+-------------------------------------------------+|
|
|
+------------------------------------------------------------------------------------------------+---------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| :placeholder:`B`|
|
|
+----------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it cannot be applied to omitted return type`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------+---------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`calling convention is not supported` |nbsp| |+-------------------------------------+|
|
|
| ||:diagtext:`for this target` ||
|
|
| |+-------------------------------------+|
|
|
| ||:diagtext:`on variadic function` ||
|
|
| |+-------------------------------------+|
|
|
| ||:diagtext:`on constructor/destructor`||
|
|
| |+-------------------------------------+|
|
|
| ||:diagtext:`on builtin function` ||
|
|
| |+-------------------------------------+|
|
|
+----------------------------------------------------------------------------------------------------------+---------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it cannot be applied to a type`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ignoring \_\_declspec(allocator) because the function return type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not a pointer or reference 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:`'objc\_externally\_retained' can only be applied to local variables` |nbsp| |+---------------------------------+|
|
|
| ||:diagtext:`of retainable type` ||
|
|
| |+---------------------------------+|
|
|
| ||:diagtext:`with strong ownership`||
|
|
| |+---------------------------------+|
|
|
+------------------------------------------------------------------------------------------------------------------+-----------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'internal\_linkage' attribute on a non-static local variable is ignored`|
|
|
+--------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------+--------------------+-------------------------------------------------------------------------------------+----------------------------------+
|
|
|:warning:`warning:` |nbsp| |+------------------+| |nbsp| :diagtext:`'interrupt' attribute only applies to functions that have` |nbsp| |+--------------------------------+|
|
|
| ||:diagtext:`MIPS` || ||:diagtext:`no parameters` ||
|
|
| |+------------------+| |+--------------------------------+|
|
|
| ||:diagtext:`MSP430`|| ||:diagtext:`a 'void' return type`||
|
|
| |+------------------+| |+--------------------------------+|
|
|
| ||:diagtext:`RISC-V`|| | |
|
|
| |+------------------+| | |
|
|
+---------------------------+--------------------+-------------------------------------------------------------------------------------+----------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`qualifiers after comma in declarator list are ignored`|
|
|
+--------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'mig\_server\_routine' attribute only applies to routines that return a kern\_return\_t`|
|
|
+------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`unknown attribute '`:placeholder:`A`:diagtext:`'`|
|
|
+---------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'nocf\_check' attribute ignored; use -fcf-protection to enable the attribute`|
|
|
+-------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'noderef' can only be used on an array or pointer type`|
|
|
+---------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'nothrow' attribute conflicts with exception specification; attribute ignored`|
|
|
+--------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------+---------------------------------------------------+------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+-------------------------------------------------+| |nbsp| :diagtext:`parameters`|
|
|
| ||:diagtext:`Objective-C object` || |
|
|
| |+-------------------------------------------------+| |
|
|
| ||:diagtext:`pointer` || |
|
|
| |+-------------------------------------------------+| |
|
|
| ||:diagtext:`pointer-to-CF-pointer` || |
|
|
| |+-------------------------------------------------+| |
|
|
| ||:diagtext:`pointer/reference-to-OSObject-pointer`|| |
|
|
| |+-------------------------------------------------+| |
|
|
+------------------------------------------------------------------------------------------------+---------------------------------------------------+------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------+------------------------+---------------------------------------+--------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+----------------------+| |nbsp| :diagtext:`that return` |nbsp| |+------------------------------------+|
|
|
| ||: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 isn't implemented by this Objective-C runtime`|
|
|
+----------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`direct attribute on property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored (not implemented by this Objective-C runtime)`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is deprecated and ignored in OpenCL version` |nbsp| :placeholder:`B`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'require\_constant\_initialization' attribute added after initialization of variable`|
|
|
+---------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`repeated RISC-V 'interrupt' attribute`|
|
|
+----------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`template parameter of a function template with the 'sycl\_kernel' attribute cannot be a non-type template parameter`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`function template with 'sycl\_kernel' attribute must have a single parameter`|
|
|
+-------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'sycl\_kernel' attribute only applies to a function template with at least two template parameters`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`function template with 'sycl\_kernel' attribute must have a 'void' return type`|
|
|
+---------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`of field` |nbsp| :placeholder:`B` |nbsp| :diagtext:`(`:placeholder:`C` |nbsp| :diagtext:`bits) does not match the` |nbsp| |+---------------------+| |nbsp| :diagtext:`of the first field in transparent union; transparent\_union attribute ignored`|
|
|
| ||:diagtext:`alignment`|| ||:diagtext:`alignment`|| |
|
|
| |+---------------------+| |+---------------------+| |
|
|
| ||:diagtext:`size` || ||:diagtext:`size` || |
|
|
| |+---------------------+| |+---------------------+| |
|
|
+---------------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------+----------------------------+--------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`first field of a transparent union cannot have` |nbsp| |+--------------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`B`:diagtext:`; transparent\_union attribute ignored`|
|
|
| ||:diagtext:`floating point`|| |
|
|
| |+--------------------------+| |
|
|
| ||:diagtext:`vector` || |
|
|
| |+--------------------------+| |
|
|
+---------------------------------------------------------------------------------------------+----------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`transparent\_union attribute can only be applied to a union definition; attribute ignored`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`transparent union definition must contain at least one field; transparent\_union attribute ignored`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------+-------------------------------------------------+---------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' only applies to` |nbsp| |+-----------------------------------------------+| |nbsp| :diagtext:`types; type here is` |nbsp| :placeholder:`C`|
|
|
| ||:diagtext:`function` || |
|
|
| |+-----------------------------------------------+| |
|
|
| ||:diagtext:`pointer` || |
|
|
| |+-----------------------------------------------+| |
|
|
| ||:diagtext:`Objective-C object or block pointer`|| |
|
|
| |+-----------------------------------------------+| |
|
|
+---------------------------------------------------------------------------------------------+-------------------------------------------------+---------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`\_\_declspec attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not supported`|
|
|
+-------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------+-------------------------+----------------------------------+---------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+-----------------------+|+--------------------------------+| |nbsp| :diagtext:`'`:placeholder:`C`:diagtext:`' in the 'target' attribute string; 'target' attribute ignored`|
|
|
| ||:diagtext:`unsupported`||| || |
|
|
| |+-----------------------+|+--------------------------------+| |
|
|
| ||:diagtext:`duplicate` ||| |nbsp| :diagtext:`architecture`|| |
|
|
| |+-----------------------+|+--------------------------------+| |
|
|
+---------------------------+-------------------------+----------------------------------+---------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'\_\_clang\_\_' is a predefined macro name, not an attribute scope specifier; did you mean '\_Clang' instead?`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wignored-optimization-argument
|
|
-------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`optimization flag '`:placeholder:`A`:diagtext:`' is not supported for target '`:placeholder:`B`:diagtext:`'`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`optimization flag '`:placeholder:`A`:diagtext:`' is not supported`|
|
|
+--------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wignored-pragma-intrinsic
|
|
--------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not a recognized builtin`|+----------------------------------------------------------------------------+|
|
|
| || ||
|
|
| |+----------------------------------------------------------------------------+|
|
|
| ||:diagtext:`; consider including <intrin.h> to access non-builtin intrinsics`||
|
|
| |+----------------------------------------------------------------------------+|
|
|
+------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wignored-pragma-optimize
|
|
-------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'#pragma optimize' is not supported`|
|
|
+--------------------------------------------------------------------------+
|
|
|
|
|
|
-Wignored-pragmas
|
|
-----------------
|
|
This diagnostic is enabled by default.
|
|
|
|
Also controls `-Wignored-pragma-intrinsic`_, `-Wignored-pragma-optimize`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------+---------------------------+-----------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`expected '=' following '#pragma` |nbsp| |+-------------------------+|:diagtext:`' - ignored`|
|
|
| ||:diagtext:`align` || |
|
|
| |+-------------------------+| |
|
|
| ||:diagtext:`options align`|| |
|
|
| |+-------------------------+| |
|
|
+------------------------------------------------------------------------------+---------------------------+-----------------------+
|
|
|
|
+-----------------------------------------------------------------------------------+---------------------------+-----------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`invalid alignment option in '#pragma` |nbsp| |+-------------------------+|:diagtext:`' - ignored`|
|
|
| ||:diagtext:`align` || |
|
|
| |+-------------------------+| |
|
|
| ||:diagtext:`options align`|| |
|
|
| |+-------------------------+| |
|
|
+-----------------------------------------------------------------------------------+---------------------------+-----------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`OpenCL extension end directive mismatches begin directive - ignoring`|
|
|
+-----------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'#pragma comment` |nbsp| :placeholder:`A`:diagtext:`' ignored`|
|
|
+----------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`missing argument to debug command '`:placeholder:`A`:diagtext:`'`|
|
|
+-------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`unexpected debug command '`:placeholder:`A`:diagtext:`'`|
|
|
+----------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`unknown module '`:placeholder:`A`:diagtext:`'`|
|
|
+------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`expected action or ')' in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
|
|
+------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`missing ':' after` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`|
|
|
+--------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`missing ':' or ')' after` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`|
|
|
+---------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`expected ',' in '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`|
|
|
+----------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`expected identifier in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
|
|
+---------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`expected 'compiler', 'lib', 'user', or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`expected integer between` |nbsp| :placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B` |nbsp| :diagtext:`inclusive in '#pragma` |nbsp| :placeholder:`C`:diagtext:`' - ignored`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`missing '(' after '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignoring`|
|
|
+-----------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`expected non-wide string literal in '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`|
|
|
+------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------+---------------------------------------------------+------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`expected` |nbsp| |+-------------------------------------------------+| |nbsp| :diagtext:`- ignoring`|
|
|
| ||:diagtext:`'enable', 'disable', 'begin' or 'end'`|| |
|
|
| |+-------------------------------------------------+| |
|
|
| ||:diagtext:`'disable'` || |
|
|
| |+-------------------------------------------------+| |
|
|
+-------------------------------------------------------+---------------------------------------------------+------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`expected ')' or ',' in '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`|
|
|
+-----------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`missing ')' after '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignoring`|
|
|
+-----------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`expected a stack label or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`expected a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`expected push, pop or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`expected string literal in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignoring`|
|
|
+--------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`extra tokens at end of '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
|
|
+---------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`incorrect use of #pragma clang force\_cuda\_host\_device begin\|end`|
|
|
+----------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'#pragma init\_seg' is only supported when targeting a Microsoft environment`|
|
|
+-------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`unknown action for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
|
|
+-----------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`unexpected argument '`:placeholder:`A`:diagtext:`' to '#pragma` |nbsp| :placeholder:`B`:diagtext:`'`|+------------------------------------------------+|
|
|
| || ||
|
|
| |+------------------------------------------------+|
|
|
| ||+----------------------------------------------+||
|
|
| |||:diagtext:`; expected` |nbsp| :placeholder:`D`|||
|
|
| ||+----------------------------------------------+||
|
|
| |+------------------------------------------------+|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`unknown action '`:placeholder:`B`:diagtext:`' for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------+--------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`missing argument to '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`|+------------------------------------------------+|
|
|
| || ||
|
|
| |+------------------------------------------------+|
|
|
| ||+----------------------------------------------+||
|
|
| |||:diagtext:`; expected` |nbsp| :placeholder:`C`|||
|
|
| ||+----------------------------------------------+||
|
|
| |+------------------------------------------------+|
|
|
+--------------------------------------------------------------------------------------------------------+--------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`incorrect use of '#pragma ms\_struct on\|off' - ignored`|
|
|
+----------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`#pragma options align=reset failed:` |nbsp| :placeholder:`A`|
|
|
+--------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`expected 'align' following '#pragma options' - ignored`|
|
|
+---------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`expected #pragma pack parameter to be '1', '2', '4', '8', or '16'`|
|
|
+--------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`expected integer or identifier in '#pragma pack' - ignored`|
|
|
+-------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`#pragma` |nbsp| :placeholder:`A`:diagtext:`(pop, ...) failed:` |nbsp| :placeholder:`B`|
|
|
+----------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`pragma pop\_macro could not pop '`:placeholder:`A`:diagtext:`', no matching push\_macro`|
|
|
+------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`unknown OpenCL extension` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`|
|
|
+---------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`known but unsupported action '`:placeholder:`B`:diagtext:`' for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`unsupported OpenCL extension` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`|
|
|
+-------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`expected '#pragma unused' argument to be a variable name`|
|
|
+-----------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`only variables can be arguments to '#pragma unused'`|
|
|
+------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`undeclared variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`used as an argument for '#pragma unused'`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wignored-qualifiers
|
|
--------------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------+------------------------------------+----------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ARC` |nbsp| |+----------------------------------+| |nbsp| :diagtext:`lifetime qualifier on return type is ignored`|
|
|
| ||:diagtext:`unused` || |
|
|
| |+----------------------------------+| |
|
|
| ||:diagtext:`\_\_unsafe\_unretained`|| |
|
|
| |+----------------------------------+| |
|
|
| ||:diagtext:`\_\_strong` || |
|
|
| |+----------------------------------+| |
|
|
| ||:diagtext:`\_\_weak` || |
|
|
| |+----------------------------------+| |
|
|
| ||:diagtext:`\_\_autoreleasing` || |
|
|
| |+----------------------------------+| |
|
|
+--------------------------------------------------+------------------------------------+----------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on omitted return type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------+---------------+------------------------------------------+------------------+-----------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' type qualifier`|+-------------+| |nbsp| :diagtext:`on return type` |nbsp| |+----------------+| |nbsp| :diagtext:`no effect`|
|
|
| || || ||:diagtext:`has` || |
|
|
| |+-------------+| |+----------------+| |
|
|
| ||:diagtext:`s`|| ||:diagtext:`have`|| |
|
|
| |+-------------+| |+----------------+| |
|
|
+------------------------------------------------------------------------------------+---------------+------------------------------------------+------------------+-----------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on function type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on reference type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wimplicit
|
|
----------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
Controls `-Wimplicit-function-declaration`_, `-Wimplicit-int`_.
|
|
|
|
|
|
-Wimplicit-atomic-properties
|
|
----------------------------
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`property is assumed atomic when auto-synthesizing the property`|
|
|
+-----------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`property is assumed atomic by default`|
|
|
+----------------------------------------------------------------------------+
|
|
|
|
|
|
-Wimplicit-const-int-float-conversion
|
|
-------------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**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`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-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-fixed-point-conversion
|
|
---------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot fit within the range of values for` |nbsp| :placeholder:`B`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wimplicit-float-conversion
|
|
---------------------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
Also controls `-Wimplicit-int-float-conversion`_, `-Wobjc-signed-char-bool-implicit-float-conversion`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses floating-point precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`implicit conversion when assigning computation result loses floating-point precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wimplicit-function-declaration
|
|
-------------------------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`implicit declaration of function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is invalid in 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-int-conversion
|
|
-------------------------
|
|
Also controls `-Wobjc-signed-char-bool-implicit-int-conversion`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`higher order bits are zeroes after implicit conversion`|
|
|
+---------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses integer precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wimplicit-int-float-conversion
|
|
-------------------------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
Also controls `-Wimplicit-const-int-float-conversion`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`may lose precision`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-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 in file found relative to primary source file or found by absolute path; will search from start of include path`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Winclude-next-outside-header
|
|
-----------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`#include\_next in primary source file; will search from start of include path`|
|
|
+--------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wincompatible-exception-spec
|
|
-----------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------+----------------------+--------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`exception specifications of` |nbsp| |+--------------------+| |nbsp| :diagtext:`types differ`|
|
|
| ||:diagtext:`return` || |
|
|
| |+--------------------+| |
|
|
| ||:diagtext:`argument`|| |
|
|
| |+--------------------+| |
|
|
+--------------------------------------------------------------------------+----------------------+--------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`target exception specification is not superset of source`|
|
|
+-----------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wincompatible-function-pointer-types
|
|
-------------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`incompatible function pointer types` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+|
|
|
| ||:diagtext:`assigning to different types` ||| ||
|
|
| |+--------------------------------------------------------------+|+-------------------------------------+|
|
|
| ||:diagtext:`passing to parameter of different type` |||:diagtext:`; dereference with \*` ||
|
|
| |+--------------------------------------------------------------+|+-------------------------------------+|
|
|
| ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`||
|
|
| |+--------------------------------------------------------------+|+-------------------------------------+|
|
|
| ||:diagtext:`converting between types` |||:diagtext:`; remove \*` ||
|
|
| |+--------------------------------------------------------------+|+-------------------------------------+|
|
|
| ||:diagtext:`initializing with expression of different type` |||:diagtext:`; remove &` ||
|
|
| |+--------------------------------------------------------------+|+-------------------------------------+|
|
|
| ||:diagtext:`sending to parameter of different type` || |
|
|
| |+--------------------------------------------------------------+| |
|
|
| ||:diagtext:`casting between types` || |
|
|
| |+--------------------------------------------------------------+| |
|
|
+----------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
|
|
|
|
|
|
-Wincompatible-library-redeclaration
|
|
------------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`incompatible redeclaration of library function` |nbsp| :placeholder:`A`|
|
|
+-------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wincompatible-ms-struct
|
|
------------------------
|
|
This diagnostic is an error by default, but the flag ``-Wno-incompatible-ms-struct`` can be used to disable the error.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:error:`error:` |nbsp| :diagtext:`ms\_struct may not produce Microsoft-compatible layouts for classes with base classes or virtual functions`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:error:`error:` |nbsp| :diagtext:`ms\_struct may not produce Microsoft-compatible layouts with fundamental data types with sizes that aren't a power of two`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wincompatible-pointer-types
|
|
----------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
Also controls `-Wincompatible-function-pointer-types`_, `-Wincompatible-pointer-types-discards-qualifiers`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`incompatible pointer types` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+|
|
|
| ||:diagtext:`assigning to different types` ||| ||
|
|
| |+--------------------------------------------------------------+|+-------------------------------------+|
|
|
| ||:diagtext:`passing to parameter of different type` |||:diagtext:`; dereference with \*` ||
|
|
| |+--------------------------------------------------------------+|+-------------------------------------+|
|
|
| ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`||
|
|
| |+--------------------------------------------------------------+|+-------------------------------------+|
|
|
| ||:diagtext:`converting between types` |||:diagtext:`; remove \*` ||
|
|
| |+--------------------------------------------------------------+|+-------------------------------------+|
|
|
| ||:diagtext:`initializing with expression of different type` |||:diagtext:`; remove &` ||
|
|
| |+--------------------------------------------------------------+|+-------------------------------------+|
|
|
| ||:diagtext:`sending to parameter of different type` || |
|
|
| |+--------------------------------------------------------------+| |
|
|
| ||:diagtext:`casting between types` || |
|
|
| |+--------------------------------------------------------------+| |
|
|
+-------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
|
|
|
|
|
|
-Wincompatible-pointer-types-discards-qualifiers
|
|
------------------------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------+----------------------------------------------------------------+---------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`discards qualifiers in nested pointer types`|
|
|
| ||:diagtext:`assigning to different types` || |
|
|
| |+--------------------------------------------------------------+| |
|
|
| ||:diagtext:`passing to parameter of different type` || |
|
|
| |+--------------------------------------------------------------+| |
|
|
| ||:diagtext:`returning from function with different return type`|| |
|
|
| |+--------------------------------------------------------------+| |
|
|
| ||:diagtext:`converting between types` || |
|
|
| |+--------------------------------------------------------------+| |
|
|
| ||:diagtext:`initializing with expression of different type` || |
|
|
| |+--------------------------------------------------------------+| |
|
|
| ||:diagtext:`sending to parameter of different type` || |
|
|
| |+--------------------------------------------------------------+| |
|
|
| ||:diagtext:`casting between types` || |
|
|
| |+--------------------------------------------------------------+| |
|
|
+---------------------------+----------------------------------------------------------------+---------------------------------------------------------------+
|
|
|
|
+---------------------------+----------------------------------------------------------------+---------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`discards qualifiers`|
|
|
| ||:diagtext:`assigning to different types` || |
|
|
| |+--------------------------------------------------------------+| |
|
|
| ||:diagtext:`passing to parameter of different type` || |
|
|
| |+--------------------------------------------------------------+| |
|
|
| ||:diagtext:`returning from function with different return type`|| |
|
|
| |+--------------------------------------------------------------+| |
|
|
| ||:diagtext:`converting between types` || |
|
|
| |+--------------------------------------------------------------+| |
|
|
| ||:diagtext:`initializing with expression of different type` || |
|
|
| |+--------------------------------------------------------------+| |
|
|
| ||:diagtext:`sending to parameter of different type` || |
|
|
| |+--------------------------------------------------------------+| |
|
|
| ||:diagtext:`casting between types` || |
|
|
| |+--------------------------------------------------------------+| |
|
|
+---------------------------+----------------------------------------------------------------+---------------------------------------+
|
|
|
|
+---------------------------+-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`from` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to` |nbsp| :placeholder:`C` |nbsp| :diagtext:`changes address space of nested pointers`|
|
|
| ||:diagtext:`reinterpret\_cast`|| |
|
|
| |+-----------------------------+| |
|
|
| ||:diagtext:`C-style cast` || |
|
|
| |+-----------------------------+| |
|
|
+---------------------------+-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wincompatible-property-type
|
|
----------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`property type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`inherited from` |nbsp| :placeholder:`C`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wincompatible-sysroot
|
|
----------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`using sysroot for '`:placeholder:`A`:diagtext:`' but targeting '`:placeholder:`B`:diagtext:`'`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wincomplete-framework-module-declaration
|
|
-----------------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`skipping '`:placeholder:`A`:diagtext:`' because module declaration of '`:placeholder:`B`:diagtext:`' lacks the 'framework' qualifier`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wincomplete-implementation
|
|
---------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`method definition for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found`|
|
|
+-----------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wincomplete-module
|
|
-------------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
Controls `-Wincomplete-umbrella`_, `-Wnon-modular-include-in-module`_.
|
|
|
|
|
|
-Wincomplete-setjmp-declaration
|
|
-------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`declaration of built-in function '`:placeholder:`A`:diagtext:`' requires the declaration of the 'jmp\_buf' type, commonly provided in the header <setjmp.h>.`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wincomplete-umbrella
|
|
---------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`missing submodule '`:placeholder:`A`:diagtext:`'`|
|
|
+---------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`umbrella directory '`:placeholder:`A`:diagtext:`' not found`|
|
|
+--------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`umbrella header for module '`:placeholder:`A`:diagtext:`' does not include header '`:placeholder:`B`:diagtext:`'`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Winconsistent-dllimport
|
|
------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`redeclared without` |nbsp| :placeholder:`B` |nbsp| :diagtext:`attribute: previous` |nbsp| :placeholder:`B` |nbsp| :diagtext:`ignored`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`redeclared without 'dllimport' attribute: 'dllexport' attribute added`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Winconsistent-missing-destructor-override
|
|
------------------------------------------
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`overrides a destructor but is not marked 'override'`|
|
|
+------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Winconsistent-missing-override
|
|
-------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`overrides a member function but is not marked 'override'`|
|
|
+-----------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wincrement-bool
|
|
----------------
|
|
This diagnostic is enabled by default.
|
|
|
|
Also controls `-Wdeprecated-increment-bool`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------+
|
|
|:error:`error:` |nbsp| :diagtext:`ISO C++17 does not allow incrementing expression of type bool`|
|
|
+------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Winfinite-recursion
|
|
--------------------
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`all paths through this function will call itself`|
|
|
+---------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Winit-self
|
|
-----------
|
|
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
|
|
|
|
-Winitializer-overrides
|
|
-----------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------+-------------------------------+------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`initializer` |nbsp| |+-----------------------------+|:diagtext:`overrides prior initialization of this subobject`|
|
|
| ||:diagtext:`partially` |nbsp| || |
|
|
| |+-----------------------------+| |
|
|
| || || |
|
|
| |+-----------------------------+| |
|
|
+----------------------------------------------------------+-------------------------------+------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------+-------------------------------+------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`initializer` |nbsp| |+-----------------------------+|:diagtext:`overrides prior initialization of this subobject`|
|
|
| ||:diagtext:`partially` |nbsp| || |
|
|
| |+-----------------------------+| |
|
|
| || || |
|
|
| |+-----------------------------+| |
|
|
+----------------------------------------------------------+-------------------------------+------------------------------------------------------------+
|
|
|
|
|
|
-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-in-bool-context
|
|
---------------------
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`converting the enum constant to a boolean`|
|
|
+--------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`converting the result of '<<' to a boolean; did you mean '(`:placeholder:`A`:diagtext:`) != 0'?`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wint-to-pointer-cast
|
|
---------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
Also controls `-Wint-to-void-pointer-cast`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`cast to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from smaller integer type` |nbsp| :placeholder:`A`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wint-to-void-pointer-cast
|
|
--------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`cast to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from smaller integer type` |nbsp| :placeholder:`A`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Winteger-overflow
|
|
------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`overflow in expression; result is` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with type` |nbsp| :placeholder:`B`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Winvalid-command-line-argument
|
|
-------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
Also controls `-Wignored-optimization-argument`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`the given MCU supports` |nbsp| :placeholder:`A` |nbsp| :diagtext:`hardware multiply, but -mhwmult is set to` |nbsp| :placeholder:`B`:diagtext:`.`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`no MCU device specified, but '-mhwmult' is set to 'auto', assuming no hardware multiply. Use -mmcu to specify a MSP430 device, or -mhwmult to set hardware multiply type explicitly.`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`the given MCU does not support hardware multiply, but -mhwmult is set to` |nbsp| :placeholder:`A`:diagtext:`.`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`the object size sanitizer has no effect at -O0, but is explicitly enabled:` |nbsp| :placeholder:`A`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`optimization level '`:placeholder:`A`:diagtext:`' is not supported; using '`:placeholder:`B`:placeholder:`C`:diagtext:`' instead`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ignoring extension '`:placeholder:`A`:diagtext:`' because the '`:placeholder:`B`:diagtext:`' architecture does not support it`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Winvalid-constexpr
|
|
-------------------
|
|
This diagnostic is an error by default, but the flag ``-Wno-invalid-constexpr`` can be used to disable the error.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------+-----------------------+--------+-------------------------+--------------------------------------------------------+
|
|
|:error:`error:` |nbsp| |+---------------------+| |nbsp| |+-----------------------+| |nbsp| :diagtext:`never produces a constant expression`|
|
|
| ||:diagtext:`constexpr`|| ||:diagtext:`function` || |
|
|
| |+---------------------+| |+-----------------------+| |
|
|
| ||:diagtext:`consteval`|| ||:diagtext:`constructor`|| |
|
|
| |+---------------------+| |+-----------------------+| |
|
|
+-----------------------+-----------------------+--------+-------------------------+--------------------------------------------------------+
|
|
|
|
|
|
-Winvalid-iboutlet
|
|
------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute must be an object type (invalid` |nbsp| :placeholder:`B`:diagtext:`)`|
|
|
| ||:diagtext:`instance variable`|| |
|
|
| |+-----------------------------+| |
|
|
| ||:diagtext:`property` || |
|
|
| |+-----------------------------+| |
|
|
+---------------------------+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`IBOutletCollection properties should be copy/strong and not assign`|
|
|
+---------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Winvalid-initializer-from-system-header
|
|
----------------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`invalid constructor form class in system header, should not be explicit`|
|
|
+--------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Winvalid-ios-deployment-target
|
|
-------------------------------
|
|
This diagnostic is an error by default, but the flag ``-Wno-invalid-ios-deployment-target`` can be used to disable the error.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:error:`error:` |nbsp| :diagtext:`invalid iOS deployment version '`:placeholder:`A`:diagtext:`', iOS 10 is the maximum deployment target for 32-bit targets`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Winvalid-no-builtin-names
|
|
--------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is not a valid builtin name for` |nbsp| :placeholder:`B`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Winvalid-noreturn
|
|
------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`function declared 'noreturn' should not return`|
|
|
+-------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared 'noreturn' should not return`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Winvalid-offsetof
|
|
------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`offset of on non-POD type` |nbsp| :placeholder:`A`|
|
|
+----------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`offset of on non-standard-layout type` |nbsp| :placeholder:`A`|
|
|
+----------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Winvalid-or-nonexistent-directory
|
|
----------------------------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`environment variable SCE\_ORBIS\_SDK\_DIR is set, but points to invalid or nonexistent directory '`:placeholder:`A`:diagtext:`'`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`unable to find` |nbsp| :placeholder:`A` |nbsp| :diagtext:`directory, expected to be in '`:placeholder:`B`:diagtext:`'`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Winvalid-partial-specialization
|
|
--------------------------------
|
|
This diagnostic is an error by default, but the flag ``-Wno-invalid-partial-specialization`` can be used to disable the error.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------+----------------------+-----------------------------------------------------------------------------------------------------+
|
|
|:error:`error:` |nbsp| |+--------------------+| |nbsp| :diagtext:`template partial specialization is not more specialized than the primary template`|
|
|
| ||:diagtext:`class` || |
|
|
| |+--------------------+| |
|
|
| ||:diagtext:`variable`|| |
|
|
| |+--------------------+| |
|
|
+-----------------------+----------------------+-----------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Winvalid-pch
|
|
-------------
|
|
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
|
|
|
|
-Winvalid-pp-token
|
|
------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`empty character constant`|
|
|
+---------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------+-----------------+-----------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`missing terminating` |nbsp| |+---------------+| |nbsp| :diagtext:`character`|
|
|
| ||:diagtext:`'` || |
|
|
| |+---------------+| |
|
|
| ||:diagtext:`'"'`|| |
|
|
| |+---------------+| |
|
|
+------------------------------------------------------------------+-----------------+-----------------------------+
|
|
|
|
|
|
-Winvalid-source-encoding
|
|
-------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`illegal character encoding in character literal`|
|
|
+--------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`illegal character encoding in string literal`|
|
|
+-----------------------------------------------------------------------------------+
|
|
|
|
|
|
-Winvalid-token-paste
|
|
---------------------
|
|
This diagnostic is an error by default, but the flag ``-Wno-invalid-token-paste`` can be used to disable the error.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------+
|
|
|:error:`error:` |nbsp| :diagtext:`pasting formed '`:placeholder:`A`:diagtext:`', an invalid preprocessing token`|
|
|
+----------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wjump-seh-finally
|
|
------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`jump out of \_\_finally block has undefined behavior`|
|
|
+-------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wkeyword-compat
|
|
----------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`keyword '`:placeholder:`A`:diagtext:`' will be made available as an identifier` |nbsp| |+-----------------------------------------------------+|
|
|
| ||:diagtext:`here` ||
|
|
| |+-----------------------------------------------------+|
|
|
| ||:diagtext:`for the remainder of the translation unit`||
|
|
| |+-----------------------------------------------------+|
|
|
+-----------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+
|
|
|
|
|
|
-Wkeyword-macro
|
|
---------------
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`keyword is hidden by macro definition`|
|
|
+----------------------------------------------------------------------------+
|
|
|
|
|
|
-Wknr-promoted-parameter
|
|
------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`promoted type of K&R function parameter is not compatible with parameter type` |nbsp| :diagtext:`declared in a previous prototype`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wlanguage-extension-token
|
|
--------------------------
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`extension used`|
|
|
+-----------------------------------------------------+
|
|
|
|
|
|
-Wlarge-by-value-copy
|
|
---------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a large (`:placeholder:`B` |nbsp| :diagtext:`bytes) pass-by-value argument; pass it by reference instead ?`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`return value of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a large (`:placeholder:`B` |nbsp| :diagtext:`bytes) pass-by-value object; pass it by reference instead ?`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wliblto
|
|
--------
|
|
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
|
|
|
|
-Wliteral-conversion
|
|
--------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`changes value from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`implicit conversion of out of range value from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is undefined`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wliteral-range
|
|
---------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`magnitude of floating-point constant too large for type` |nbsp| :placeholder:`A`:diagtext:`; maximum is` |nbsp| :placeholder:`B`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`magnitude of floating-point constant too small for type` |nbsp| :placeholder:`A`:diagtext:`; minimum is` |nbsp| :placeholder:`B`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wlocal-type-template-args
|
|
--------------------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
Also controls `-Wc++98-compat-local-type-template-args`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`template argument uses local type` |nbsp| :placeholder:`A`|
|
|
+------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wlogical-not-parentheses
|
|
-------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------+------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`logical not is only applied to the left hand side of this` |nbsp| |+----------------------------+|
|
|
| ||:diagtext:`comparison` ||
|
|
| |+----------------------------+|
|
|
| ||:diagtext:`bitwise operator`||
|
|
| |+----------------------------+|
|
|
+--------------------------------------------------------------------------------------------------------+------------------------------+
|
|
|
|
|
|
-Wlogical-op-parentheses
|
|
------------------------
|
|
**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` |nbsp| |+--------------------------+|:diagtext:`initializer`|
|
|
| ||:diagtext:`scalar` |nbsp| || |
|
|
| |+--------------------------+| |
|
|
| || || |
|
|
| |+--------------------------+| |
|
|
+---------------------------------------------------------------------+----------------------------+-----------------------+
|
|
|
|
|
|
-Wmax-tokens
|
|
------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`the number of preprocessor source tokens (`:placeholder:`A`:diagtext:`) exceeds this token limit (`:placeholder:`B`:diagtext:`)`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`the total number of preprocessor source tokens (`:placeholder:`A`:diagtext:`) exceeds the token limit (`:placeholder:`B`:diagtext:`)`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
The warning is issued if the number of pre-processor tokens exceeds
|
|
the token limit, which can be set in three ways:
|
|
|
|
1. As a limit at a specific point in a file, using the ``clang max_tokens_here``
|
|
pragma:
|
|
|
|
.. code-block: c++
|
|
#pragma clang max_tokens_here 1234
|
|
|
|
2. As a per-translation unit limit, using the ``-fmax-tokens=`` command-line
|
|
flag:
|
|
|
|
.. code-block: console
|
|
clang -c a.cpp -fmax-tokens=1234
|
|
|
|
3. As a per-translation unit limit using the ``clang max_tokens_total`` pragma,
|
|
which works like and overrides the ``-fmax-tokens=`` flag:
|
|
|
|
.. code-block: c++
|
|
#pragma clang max_tokens_total 1234
|
|
|
|
These limits can be helpful in limiting code growth through included files.
|
|
|
|
Setting a token limit of zero means no limit.
|
|
|
|
-Wmax-unsigned-zero
|
|
-------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------+---------------------------------------+------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`taking the max of` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`is always equal to the other value`|
|
|
| ||:diagtext:`a value and unsigned zero`|| |
|
|
| |+-------------------------------------+| |
|
|
| ||:diagtext:`unsigned zero and a value`|| |
|
|
| |+-------------------------------------+| |
|
|
+----------------------------------------------------------------+---------------------------------------+------------------------------------------------------+
|
|
|
|
|
|
-Wmemset-transposed-args
|
|
------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------+-----------------------------------------------------+---------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+---------------------------------------------------+|:diagtext:`; did you mean to transpose the last two arguments?`|
|
|
| ||:diagtext:`'size' argument to memset is '0'` || |
|
|
| |+---------------------------------------------------+| |
|
|
| ||:diagtext:`setting buffer to a 'sizeof' expression`|| |
|
|
| |+---------------------------------------------------+| |
|
|
+---------------------------+-----------------------------------------------------+---------------------------------------------------------------+
|
|
|
|
|
|
-Wmemsize-comparison
|
|
--------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`size argument in` |nbsp| :placeholder:`A` |nbsp| :diagtext:`call is a comparison`|
|
|
+-----------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wmethod-signatures
|
|
-------------------
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in implementation of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`conflicting return type in implementation of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wmicrosoft
|
|
-----------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
Controls `-Winconsistent-dllimport`_, `-Wmicrosoft-anon-tag`_, `-Wmicrosoft-cast`_, `-Wmicrosoft-charize`_, `-Wmicrosoft-comment-paste`_, `-Wmicrosoft-const-init`_, `-Wmicrosoft-cpp-macro`_, `-Wmicrosoft-default-arg-redefinition`_, `-Wmicrosoft-drectve-section`_, `-Wmicrosoft-end-of-file`_, `-Wmicrosoft-enum-forward-reference`_, `-Wmicrosoft-enum-value`_, `-Wmicrosoft-exception-spec`_, `-Wmicrosoft-explicit-constructor-call`_, `-Wmicrosoft-extra-qualification`_, `-Wmicrosoft-fixed-enum`_, `-Wmicrosoft-flexible-array`_, `-Wmicrosoft-goto`_, `-Wmicrosoft-include`_, `-Wmicrosoft-mutable-reference`_, `-Wmicrosoft-pure-definition`_, `-Wmicrosoft-redeclare-static`_, `-Wmicrosoft-sealed`_, `-Wmicrosoft-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-drectve-section
|
|
---------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`#pragma` |nbsp| :placeholder:`A`:diagtext:`(".drectve") has undefined behavior, use #pragma comment(linker, ...) instead`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wmicrosoft-end-of-file
|
|
-----------------------
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`treating Ctrl-Z as end-of-file is a Microsoft extension`|
|
|
+----------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wmicrosoft-enum-forward-reference
|
|
----------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`forward references to 'enum' types are a Microsoft extension`|
|
|
+---------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wmicrosoft-enum-value
|
|
----------------------
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`enumerator value is not representable in the underlying type` |nbsp| :placeholder:`A`|
|
|
+---------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wmicrosoft-exception-spec
|
|
--------------------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`exception specification of '...' is a Microsoft extension`|
|
|
+------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------+----------------------------------+----------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+--------------------------------+|:diagtext:`incomplete type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is not allowed in exception specification`|
|
|
| || || |
|
|
| |+--------------------------------+| |
|
|
| ||:diagtext:`pointer to` |nbsp| || |
|
|
| |+--------------------------------+| |
|
|
| ||:diagtext:`reference to` |nbsp| || |
|
|
| |+--------------------------------+| |
|
|
+---------------------------+----------------------------------+----------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`exception specification in declaration does not match previous declaration`|
|
|
+-----------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`exception specification in explicit instantiation does not match instantiated one`|
|
|
+------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is missing exception specification '`:placeholder:`B`:diagtext:`'`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`exception specification of overriding function is more lax than base version`|
|
|
+-------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wmicrosoft-exists
|
|
------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------+---------------------------------+--------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`dependent` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`declarations are ignored`|
|
|
| ||:diagtext:`\_\_if\_not\_exists`|| |
|
|
| |+-------------------------------+| |
|
|
| ||:diagtext:`\_\_if\_exists` || |
|
|
| |+-------------------------------+| |
|
|
+--------------------------------------------------------+---------------------------------+--------------------------------------------+
|
|
|
|
|
|
-Wmicrosoft-explicit-constructor-call
|
|
-------------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`explicit constructor calls are a Microsoft extension`|
|
|
+-------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wmicrosoft-extra-qualification
|
|
-------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`extra qualification on member` |nbsp| :placeholder:`A`|
|
|
+--------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wmicrosoft-fixed-enum
|
|
----------------------
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a Microsoft extension`|
|
|
+---------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wmicrosoft-flexible-array
|
|
--------------------------
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in otherwise empty` |nbsp| |+---------------------+| |nbsp| :diagtext:`is a Microsoft extension`|
|
|
| ||:diagtext:`struct` || |
|
|
| |+---------------------+| |
|
|
| ||:diagtext:`interface`|| |
|
|
| |+---------------------+| |
|
|
| ||:diagtext:`union` || |
|
|
| |+---------------------+| |
|
|
| ||:diagtext:`class` || |
|
|
| |+---------------------+| |
|
|
| ||:diagtext:`enum` || |
|
|
| |+---------------------+| |
|
|
+----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in a union is a Microsoft extension`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wmicrosoft-goto
|
|
----------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`jump from this goto statement to its label is a Microsoft extension`|
|
|
+----------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wmicrosoft-inaccessible-base
|
|
-----------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`accessing inaccessible direct base` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is a Microsoft extension`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wmicrosoft-include
|
|
-------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`#include resolved using non-portable Microsoft search rules as:` |nbsp| :placeholder:`A`|
|
|
+------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wmicrosoft-mutable-reference
|
|
-----------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'mutable' on a reference type is a Microsoft extension`|
|
|
+---------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wmicrosoft-pure-definition
|
|
---------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`function definition with pure-specifier is a Microsoft extension`|
|
|
+-------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wmicrosoft-redeclare-static
|
|
----------------------------
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`redeclaring non-static` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as static is a Microsoft extension`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wmicrosoft-sealed
|
|
------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'sealed' keyword is a Microsoft extension`|
|
|
+--------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wmicrosoft-template
|
|
--------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
Also controls `-Wmicrosoft-template-shadow`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`duplicate explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored as a Microsoft extension`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`use of identifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found via unqualified lookup into dependent bases of class templates is a Microsoft extension`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`using the undeclared type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as a default template argument is a Microsoft extension`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`non-type template argument containing a dereference operation is a Microsoft extension`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------+--------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`specialization of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not in` |nbsp| |+----------------------------------------------------------------------------------------+| |nbsp| :diagtext:`is a Microsoft extension`|
|
|
| ||:diagtext:`class template` || ||+---------------------------------------------------------+ || |
|
|
| |+-------------------------------------+| |||:diagtext:`a namespace enclosing` |nbsp| :placeholder:`C`| || |
|
|
| ||:diagtext:`class template partial` || ||+---------------------------------------------------------+ || |
|
|
| |+-------------------------------------+| |+----------------------------------------------------------------------------------------+| |
|
|
| ||:diagtext:`variable template` || ||+--------------------------------------------------------------------------------------+|| |
|
|
| |+-------------------------------------+| |||:diagtext:`class` |nbsp| :placeholder:`C` |nbsp| :diagtext:`or an enclosing namespace`||| |
|
|
| ||:diagtext:`variable template partial`|| ||+--------------------------------------------------------------------------------------+|| |
|
|
| |+-------------------------------------+| |+----------------------------------------------------------------------------------------+| |
|
|
| ||:diagtext:`function template` || | | |
|
|
| |+-------------------------------------+| | | |
|
|
| ||:diagtext:`member function` || | | |
|
|
| |+-------------------------------------+| | | |
|
|
| ||:diagtext:`static data member` || | | |
|
|
| |+-------------------------------------+| | | |
|
|
| ||:diagtext:`member class` || | | |
|
|
| |+-------------------------------------+| | | |
|
|
| ||:diagtext:`member enumeration` || | | |
|
|
| |+-------------------------------------+| | | |
|
|
+---------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------+--------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`template argument for template type parameter must be a type; omitted 'typename' is a Microsoft extension`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'static' can only be specified inside the class definition`|
|
|
+-------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|: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-template-shadow
|
|
---------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`declaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`shadows template parameter`|
|
|
+---------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-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`|
|
|
+------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wmisexpect
|
|
-----------
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`Potential performance regression from use of \_\_builtin\_expect(): Annotation was correct on` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of profiled executions.`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wmisleading-indentation
|
|
------------------------
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------+-------------------+-------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`misleading indentation; statement is not part of the previous '`|+-----------------+|:diagtext:`'`|
|
|
| ||:diagtext:`if` || |
|
|
| |+-----------------+| |
|
|
| ||:diagtext:`else` || |
|
|
| |+-----------------+| |
|
|
| ||:diagtext:`for` || |
|
|
| |+-----------------+| |
|
|
| ||:diagtext:`while`|| |
|
|
| |+-----------------+| |
|
|
+------------------------------------------------------------------------------------------------------+-------------------+-------------+
|
|
|
|
|
|
-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:`; this is valid, but may result in linker errors under the Microsoft C++ ABI`|
|
|
| ||:diagtext:`a struct` ||| || ||:diagtext:`a struct` ||| || |
|
|
| |+------------------------+|+----------------------------+| |+------------------------+|+----------------------------+| |
|
|
| ||:diagtext:`an interface`||| |nbsp| :diagtext:`template`|| ||:diagtext:`an interface`||| |nbsp| :diagtext:`template`|| |
|
|
| |+------------------------+|+----------------------------+| |+------------------------+|+----------------------------+| |
|
|
| ||:diagtext:`a class` || | ||:diagtext:`a class` || | |
|
|
| |+------------------------+| | |+------------------------+| | |
|
|
+---------------------------------------------------------------------------------+--------------------------+------------------------------+-----------------------------------------------------------+--------------------------+------------------------------+----------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------+-----------------------+------------------------------+--------------------------------------------------------------------------------+-----------------------+------------------------------+----------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+---------------------+|+----------------------------+| |nbsp| :placeholder:`C` |nbsp| :diagtext:`was previously declared as a` |nbsp| |+---------------------+|+----------------------------+|:diagtext:`; this is valid, but may result in linker errors under the Microsoft C++ ABI`|
|
|
| ||:diagtext:`struct` ||| || ||:diagtext:`struct` ||| || |
|
|
| |+---------------------+|+----------------------------+| |+---------------------+|+----------------------------+| |
|
|
| ||:diagtext:`interface`||| |nbsp| :diagtext:`template`|| ||:diagtext:`interface`||| |nbsp| :diagtext:`template`|| |
|
|
| |+---------------------+|+----------------------------+| |+---------------------+|+----------------------------+| |
|
|
| ||:diagtext:`class` || | ||:diagtext:`class` || | |
|
|
| |+---------------------+| | |+---------------------+| | |
|
|
+---------------------------+-----------------------+------------------------------+--------------------------------------------------------------------------------+-----------------------+------------------------------+----------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wmissing-braces
|
|
----------------
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`suggest braces around initialization of subobject`|
|
|
+----------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wmissing-constinit
|
|
-------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'constinit' specifier missing on initializing declaration of` |nbsp| :placeholder:`A`|
|
|
+---------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wmissing-declarations
|
|
----------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`declaration does not declare anything`|
|
|
+----------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is not permitted on a declaration of a type`|
|
|
+-----------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`typedef requires a name`|
|
|
+--------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' ignored on this declaration`|
|
|
+-------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wmissing-exception-spec
|
|
------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is missing exception specification '`:placeholder:`B`:diagtext:`'`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wmissing-field-initializers
|
|
----------------------------
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`missing field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`initializer`|
|
|
+-----------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wmissing-format-attribute
|
|
--------------------------
|
|
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
|
|
|
|
-Wmissing-include-dirs
|
|
----------------------
|
|
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
|
|
|
|
-Wmissing-method-return-type
|
|
----------------------------
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`method has no return type specified; defaults to 'id'`|
|
|
+--------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wmissing-noescape
|
|
------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`parameter of overriding method should be annotated with \_\_attribute\_\_((noescape))`|
|
|
+----------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wmissing-noreturn
|
|
------------------
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`block could be declared with attribute 'noreturn'`|
|
|
+----------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------+----------------------+---------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`could be declared with attribute 'noreturn'`|
|
|
| ||:diagtext:`function`|| |
|
|
| |+--------------------+| |
|
|
| ||:diagtext:`method` || |
|
|
| |+--------------------+| |
|
|
+---------------------------+----------------------+---------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wmissing-prototype-for-cc
|
|
--------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`function with no prototype cannot use the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`calling convention`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wmissing-prototypes
|
|
--------------------
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`no previous prototype for function` |nbsp| :placeholder:`A`|
|
|
+-------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wmissing-selector-name
|
|
-----------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`used as the name of the previous parameter rather than as part of the selector`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wmissing-sysroot
|
|
-----------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`no such sysroot directory: '`:placeholder:`A`:diagtext:`'`|
|
|
+------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wmissing-variable-declarations
|
|
-------------------------------
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`no previous extern declaration for non-static variable` |nbsp| :placeholder:`A`|
|
|
+---------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Rmodule-build
|
|
--------------
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------+
|
|
|:remark:`remark:` |nbsp| :diagtext:`building module '`:placeholder:`A`:diagtext:`' as '`:placeholder:`B`:diagtext:`'`|
|
|
+---------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------+
|
|
|:remark:`remark:` |nbsp| :diagtext:`finished building module '`:placeholder:`A`:diagtext:`'`|
|
|
+--------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------+
|
|
|:remark:`remark:` |nbsp| :diagtext:`could not acquire lock file for module '`:placeholder:`A`:diagtext:`':` |nbsp| :placeholder:`B`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------+
|
|
|:remark:`remark:` |nbsp| :diagtext:`timed out waiting to acquire lock file for module '`:placeholder:`A`:diagtext:`'`|
|
|
+---------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wmodule-conflict
|
|
-----------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`module '`:placeholder:`A`:diagtext:`' conflicts with already-imported module '`:placeholder:`B`:diagtext:`':` |nbsp| :placeholder:`C`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`module file '`:placeholder:`A`:diagtext:`' was validated as a system module and is now being imported as a non-system module; any difference in diagnostic options will be ignored`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wmodule-file-config-mismatch
|
|
-----------------------------
|
|
This diagnostic is an error by default, but the flag ``-Wno-module-file-config-mismatch`` can be used to disable the error.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:error:`error:` |nbsp| :diagtext:`module file` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be loaded due to a configuration mismatch with the current compilation`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wmodule-file-extension
|
|
-----------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`duplicate module file extension block name '`:placeholder:`A`:diagtext:`'`|
|
|
+----------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Rmodule-import
|
|
---------------
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------+-----------------------------------------------------------+-------------------------------------------------------+
|
|
|:remark:`remark:` |nbsp| :diagtext:`importing module '`:placeholder:`A`:diagtext:`'`|+---------------------------------------------------------+| |nbsp| :diagtext:`from '`:placeholder:`B`:diagtext:`'`|
|
|
| || || |
|
|
| |+---------------------------------------------------------+| |
|
|
| ||+-------------------------------------------------------+|| |
|
|
| ||| |nbsp| :diagtext:`into '`:placeholder:`D`: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`_, `-Wframe-address`_, `-Wimplicit`_, `-Winfinite-recursion`_, `-Wint-in-bool-context`_, `-Wmismatched-tags`_, `-Wmissing-braces`_, `-Wmove`_, `-Wmultichar`_, `-Wobjc-designated-initializers`_, `-Wobjc-flexible-array`_, `-Wobjc-missing-super-calls`_, `-Woverloaded-virtual`_, `-Wprivate-extern`_, `-Wrange-loop-construct`_, `-Wreorder`_, `-Wreturn-type`_, `-Wself-assign`_, `-Wself-move`_, `-Wsizeof-array-argument`_, `-Wsizeof-array-decay`_, `-Wstring-plus-int`_, `-Wtautological-compare`_, `-Wtrigraphs`_, `-Wuninitialized`_, `-Wunknown-pragmas`_, `-Wunused`_, `-Wuser-defined-warnings`_, `-Wvolatile-register-var`_.
|
|
|
|
|
|
-Wmove
|
|
------
|
|
Controls `-Wpessimizing-move`_, `-Wredundant-move`_, `-Wreturn-std-move`_, `-Wself-move`_.
|
|
|
|
|
|
-Wmsvc-include
|
|
--------------
|
|
Synonym for `-Wmicrosoft-include`_.
|
|
|
|
|
|
-Wmsvc-not-found
|
|
----------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`unable to find a Visual Studio installation; try running Clang from a developer command prompt`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wmultichar
|
|
-----------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`multi-character character constant`|
|
|
+-------------------------------------------------------------------------+
|
|
|
|
|
|
-Wmultiple-move-vbase
|
|
---------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`defaulted move assignment operator of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will move assign virtual base class` |nbsp| :placeholder:`B` |nbsp| :diagtext:`multiple times`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wnarrowing
|
|
-----------
|
|
Synonym for `-Wc++11-narrowing`_.
|
|
|
|
|
|
-Wnested-anon-types
|
|
-------------------
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------+--------------------+------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`anonymous types declared in an anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`are an extension`|
|
|
| ||:diagtext:`struct`|| |
|
|
| |+------------------+| |
|
|
| ||:diagtext:`union` || |
|
|
| |+------------------+| |
|
|
+---------------------------------------------------------------------------------------+--------------------+------------------------------------+
|
|
|
|
|
|
-Wnested-externs
|
|
----------------
|
|
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
|
|
|
|
-Wnew-returns-null
|
|
------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return a null pointer unless it is declared 'throw()'`|+---------------------------------+|
|
|
| || ||
|
|
| |+---------------------------------+|
|
|
| || |nbsp| :diagtext:`or 'noexcept'`||
|
|
| |+---------------------------------+|
|
|
+-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+
|
|
|
|
|
|
-Wnewline-eof
|
|
-------------
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`|
|
|
+----------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`|
|
|
+----------------------------------------------------------------+
|
|
|
|
|
|
-Wnoderef
|
|
---------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`dereferencing` |nbsp| :placeholder:`A`:diagtext:`; was declared with a 'noderef' type`|
|
|
+----------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`dereferencing expression marked as 'noderef'`|
|
|
+-----------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`casting to dereferenceable pointer removes 'noderef' attribute`|
|
|
+-----------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wnoexcept-type
|
|
---------------
|
|
Synonym for `-Wc++17-compat-mangling`_.
|
|
|
|
|
|
-Wnon-c-typedef-for-linkage
|
|
---------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------+---------------------+----------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`anonymous non-C-compatible type given name for linkage purposes by` |nbsp| |+-------------------+| |nbsp| :diagtext:`declaration; add a tag name here`|
|
|
| ||:diagtext:`typedef`|| |
|
|
| |+-------------------+| |
|
|
| ||:diagtext:`alias` || |
|
|
| |+-------------------+| |
|
|
+-----------------------------------------------------------------------------------------------------------------+---------------------+----------------------------------------------------+
|
|
|
|
|
|
-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-power-of-two-alignment
|
|
----------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`requested alignment is not a power of 2`|
|
|
+------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wnon-virtual-dtor
|
|
------------------
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has virtual functions but non-virtual destructor`|
|
|
+---------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wnonnull
|
|
---------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`null passed to a callee that requires a non-null argument`|
|
|
+------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------+----------------------+---------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`null returned from` |nbsp| |+--------------------+| |nbsp| :diagtext:`that requires a non-null return value`|
|
|
| ||:diagtext:`function`|| |
|
|
| |+--------------------+| |
|
|
| ||:diagtext:`method` || |
|
|
| |+--------------------+| |
|
|
+-----------------------------------------------------------------+----------------------+---------------------------------------------------------+
|
|
|
|
|
|
-Wnonportable-cfstrings
|
|
-----------------------
|
|
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
|
|
|
|
-Wnonportable-include-path
|
|
--------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`non-portable path to file '`:placeholder:`A`:diagtext:`'; specified path differs in case from file name on disk`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wnonportable-system-include-path
|
|
---------------------------------
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`non-portable path to file '`:placeholder:`A`:diagtext:`'; specified path differs in case from file name on disk`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wnonportable-vector-initialization
|
|
-----------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`vector initializers are not compatible with NEON intrinsics in big endian mode`|
|
|
+---------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wnontrivial-memaccess
|
|
----------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`this` |nbsp| :placeholder:`B` |nbsp| :diagtext:`call is a pointer to record` |nbsp| :placeholder:`C` |nbsp| :diagtext:`that is not trivial to` |nbsp| |+----------------------------------------+|
|
|
| ||:diagtext:`destination for` || ||:diagtext:`primitive-default-initialize`||
|
|
| |+-----------------------------+| |+----------------------------------------+|
|
|
| ||:diagtext:`source of` || ||:diagtext:`primitive-copy` ||
|
|
| |+-----------------------------+| |+----------------------------------------+|
|
|
| ||:diagtext:`first operand of` || | |
|
|
| |+-----------------------------+| | |
|
|
| ||:diagtext:`second operand of`|| | |
|
|
| |+-----------------------------+| | |
|
|
+---------------------------+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------+
|
|
|
|
|
|
-Wnsconsumed-mismatch
|
|
---------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`overriding method has mismatched ns\_consumed attribute on its parameter`|
|
|
+---------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wnsreturns-mismatch
|
|
--------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------+---------------------------+------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`overriding method has mismatched ns\_returns\_`|+-------------------------+| |nbsp| :diagtext:`attributes`|
|
|
| ||:diagtext:`not\_retained`|| |
|
|
| |+-------------------------+| |
|
|
| ||:diagtext:`retained` || |
|
|
| |+-------------------------+| |
|
|
+-------------------------------------------------------------------------------------+---------------------------+------------------------------+
|
|
|
|
|
|
-Wnull-arithmetic
|
|
-----------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`use of NULL in arithmetic operation`|
|
|
+--------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------+--------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`comparison between NULL and non-pointer` |nbsp| |+------------------------------------------------------------+|
|
|
| ||+----------------------------------------------------------+||
|
|
| |||:diagtext:`(`:placeholder:`B` |nbsp| :diagtext:`and NULL)`|||
|
|
| ||+----------------------------------------------------------+||
|
|
| |+------------------------------------------------------------+|
|
|
| ||+----------------------------------------------------------+||
|
|
| |||:diagtext:`(NULL and` |nbsp| :placeholder:`B`:diagtext:`)`|||
|
|
| ||+----------------------------------------------------------+||
|
|
| |+------------------------------------------------------------+|
|
|
+--------------------------------------------------------------------------------------+--------------------------------------------------------------+
|
|
|
|
|
|
-Wnull-character
|
|
----------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------+--------------------+---------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`null character(s) preserved in` |nbsp| |+------------------+| |nbsp| :diagtext:`literal`|
|
|
| ||:diagtext:`char` || |
|
|
| |+------------------+| |
|
|
| ||:diagtext:`string`|| |
|
|
| |+------------------+| |
|
|
+-----------------------------------------------------------------------------+--------------------+---------------------------+
|
|
|
|
+-------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`null character ignored`|
|
|
+-------------------------------------------------------------+
|
|
|
|
|
|
-Wnull-conversion
|
|
-----------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------+---------------------+-------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`implicit conversion of` |nbsp| |+-------------------+| |nbsp| :diagtext:`constant to` |nbsp| :placeholder:`B`|
|
|
| ||:diagtext:`NULL` || |
|
|
| |+-------------------+| |
|
|
| ||:diagtext:`nullptr`|| |
|
|
| |+-------------------+| |
|
|
+---------------------------------------------------------------------+---------------------+-------------------------------------------------------+
|
|
|
|
|
|
-Wnull-dereference
|
|
------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`binding dereferenced null pointer to reference has undefined behavior`|
|
|
+------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`indirection of non-volatile null pointer will be deleted, not trap`|
|
|
+---------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wnull-pointer-arithmetic
|
|
-------------------------
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------+----------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`performing pointer arithmetic on a null pointer has undefined behavior`|+--------------------------------------------+|
|
|
| || ||
|
|
| |+--------------------------------------------+|
|
|
| || |nbsp| :diagtext:`if the offset is nonzero`||
|
|
| |+--------------------------------------------+|
|
|
+-------------------------------------------------------------------------------------------------------------+----------------------------------------------+
|
|
|
|
|
|
-Wnullability
|
|
-------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`conflicting nullability specifier on parameter types,` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`conflicting nullability specifier on return types,` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`nullability specifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`synthesized setter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for null\_resettable property` |nbsp| :placeholder:`B` |nbsp| :diagtext:`does not handle nil`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`duplicate nullability specifier` |nbsp| :placeholder:`A`|
|
|
+----------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wnullability-completeness
|
|
--------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
Also controls `-Wnullability-completeness-on-arrays`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------+----------------------------+-----------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+--------------------------+| |nbsp| :diagtext:`is missing a nullability type specifier (\_Nonnull, \_Nullable, or \_Null\_unspecified)`|
|
|
| ||:diagtext:`pointer` || |
|
|
| |+--------------------------+| |
|
|
| ||:diagtext:`block pointer` || |
|
|
| |+--------------------------+| |
|
|
| ||:diagtext:`member pointer`|| |
|
|
| |+--------------------------+| |
|
|
+---------------------------+----------------------------+-----------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wnullability-completeness-on-arrays
|
|
------------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`array parameter is missing a nullability type specifier (\_Nonnull, \_Nullable, or \_Null\_unspecified)`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wnullability-declspec
|
|
----------------------
|
|
This diagnostic is an error by default, but the flag ``-Wno-nullability-declspec`` can be used to disable the error.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------+-------------+
|
|
|:error:`error:` |nbsp| :diagtext:`nullability specifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be applied to non-pointer type` |nbsp| :placeholder:`B`:diagtext:`; did you mean to apply the specifier to the` |nbsp| |+-----------------------------------+|:diagtext:`?`|
|
|
| ||:diagtext:`pointer` || |
|
|
| |+-----------------------------------+| |
|
|
| ||:diagtext:`block pointer` || |
|
|
| |+-----------------------------------+| |
|
|
| ||:diagtext:`member pointer` || |
|
|
| |+-----------------------------------+| |
|
|
| ||:diagtext:`function pointer` || |
|
|
| |+-----------------------------------+| |
|
|
| ||:diagtext:`member function pointer`|| |
|
|
| |+-----------------------------------+| |
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------+-------------+
|
|
|
|
|
|
-Wnullability-extension
|
|
-----------------------
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`type nullability specifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a Clang extension`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wnullability-inferred-on-nested-type
|
|
-------------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------+-----------------------+---------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`inferring '\_Nonnull' for pointer type within` |nbsp| |+---------------------+| |nbsp| :diagtext:`is deprecated`|
|
|
| ||:diagtext:`array` || |
|
|
| |+---------------------+| |
|
|
| ||:diagtext:`reference`|| |
|
|
| |+---------------------+| |
|
|
+--------------------------------------------------------------------------------------------+-----------------------+---------------------------------+
|
|
|
|
|
|
-Wnullable-to-nonnull-conversion
|
|
--------------------------------
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from nullable pointer` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to non-nullable pointer type` |nbsp| :placeholder:`B`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wobjc-autosynthesis-property-ivar-name-match
|
|
---------------------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`autosynthesized property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will use` |nbsp| |+-----------------------+| |nbsp| :diagtext:`instance variable` |nbsp| :placeholder:`C`:diagtext:`, not existing instance variable` |nbsp| :placeholder:`D`|
|
|
| || || |
|
|
| |+-----------------------+| |
|
|
| ||:diagtext:`synthesized`|| |
|
|
| |+-----------------------+| |
|
|
+---------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wobjc-bool-constant-conversion
|
|
-------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from constant value` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to 'BOOL'; the only well defined values for 'BOOL' are YES and NO`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wobjc-boxing
|
|
-------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`string is ill-formed as UTF-8 and will become a null` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when boxed`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wobjc-circular-container
|
|
-------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`adding` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`might cause circular dependency in container`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wobjc-cocoa-api
|
|
----------------
|
|
Synonym for `-Wobjc-redundant-api-use`_.
|
|
|
|
|
|
-Wobjc-designated-initializers
|
|
------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`designated initializer missing a 'super' call to a designated initializer of the super class`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`designated initializer invoked a non-designated initializer`|
|
|
+--------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`designated initializer should only invoke a designated initializer on 'super'`|
|
|
+--------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`method override for the designated initializer of the superclass` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`convenience initializer missing a 'self' call to another initializer`|
|
|
+-----------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`convenience initializer should not invoke an initializer on 'super'`|
|
|
+----------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wobjc-flexible-array
|
|
---------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`can overwrite instance variable` |nbsp| :placeholder:`B` |nbsp| :diagtext:`with variable sized type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`in superclass` |nbsp| :placeholder:`D`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with variable sized type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is not visible to subclasses and can conflict with their instance variables`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wobjc-forward-class-redefinition
|
|
---------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`redefinition of forward class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of a typedef name of an object type is ignored`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wobjc-interface-ivars
|
|
----------------------
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`declaration of instance variables in the interface is deprecated`|
|
|
+-------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wobjc-literal-compare
|
|
----------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
Also controls `-Wobjc-string-compare`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------+----------------------------------+------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`direct comparison of` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`has undefined behavior`|
|
|
| ||:diagtext:`an array literal` || |
|
|
| |+--------------------------------+| |
|
|
| ||:diagtext:`a dictionary literal`|| |
|
|
| |+--------------------------------+| |
|
|
| ||:diagtext:`a numeric literal` || |
|
|
| |+--------------------------------+| |
|
|
| ||:diagtext:`a boxed expression` || |
|
|
| |+--------------------------------+| |
|
|
| || || |
|
|
| |+--------------------------------+| |
|
|
+-------------------------------------------------------------------+----------------------------------+------------------------------------------+
|
|
|
|
|
|
-Wobjc-literal-conversion
|
|
-------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`implicit boolean conversion of Objective-C object literal always evaluates to true`|
|
|
+-------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`object of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not compatible with` |nbsp| |+---------------------------------+| |nbsp| :placeholder:`C`|
|
|
| ||:diagtext:`array element type` || |
|
|
| |+---------------------------------+| |
|
|
| ||:diagtext:`dictionary key type` || |
|
|
| |+---------------------------------+| |
|
|
| ||:diagtext:`dictionary value type`|| |
|
|
| |+---------------------------------+| |
|
|
+-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------+
|
|
|
|
|
|
-Wobjc-macro-redefinition
|
|
-------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ignoring redefinition of Objective-C qualifier macro`|
|
|
+-------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wobjc-messaging-id
|
|
-------------------
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`messaging unqualified id`|
|
|
+---------------------------------------------------------------+
|
|
|
|
|
|
-Wobjc-method-access
|
|
--------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`class method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id')`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`class method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id'); did you mean` |nbsp| :placeholder:`C`:diagtext:`?`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id')`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id'); did you mean` |nbsp| :placeholder:`C`:diagtext:`?`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found instead of class method` |nbsp| :placeholder:`B`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is being used on 'Class' which is not in the root class`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wobjc-missing-property-synthesis
|
|
---------------------------------
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`auto property synthesis is synthesizing property not explicitly synthesized`|
|
|
+------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wobjc-missing-super-calls
|
|
--------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`method possibly missing a \[super` |nbsp| :placeholder:`A`:diagtext:`\] call`|
|
|
+-------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wobjc-multiple-method-names
|
|
----------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`multiple methods named` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found`|
|
|
+--------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wobjc-noncopy-retain-block-property
|
|
------------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`retain'ed block property does not copy the block - use copy attribute instead`|
|
|
+--------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wobjc-nonunified-exceptions
|
|
----------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`cannot catch an exception thrown with @throw in C++ in the non-unified exception model`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wobjc-property-assign-on-object-type
|
|
-------------------------------------
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'assign' property of object type may become a dangling reference; consider using 'unsafe\_unretained'`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wobjc-property-implementation
|
|
------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`class property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to be defined - use @dynamic or provide a method implementation in this class implementation`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`class property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to be defined - use @dynamic or provide a method implementation in this category`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to be defined - use @synthesize, @dynamic or provide a method implementation in this class implementation`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to be defined - use @dynamic or provide a method implementation in this category`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wobjc-property-implicit-mismatch
|
|
---------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`primary property declaration is implicitly strong while redeclaration in class extension is weak`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wobjc-property-matches-cocoa-ownership-rule
|
|
--------------------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`property follows Cocoa naming convention for returning 'owned' objects`|
|
|
+-------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wobjc-property-no-attribute
|
|
----------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`default property attribute 'assign' not appropriate for object`|
|
|
+-----------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`no 'assign', 'retain', or 'copy' attribute is specified - 'assign' is assumed`|
|
|
+--------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wobjc-property-synthesis
|
|
-------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`auto property synthesis will not synthesize property` |nbsp| :placeholder:`A`:diagtext:`; it will be implemented by its superclass, use @dynamic to acknowledge intention`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`auto property synthesis will not synthesize property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`because it is 'readwrite' but it will be synthesized 'readonly' via another property`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`auto property synthesis will not synthesize property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`because it cannot share an ivar with another synthesized property`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wobjc-protocol-method-implementation
|
|
-------------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`category is implementing a method which will also be implemented by its primary class`|
|
|
+----------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wobjc-protocol-property-synthesis
|
|
----------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`auto property synthesis will not synthesize property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared in protocol` |nbsp| :placeholder:`B`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wobjc-protocol-qualifiers
|
|
--------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`parameterized class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`already conforms to the protocols listed; did you forget a '\*'?`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wobjc-readonly-with-setter-property
|
|
------------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`setter cannot be specified for a readonly property`|
|
|
+-----------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wobjc-redundant-api-use
|
|
------------------------
|
|
Synonym for `-Wobjc-redundant-literal-use`_.
|
|
|
|
|
|
-Wobjc-redundant-literal-use
|
|
----------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`using` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with a literal is redundant`|
|
|
+-------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wobjc-root-class
|
|
-----------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`defined without specifying a base class`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wobjc-signed-char-bool
|
|
-----------------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
Controls `-Wobjc-bool-constant-conversion`_, `-Wobjc-signed-char-bool-implicit-float-conversion`_, `-Wobjc-signed-char-bool-implicit-int-conversion`_, `-Wtautological-objc-bool-compare`_.
|
|
|
|
|
|
-Wobjc-signed-char-bool-implicit-float-conversion
|
|
-------------------------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from floating-point type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to 'BOOL'`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wobjc-signed-char-bool-implicit-int-conversion
|
|
-----------------------------------------------
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from integral type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to 'BOOL'`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-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:`template parameter lists have a different number of parameters (`:placeholder:`A` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`B`:diagtext:`)`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`template parameter has different kinds in different translation units`|
|
|
+------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared with incompatible types in different translation units (`:placeholder:`B` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`C`:diagtext:`)`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`external function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared with incompatible types in different translation units (`:placeholder:`B` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`C`:diagtext:`)`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`instance variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared with incompatible types in different translation units (`:placeholder:`B` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`C`:diagtext:`)`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`non-type template parameter declared with incompatible types in different translation units (`:placeholder:`A` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`B`:diagtext:`)`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------+----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :diagtext:`method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has a different number of parameters in different translation units (`:placeholder:`C` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`D`:diagtext:`)`|
|
|
| ||:diagtext:`class` || |
|
|
| |+--------------------+| |
|
|
| ||:diagtext:`instance`|| |
|
|
| |+--------------------+| |
|
|
+---------------------------+----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------+----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :diagtext:`method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has a parameter with a different types in different translation units (`:placeholder:`C` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`D`:diagtext:`)`|
|
|
| ||:diagtext:`class` || |
|
|
| |+--------------------+| |
|
|
| ||:diagtext:`instance`|| |
|
|
| |+--------------------+| |
|
|
+---------------------------+----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------+----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :diagtext:`method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has incompatible result types in different translation units (`:placeholder:`C` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`D`:diagtext:`)`|
|
|
| ||:diagtext:`class` || |
|
|
| |+--------------------+| |
|
|
| ||:diagtext:`instance`|| |
|
|
| |+--------------------+| |
|
|
+---------------------------+----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------+----------------------+-------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :diagtext:`method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is variadic in one translation unit and not variadic in another`|
|
|
| ||:diagtext:`class` || |
|
|
| |+--------------------+| |
|
|
| ||:diagtext:`instance`|| |
|
|
| |+--------------------+| |
|
|
+---------------------------+----------------------+-------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------------------+-------------------------+-----------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is implemented with` |nbsp| |+-----------------------+| |nbsp| :diagtext:`in one translation but` |nbsp| |+-----------------------+| |nbsp| :diagtext:`in another translation unit`|
|
|
| ||:diagtext:`@synthesize`|| ||:diagtext:`@dynamic` || |
|
|
| |+-----------------------+| |+-----------------------+| |
|
|
| ||:diagtext:`@dynamic` || ||:diagtext:`@synthesize`|| |
|
|
| |+-----------------------+| |+-----------------------+| |
|
|
+----------------------------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------------------+-------------------------+-----------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared with incompatible types in different translation units (`:placeholder:`B` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`C`:diagtext:`)`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has incompatible superclasses`|
|
|
+---------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is synthesized to different ivars in different translation units (`:placeholder:`B` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`C`:diagtext:`)`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------+-------------------+----------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`parameter kind mismatch; parameter is` |nbsp| |+-----------------+| |nbsp| :diagtext:`parameter pack`|
|
|
| ||:diagtext:`not a`|| |
|
|
| |+-----------------+| |
|
|
| ||:diagtext:`a` || |
|
|
| |+-----------------+| |
|
|
+------------------------------------------------------------------------------------+-------------------+----------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has incompatible definitions in different translation units`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`external variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`defined in multiple translation units`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`external variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared with incompatible types in different translation units (`:placeholder:`B` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`C`:diagtext:`)`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-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
|
|
--------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
Controls `-Wopenmp-clauses`_, `-Wopenmp-loop-form`_, `-Wopenmp-mapping`_, `-Wopenmp-target`_, `-Wsource-uses-openmp`_.
|
|
|
|
|
|
-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:`allocator with the 'thread' trait access has unspecified behavior on '`:placeholder:`A`:diagtext:`' directive`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`the context property '`:placeholder:`A`:diagtext:`' is not valid for the context selector '`:placeholder:`B`:diagtext:`' and the context set '`:placeholder:`C`:diagtext:`'; property ignored`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`the context selector '`:placeholder:`A`:diagtext:`' in the context set '`:placeholder:`B`:diagtext:`' cannot have a score ('`:placeholder:`C`:diagtext:`'); score ignored`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`the context selector '`:placeholder:`A`:diagtext:`' is not valid for the context set '`:placeholder:`B`:diagtext:`'; selector ignored`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`the context selector '`:placeholder:`A`:diagtext:`' in context set '`:placeholder:`B`:diagtext:`' requires a context property defined in parentheses; selector ignored`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------+----------------------+------------------------------------------------------------------------------------------------------------------------+----------------------+---------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`the context` |nbsp| |+--------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' was used already in the same 'omp declare variant' directive;` |nbsp| |+--------------------+| |nbsp| :diagtext:`ignored`|
|
|
| ||:diagtext:`set` || ||:diagtext:`set` || |
|
|
| |+--------------------+| |+--------------------+| |
|
|
| ||:diagtext:`selector`|| ||:diagtext:`selector`|| |
|
|
| |+--------------------+| |+--------------------+| |
|
|
| ||:diagtext:`property`|| ||:diagtext:`property`|| |
|
|
| |+--------------------+| |+--------------------+| |
|
|
+----------------------------------------------------------+----------------------+------------------------------------------------------------------------------------------------------------------------+----------------------+---------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is not a valid context property for the context selector '`:placeholder:`B`:diagtext:`' and the context set '`:placeholder:`C`:diagtext:`'; property ignored`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is not a valid context selector for the context set '`:placeholder:`B`:diagtext:`'; selector ignored`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is not a valid context set in a \`declare variant\`; set ignored`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`expected '`:placeholder:`A`:diagtext:`' after the` |nbsp| :placeholder:`B`:diagtext:`; '`:placeholder:`A`:diagtext:`' assumed`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------+----------------------+---------------------+----------------------+---------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`expected identifier or string literal describing a context` |nbsp| |+--------------------+|:diagtext:`;` |nbsp| |+--------------------+| |nbsp| :diagtext:`skipped`|
|
|
| ||:diagtext:`set` || ||:diagtext:`set` || |
|
|
| |+--------------------+| |+--------------------+| |
|
|
| ||:diagtext:`selector`|| ||:diagtext:`selector`|| |
|
|
| |+--------------------+| |+--------------------+| |
|
|
| ||:diagtext:`property`|| ||:diagtext:`property`|| |
|
|
| |+--------------------+| |+--------------------+| |
|
|
+---------------------------------------------------------------------------------------------------------+----------------------+---------------------+----------------------+---------------------------+
|
|
|
|
+---------------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`zero linear step (`:placeholder:`A` |nbsp| |+-------------------------------------------------+|:diagtext:`should probably be const)`|
|
|
| || || |
|
|
| |+-------------------------------------------------+| |
|
|
| ||:diagtext:`and other variables in clause` |nbsp| || |
|
|
| |+-------------------------------------------------+| |
|
|
+---------------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`more than one 'device\_type' clause is specified`|
|
|
+---------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------+----------------------------------------------+-----------------------------------------------------------+----------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`allocate directive specifies` |nbsp| |+--------------------------------------------+| |nbsp| :diagtext:`allocator while previously used` |nbsp| |+--------------------------------------------+|
|
|
| ||:diagtext:`default` || ||:diagtext:`default` ||
|
|
| |+--------------------------------------------+| |+--------------------------------------------+|
|
|
| ||+------------------------------------------+|| ||+------------------------------------------+||
|
|
| |||:diagtext:`'`:placeholder:`B`:diagtext:`'`||| |||:diagtext:`'`:placeholder:`D`:diagtext:`'`|||
|
|
| ||+------------------------------------------+|| ||+------------------------------------------+||
|
|
| |+--------------------------------------------+| |+--------------------------------------------+|
|
|
+---------------------------------------------------------------------------+----------------------------------------------+-----------------------------------------------------------+----------------------------------------------+
|
|
|
|
|
|
-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-mapping
|
|
----------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`Type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not trivially copyable and not guaranteed to be mapped correctly`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wopenmp-target
|
|
---------------
|
|
This diagnostic is enabled by default.
|
|
|
|
Also controls `-Wopenmp-mapping`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`The OpenMP offloading target '`:placeholder:`A`:diagtext:`' is similar to target '`:placeholder:`B`:diagtext:`' already specified - will be ignored.`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`No library '`:placeholder:`A`:diagtext:`' found in the default clang lib directory or in LIBRARY\_PATH. Expect degraded performance due to no inlining of runtime functions on target devices.`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`declaration marked as declare target after first use, it may lead to incorrect results`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`declaration is not declared in any declare target region`|
|
|
+-----------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Woption-ignored
|
|
----------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`option '-ffine-grained-bitfield-accesses' cannot be enabled together with a sanitizer; flag ignored`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`The '`:placeholder:`A`:diagtext:`' architecture does not support -moutline; flag ignored`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`option '`:placeholder:`A`:diagtext:`' was ignored by the PS4 toolchain, using '-fPIC'`|
|
|
+----------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mlong-calls' option as it is not currently supported with` |nbsp| |+-----------------------------------------+|:diagtext:`-mabicalls`|
|
|
| || || |
|
|
| |+-----------------------------------------+| |
|
|
| ||:diagtext:`the implicit usage of` |nbsp| || |
|
|
| |+-----------------------------------------+| |
|
|
+-------------------------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------+-------------------------------+----------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ignoring '`:placeholder:`A`:diagtext:`' option as it cannot be used with` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`-mabicalls and the N64 ABI`|
|
|
| ||:diagtext:`implicit usage of`|| |
|
|
| |+-----------------------------+| |
|
|
| || || |
|
|
| |+-----------------------------+| |
|
|
+-----------------------------------------------------------------------------------------------------------------------+-------------------------------+----------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ignoring '-msmall-data-limit=' with -mcmodel=large for -fpic or RV64`|
|
|
+-----------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`auto-vectorization requires HVX, use -mhvx to enable it`|
|
|
+----------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wordered-compare-function-pointers
|
|
-----------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ordered comparison of function pointers (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wout-of-line-declaration
|
|
-------------------------
|
|
This diagnostic is an error by default, but the flag ``-Wno-out-of-line-declaration`` can be used to disable the error.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------+
|
|
|:error:`error:` |nbsp| :diagtext:`out-of-line declaration of a member must be a definition`|
|
|
+-------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wout-of-scope-function
|
|
-----------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`use of out-of-scope declaration of` |nbsp| :placeholder:`A`|+-------------------------------------------------------------------------------------+|
|
|
| || ||
|
|
| |+-------------------------------------------------------------------------------------+|
|
|
| || |nbsp| :diagtext:`whose type is not compatible with that of an implicit declaration`||
|
|
| |+-------------------------------------------------------------------------------------+|
|
|
+-------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wover-aligned
|
|
--------------
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires` |nbsp| :placeholder:`B` |nbsp| :diagtext:`bytes of alignment and the default allocator only guarantees` |nbsp| :placeholder:`C` |nbsp| :diagtext:`bytes`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Woverflow
|
|
----------
|
|
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
|
|
|
|
-Woverlength-strings
|
|
--------------------
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`string literal of length` |nbsp| :placeholder:`A` |nbsp| :diagtext:`exceeds maximum length` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that` |nbsp| |+-------------------+| |nbsp| :diagtext:`compilers are required to support`|
|
|
| ||:diagtext:`C90` || |
|
|
| |+-------------------+| |
|
|
| ||:diagtext:`ISO C99`|| |
|
|
| |+-------------------+| |
|
|
| ||:diagtext:`C++` || |
|
|
| |+-------------------+| |
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------+
|
|
|
|
|
|
-Woverloaded-shift-op-parentheses
|
|
---------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------+----------------+------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`overloaded operator` |nbsp| |+--------------+| |nbsp| :diagtext:`has higher precedence than comparison operator`|
|
|
| ||:diagtext:`>>`|| |
|
|
| |+--------------+| |
|
|
| ||:diagtext:`<<`|| |
|
|
| |+--------------+| |
|
|
+------------------------------------------------------------------+----------------+------------------------------------------------------------------+
|
|
|
|
|
|
-Woverloaded-virtual
|
|
--------------------
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------+-----------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`hides overloaded virtual` |nbsp| |+---------------------+|
|
|
| ||:diagtext:`function` ||
|
|
| |+---------------------+|
|
|
| ||:diagtext:`functions`||
|
|
| |+---------------------+|
|
|
+-----------------------------------------------------------------------------------------------+-----------------------+
|
|
|
|
|
|
-Woverride-init
|
|
---------------
|
|
Synonym for `-Winitializer-overrides`_.
|
|
|
|
|
|
-Woverride-module
|
|
-----------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`overriding the module target triple with` |nbsp| :placeholder:`A`|
|
|
+-------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Woverriding-method-mismatch
|
|
----------------------------
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on parameter type in declaration of` |nbsp| :placeholder:`A`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in declaration of` |nbsp| :placeholder:`A`|
|
|
+------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on return type in declaration of` |nbsp| :placeholder:`A`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`conflicting return type in declaration of` |nbsp| :placeholder:`A`|
|
|
+--------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`conflicting variadic declaration of method and its implementation`|
|
|
+--------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in declaration of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`conflicting return type in declaration of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Woverriding-t-option
|
|
---------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`overriding '`:placeholder:`A`:diagtext:`' option with '`:placeholder:`B`:diagtext:`'`|
|
|
+---------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wpacked
|
|
--------
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`packed attribute is unnecessary for` |nbsp| :placeholder:`A`|
|
|
+--------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wpadded
|
|
--------
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`padding` |nbsp| |+---------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with` |nbsp| :placeholder:`C` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to align anonymous bit-field`|
|
|
| ||:diagtext:`struct` || ||:diagtext:`byte`||| || |
|
|
| |+---------------------+| |+----------------+|+-------------+| |
|
|
| ||:diagtext:`interface`|| ||:diagtext:`bit` |||:diagtext:`s`|| |
|
|
| |+---------------------+| |+----------------+|+-------------+| |
|
|
| ||:diagtext:`class` || | | | |
|
|
| |+---------------------+| | | | |
|
|
+------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+------------------------------------------------+
|
|
|
|
+------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+----------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`padding` |nbsp| |+---------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with` |nbsp| :placeholder:`C` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to align` |nbsp| :placeholder:`E`|
|
|
| ||:diagtext:`struct` || ||:diagtext:`byte`||| || |
|
|
| |+---------------------+| |+----------------+|+-------------+| |
|
|
| ||:diagtext:`interface`|| ||:diagtext:`bit` |||:diagtext:`s`|| |
|
|
| |+---------------------+| |+----------------+|+-------------+| |
|
|
| ||:diagtext:`class` || | | | |
|
|
| |+---------------------+| | | | |
|
|
+------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+----------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------+------------------+---------------+-----------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`padding size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with` |nbsp| :placeholder:`B` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to alignment boundary`|
|
|
| ||:diagtext:`byte`||| || |
|
|
| |+----------------+|+-------------+| |
|
|
| ||:diagtext:`bit` |||:diagtext:`s`|| |
|
|
| |+----------------+|+-------------+| |
|
|
+--------------------------------------------------------------------------------------------------------------------------------------+------------------+---------------+-----------------------------------------+
|
|
|
|
|
|
-Wparentheses
|
|
-------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
Also controls `-Wbitwise-conditional-parentheses`_, `-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`_, `-Wc++20-designator`_, `-Wc11-extensions`_, `-Wcomplex-component-init`_, `-Wdeclaration-after-statement`_, `-Wdollar-in-identifier-extension`_, `-Wembedded-directive`_, `-Wempty-translation-unit`_, `-Wfixed-enum-extension`_, `-Wflexible-array-extensions`_, `-Wfour-char-constants`_, `-Wgnu-anonymous-struct`_, `-Wgnu-auto-type`_, `-Wgnu-binary-literal`_, `-Wgnu-case-range`_, `-Wgnu-complex-integer`_, `-Wgnu-compound-literal-initializer`_, `-Wgnu-conditional-omitted-operand`_, `-Wgnu-empty-initializer`_, `-Wgnu-empty-struct`_, `-Wgnu-flexible-array-initializer`_, `-Wgnu-flexible-array-union-member`_, `-Wgnu-folding-constant`_, `-Wgnu-imaginary-constant`_, `-Wgnu-include-next`_, `-Wgnu-label-as-value`_, `-Wgnu-redeclared-enum`_, `-Wgnu-statement-expression`_, `-Wgnu-union-cast`_, `-Wgnu-zero-line-directive`_, `-Wgnu-zero-variadic-macro-arguments`_, `-Wimport-preprocessor-directive-pedantic`_, `-Wkeyword-macro`_, `-Wlanguage-extension-token`_, `-Wlong-long`_, `-Wmicrosoft-charize`_, `-Wmicrosoft-comment-paste`_, `-Wmicrosoft-cpp-macro`_, `-Wmicrosoft-end-of-file`_, `-Wmicrosoft-enum-value`_, `-Wmicrosoft-fixed-enum`_, `-Wmicrosoft-flexible-array`_, `-Wmicrosoft-redeclare-static`_, `-Wnested-anon-types`_, `-Wnullability-extension`_, `-Woverlength-strings`_, `-Wretained-language-linkage`_, `-Wundefined-internal-type`_, `-Wvla-extension`_, `-Wzero-length-array`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`duplicate '`:placeholder:`A`:diagtext:`' declaration specifier`|
|
|
+-----------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'enable\_if' is a clang extension`|
|
|
+------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------+
|
|
|: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:`ISO C++ requires the name after '::~' to be found in the same scope as the name before '::~'`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ISO C++ considers this destructor name lookup to be ambiguous`|
|
|
+----------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------+------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`no viable constructor` |nbsp| |+----------------------------------------------------+| |nbsp| :diagtext:`of type` |nbsp| :placeholder:`B`:diagtext:`; C++98 requires a copy constructor when binding a reference to a temporary`|
|
|
| ||:diagtext:`copying variable` || |
|
|
| |+----------------------------------------------------+| |
|
|
| ||:diagtext:`copying parameter` || |
|
|
| |+----------------------------------------------------+| |
|
|
| ||:diagtext:`returning object` || |
|
|
| |+----------------------------------------------------+| |
|
|
| ||:diagtext:`initializing statement expression result`|| |
|
|
| |+----------------------------------------------------+| |
|
|
| ||:diagtext:`throwing object` || |
|
|
| |+----------------------------------------------------+| |
|
|
| ||:diagtext:`copying member subobject` || |
|
|
| |+----------------------------------------------------+| |
|
|
| ||:diagtext:`copying array element` || |
|
|
| |+----------------------------------------------------+| |
|
|
| ||:diagtext:`allocating object` || |
|
|
| |+----------------------------------------------------+| |
|
|
| ||:diagtext:`copying temporary` || |
|
|
| |+----------------------------------------------------+| |
|
|
| ||:diagtext:`initializing base subobject` || |
|
|
| |+----------------------------------------------------+| |
|
|
| ||:diagtext:`initializing vector element` || |
|
|
| |+----------------------------------------------------+| |
|
|
| ||:diagtext:`capturing value` || |
|
|
| |+----------------------------------------------------+| |
|
|
+--------------------------------------------------------------------+------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ISO C++ standards before C++17 do not allow new expression for type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to use list-initialization`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`parameter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`was not declared, defaulting to type 'int'`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`invoking a pointer to a 'const &' member function on an rvalue is a C++20 extension`|
|
|
+--------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`qualifier in explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires a template-id (a typedef is not permitted)`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`|
|
|
| ||:diagtext:`function`|| |
|
|
| |+--------------------+| |
|
|
| ||:diagtext:`variable`|| |
|
|
| |+--------------------+| |
|
|
+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ISO C forbids forward references to 'enum' types`|
|
|
+---------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------+-------------------+-------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ISO C restricts enumerator values to range of 'int' (`:placeholder:`A` |nbsp| :diagtext:`is too` |nbsp| |+-----------------+|:diagtext:`)`|
|
|
| ||:diagtext:`small`|| |
|
|
| |+-----------------+| |
|
|
| ||:diagtext:`large`|| |
|
|
| |+-----------------+| |
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------+-------------------+-------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`size of static array must be an integer constant expression`|
|
|
+--------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`initializer for aggregate is not a compile-time constant`|
|
|
+-----------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`flexible array members are a C99 feature`|
|
|
+-------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------+-----------------------------------------------------+--------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------------------------------------+|:diagtext:`' to a function type`|
|
|
| ||:diagtext:`sizeof` || |
|
|
| |+---------------------------------------------------+| |
|
|
| ||:diagtext:`alignof` || |
|
|
| |+---------------------------------------------------+| |
|
|
| ||:diagtext:`vec\_step` || |
|
|
| |+---------------------------------------------------+| |
|
|
| ||:diagtext:`\_\_builtin\_omp\_required\_simd\_align`|| |
|
|
| |+---------------------------------------------------+| |
|
|
| ||:diagtext:`\_\_alignof` || |
|
|
| |+---------------------------------------------------+| |
|
|
+---------------------------------------------------------------+-----------------------------------------------------+--------------------------------+
|
|
|
|
+---------------------------------------------------------------+-----------------------------------------------------+----------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------------------------------------+|:diagtext:`' to a void type`|
|
|
| ||:diagtext:`sizeof` || |
|
|
| |+---------------------------------------------------+| |
|
|
| ||:diagtext:`alignof` || |
|
|
| |+---------------------------------------------------+| |
|
|
| ||:diagtext:`vec\_step` || |
|
|
| |+---------------------------------------------------+| |
|
|
| ||:diagtext:`\_\_builtin\_omp\_required\_simd\_align`|| |
|
|
| |+---------------------------------------------------+| |
|
|
| ||:diagtext:`\_\_alignof` || |
|
|
| |+---------------------------------------------------+| |
|
|
+---------------------------------------------------------------+-----------------------------------------------------+----------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ISO C90 does not allow subscripting non-lvalue array`|
|
|
+-------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`subscript of a pointer to void is a GNU extension`|
|
|
+----------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ISO C forbids taking the address of an expression of type 'void'`|
|
|
+-------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ordered comparison between pointer and zero (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`) is an extension`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`equality comparison between function pointer and void pointer (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`arithmetic on`|+---------------------+| |nbsp| :diagtext:`pointer`|+-------------+| |nbsp| :diagtext:`to void is a GNU extension`|
|
|
| || |nbsp| :diagtext:`a`|| || || |
|
|
| |+---------------------+| |+-------------+| |
|
|
| || || ||:diagtext:`s`|| |
|
|
| |+---------------------+| |+-------------+| |
|
|
+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+
|
|
|
|
+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`arithmetic on`|+---------------------+| |nbsp| :diagtext:`pointer`|+-------------+| |nbsp| :diagtext:`to`|+-----------------------+| |nbsp| :diagtext:`function type`|+-------------+| |nbsp| :placeholder:`B`|+-------------------------------------------------+| |nbsp| :diagtext:`is a GNU extension`|
|
|
| || |nbsp| :diagtext:`a`|| || || || |nbsp| :diagtext:`the`|| || || || || |
|
|
| |+---------------------+| |+-------------+| |+-----------------------+| |+-------------+| |+-------------------------------------------------+| |
|
|
| || || ||:diagtext:`s`|| || || ||:diagtext:`s`|| ||+-----------------------------------------------+|| |
|
|
| |+---------------------+| |+-------------+| |+-----------------------+| |+-------------+| ||| |nbsp| :diagtext:`and` |nbsp| :placeholder:`D`||| |
|
|
| | | | | | | | | ||+-----------------------------------------------+|| |
|
|
| | | | | | | | | |+-------------------------------------------------+| |
|
|
+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ISO C does not support '++'/'--' on complex integer type` |nbsp| :placeholder:`A`|
|
|
+-----------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ISO C does not support '~' for complex conjugation of` |nbsp| :placeholder:`A`|
|
|
+--------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`complex numbers are an extension in a freestanding C99 implementation`|
|
|
+------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`cast between pointer-to-function and pointer-to-object is an extension`|
|
|
+-------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from array size expression of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| |+-----------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is a C++11 extension`|
|
|
| ||:diagtext:`integral` || |
|
|
| |+-----------------------+| |
|
|
| ||:diagtext:`enumeration`|| |
|
|
| |+-----------------------+| |
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`converts between void pointer and function pointer`|
|
|
| ||:diagtext:`assigning to different types` || |
|
|
| |+--------------------------------------------------------------+| |
|
|
| ||:diagtext:`passing to parameter of different type` || |
|
|
| |+--------------------------------------------------------------+| |
|
|
| ||:diagtext:`returning from function with different return type`|| |
|
|
| |+--------------------------------------------------------------+| |
|
|
| ||:diagtext:`converting between types` || |
|
|
| |+--------------------------------------------------------------+| |
|
|
| ||:diagtext:`initializing with expression of different type` || |
|
|
| |+--------------------------------------------------------------+| |
|
|
| ||:diagtext:`sending to parameter of different type` || |
|
|
| |+--------------------------------------------------------------+| |
|
|
| ||:diagtext:`casting between types` || |
|
|
| |+--------------------------------------------------------------+| |
|
|
+---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`kernel function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a member function; this may not be accepted by nvcc`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`C99 forbids conditional expressions with only one void side`|
|
|
+--------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`C99 forbids casting nonscalar type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to the same type`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++14 extension`|
|
|
+---------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++17 extension`|
|
|
+---------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++20 extension`|
|
|
+---------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------+--------------------+---------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`types declared in an anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`are a Microsoft extension`|
|
|
| ||:diagtext:`struct`|| |
|
|
| |+------------------+| |
|
|
| ||:diagtext:`union` || |
|
|
| |+------------------+| |
|
|
+-----------------------------------------------------------------------------+--------------------+---------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`format specifies type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`but the argument has` |nbsp| |+---------------------------+| |nbsp| :placeholder:`B`|
|
|
| ||:diagtext:`type` || |
|
|
| |+---------------------------+| |
|
|
| ||:diagtext:`underlying type`|| |
|
|
| |+---------------------------+| |
|
|
+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
|
|
|
|
+---------------------------------------------------+----------------------+-----------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`void` |nbsp| |+--------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return void expression`|
|
|
| ||:diagtext:`function`|| |
|
|
| |+--------------------+| |
|
|
| ||:diagtext:`method` || |
|
|
| |+--------------------+| |
|
|
| ||:diagtext:`block` || |
|
|
| |+--------------------+| |
|
|
+---------------------------------------------------+----------------------+-----------------------------------------------------------------------------+
|
|
|
|
+---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+
|
|
|:warning:`warning:` |nbsp| |+--------------------------------+|:diagtext:`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:`'`:placeholder:`A`:diagtext:`' is a C99 extension`|
|
|
+----------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`use of GNU array range extension`|
|
|
+-----------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`exception specification of '...' is a Microsoft extension`|
|
|
+------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------+---------------------------+-----------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`attributes on` |nbsp| |+-------------------------+| |nbsp| :diagtext:`declaration are a C++17 extension`|
|
|
| ||:diagtext:`a namespace` || |
|
|
| |+-------------------------+| |
|
|
| ||:diagtext:`an enumerator`|| |
|
|
| |+-------------------------+| |
|
|
+------------------------------------------------------------+---------------------------+-----------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`extern templates are a C++11 extension`|
|
|
+-----------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`multi-line // comment`|
|
|
+------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`// comments are not allowed in this language`|
|
|
+-----------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`|
|
|
+----------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`use of non-standard escape character '\\`:placeholder:`A`:diagtext:`'`|
|
|
+------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating constants are a C99 feature`|
|
|
+---------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are a C++17 feature`|
|
|
+----------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`#ident is a language extension`|
|
|
+---------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`#warning is a language extension`|
|
|
+-----------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`comma operator in operand of #if`|
|
|
+-----------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`\_\_VA\_ARGS\_\_ can only appear in the expansion of a C99 variadic macro`|
|
|
+----------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`variadic macros are a C99 feature`|
|
|
+------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`named variadic macros are a GNU extension`|
|
|
+--------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`empty macro arguments are a C99 feature`|
|
|
+------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`variadic macros are a Clang extension in OpenCL`|
|
|
+--------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------+
|
|
|: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` || |
|
|
| |+---------------------------------------------------+| |
|
|
| ||:diagtext:`\_\_builtin\_omp\_required\_simd\_align`|| |
|
|
| |+---------------------------------------------------+| |
|
|
| ||:diagtext:`\_\_alignof` || |
|
|
| |+---------------------------------------------------+| |
|
|
+---------------------------------------------------------------+-----------------------------------------------------+--------------------------------+
|
|
|
|
+---------------------------------------------------------------+-----------------------------------------------------+----------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------------------------------------+|:diagtext:`' to a void type`|
|
|
| ||:diagtext:`sizeof` || |
|
|
| |+---------------------------------------------------+| |
|
|
| ||:diagtext:`alignof` || |
|
|
| |+---------------------------------------------------+| |
|
|
| ||:diagtext:`vec\_step` || |
|
|
| |+---------------------------------------------------+| |
|
|
| ||:diagtext:`\_\_builtin\_omp\_required\_simd\_align`|| |
|
|
| |+---------------------------------------------------+| |
|
|
| ||:diagtext:`\_\_alignof` || |
|
|
| |+---------------------------------------------------+| |
|
|
+---------------------------------------------------------------+-----------------------------------------------------+----------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`subtraction of pointers to type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of zero size has undefined behavior`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-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-compare
|
|
-----------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------+------------------------+-------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`comparing a pointer to a null character constant; did you mean to compare to` |nbsp| |+----------------------+|:diagtext:`?`|
|
|
| ||:diagtext:`NULL` || |
|
|
| |+----------------------+| |
|
|
| ||:diagtext:`(void \*)0`|| |
|
|
| |+----------------------+| |
|
|
+---------------------------------------------------------------------------------------------------------------------------+------------------------+-------------+
|
|
|
|
|
|
-Wpointer-integer-compare
|
|
-------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`comparison between pointer and integer (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wpointer-sign
|
|
--------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**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-enum-cast
|
|
----------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
Also controls `-Wvoid-pointer-to-enum-cast`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`cast to smaller integer type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from` |nbsp| :placeholder:`A`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wpointer-to-int-cast
|
|
---------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
Also controls `-Wpointer-to-enum-cast`_, `-Wvoid-pointer-to-int-cast`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`cast to smaller integer type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from` |nbsp| :placeholder:`A`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wpointer-to-int-cast
|
|
---------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
Also controls `-Wpointer-to-enum-cast`_, `-Wvoid-pointer-to-int-cast`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`cast to smaller integer type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from` |nbsp| :placeholder:`A`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wpointer-type-mismatch
|
|
-----------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`pointer type mismatch`|
|
|
+------------------------------------------------------------+
|
|
|
|
|
|
-Wpoison-system-directories
|
|
---------------------------
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`include location '`:placeholder:`A`:diagtext:`' is unsafe for cross-compilation`|
|
|
+----------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wpotentially-evaluated-expression
|
|
----------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`expression with side effects will be evaluated despite being used as an operand to 'typeid'`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wpragma-clang-attribute
|
|
------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`unused attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in '#pragma clang attribute push' region`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wpragma-once-outside-header
|
|
----------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`#pragma once in main file`|
|
|
+----------------------------------------------------------------+
|
|
|
|
|
|
-Wpragma-pack
|
|
-------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
Also controls `-Wpragma-pack-suspicious-include`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`the current #pragma pack alignment value is modified in the included file`|
|
|
+----------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`unterminated '#pragma pack (push, ...)' at end of file`|
|
|
+---------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wpragma-pack-suspicious-include
|
|
--------------------------------
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`non-default #pragma pack value changes the alignment of struct or union members in the included file`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wpragma-system-header-outside-header
|
|
-------------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`#pragma system\_header ignored in main file`|
|
|
+----------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wpragmas
|
|
---------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
Also controls `-Wignored-pragmas`_, `-Wpragma-clang-attribute`_, `-Wpragma-pack`_, `-Wunknown-pragmas`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------+----------------------+------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`#pragma redefine\_extname is applicable to external C declarations only; not applied to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B`|
|
|
| ||:diagtext:`function`|| |
|
|
| |+--------------------+| |
|
|
| ||:diagtext:`variable`|| |
|
|
| |+--------------------+| |
|
|
+--------------------------------------------------------------------------------------------------------------------------------------+----------------------+------------------------+
|
|
|
|
|
|
-Wpredefined-identifier-outside-function
|
|
----------------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`predefined identifier is only valid inside function`|
|
|
+------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wprivate-extern
|
|
----------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`use of \_\_private\_extern\_\_ on a declaration may not produce external symbol private to the linkage unit and is deprecated`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wprivate-header
|
|
----------------
|
|
This diagnostic is an error by default, but the flag ``-Wno-private-header`` can be used to disable the error.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------+
|
|
|:error:`error:` |nbsp| :diagtext:`use of private header from outside its module: '`:placeholder:`A`:diagtext:`'`|
|
|
+----------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wprivate-module
|
|
----------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`expected canonical name for private module '`:placeholder:`A`:diagtext:`'`|
|
|
+----------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`private submodule '`:placeholder:`A`:diagtext:`' in private module map, expected top-level module`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`module '`:placeholder:`A`:diagtext:`' already re-exported as '`:placeholder:`B`:diagtext:`'`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`no submodule named` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in module '`:placeholder:`B`:diagtext:`'; using top level '`:placeholder:`C`:diagtext:`'`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wprofile-instr-missing
|
|
-----------------------
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+------------------+---------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`profile data may be incomplete: of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`function`|+-------------+|:diagtext:`,` |nbsp| :placeholder:`B` |nbsp| |+----------------+| |nbsp| :diagtext:`no data`|
|
|
| || || ||:diagtext:`has` || |
|
|
| |+-------------+| |+----------------+| |
|
|
| ||:diagtext:`s`|| ||:diagtext:`have`|| |
|
|
| |+-------------+| |+----------------+| |
|
|
+-----------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+------------------+---------------------------+
|
|
|
|
|
|
-Wprofile-instr-out-of-date
|
|
---------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+------------------+--------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`profile data may be out of date: of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`function`|+-------------+|:diagtext:`,` |nbsp| :placeholder:`B` |nbsp| |+----------------+| |nbsp| :diagtext:`mismatched data that will be ignored`|
|
|
| || || ||:diagtext:`has` || |
|
|
| |+-------------+| |+----------------+| |
|
|
| ||:diagtext:`s`|| ||:diagtext:`have`|| |
|
|
| |+-------------+| |+----------------+| |
|
|
+------------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+------------------+--------------------------------------------------------+
|
|
|
|
|
|
-Wprofile-instr-unprofiled
|
|
--------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`no profile data available for file "`:placeholder:`A`:diagtext:`"`|
|
|
+--------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wproperty-access-dot-syntax
|
|
----------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found on object of type` |nbsp| :placeholder:`B`:diagtext:`; did you mean to access property` |nbsp| :placeholder:`C`:diagtext:`?`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wproperty-attribute-mismatch
|
|
-----------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`property attribute in class extension does not match the primary class`|
|
|
+-------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' attribute on property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not match the property inherited from` |nbsp| :placeholder:`C`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`getter name mismatch between property redeclaration (`:placeholder:`B`:diagtext:`) and its original declaration (`:placeholder:`A`:diagtext:`)`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`attribute 'readonly' of property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`restricts attribute 'readwrite' of property inherited from` |nbsp| :placeholder:`B`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wprotocol
|
|
----------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in protocol` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not implemented`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wprotocol-property-synthesis-ambiguity
|
|
---------------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------+----------------------------------------------------------------+----------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`was selected for synthesis`|
|
|
| ||+-------------------------------------------+ || |
|
|
| |||:diagtext:`of type` |nbsp| :placeholder:`B`| || |
|
|
| ||+-------------------------------------------+ || |
|
|
| |+--------------------------------------------------------------+| |
|
|
| ||+---------------------------------------------------------+ || |
|
|
| |||:diagtext:`with attribute '`:placeholder:`B`:diagtext:`'`| || |
|
|
| ||+---------------------------------------------------------+ || |
|
|
| |+--------------------------------------------------------------+| |
|
|
| ||+------------------------------------------------------------+|| |
|
|
| |||:diagtext:`without attribute '`:placeholder:`B`:diagtext:`'`||| |
|
|
| ||+------------------------------------------------------------+|| |
|
|
| |+--------------------------------------------------------------+| |
|
|
| ||+-----------------------------------------------+ || |
|
|
| |||:diagtext:`with getter` |nbsp| :placeholder:`B`| || |
|
|
| ||+-----------------------------------------------+ || |
|
|
| |+--------------------------------------------------------------+| |
|
|
| ||+-----------------------------------------------+ || |
|
|
| |||:diagtext:`with setter` |nbsp| :placeholder:`B`| || |
|
|
| ||+-----------------------------------------------+ || |
|
|
| |+--------------------------------------------------------------+| |
|
|
+-------------------------------------------------------+----------------------------------------------------------------+----------------------------------------------+
|
|
|
|
|
|
-Wqualified-void-return-type
|
|
----------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`function cannot return qualified void type` |nbsp| :placeholder:`A`|
|
|
+---------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wquoted-include-in-framework-header
|
|
------------------------------------
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`double-quoted include "`:placeholder:`A`:diagtext:`" in framework header, expected angle-bracketed instead`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wrange-loop-analysis
|
|
---------------------
|
|
Controls `-Wrange-loop-bind-reference`_, `-Wrange-loop-construct`_.
|
|
|
|
|
|
-Wrange-loop-bind-reference
|
|
---------------------------
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`loop variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`binds to a temporary value produced by a range of type` |nbsp| :placeholder:`B`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wrange-loop-construct
|
|
----------------------
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`loop variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`binds to a temporary constructed from a different type`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`loop variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`creates a copy from type` |nbsp| :placeholder:`B`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wreadonly-iboutlet-property
|
|
----------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`readonly IBOutlet property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when auto-synthesized may not work correctly with 'nib' loader`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wreceiver-expr
|
|
---------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`receiver type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not 'id' or interface pointer, consider casting it to 'id'`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wreceiver-forward-class
|
|
------------------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`receiver` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a forward class and corresponding @interface may not exist`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`receiver type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for instance message is a forward declaration`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wredeclared-class-member
|
|
-------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`class member cannot be redeclared`|
|
|
+------------------------------------------------------------------------+
|
|
|
|
|
|
-Wredundant-decls
|
|
-----------------
|
|
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
|
|
|
|
-Wredundant-move
|
|
----------------
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`redundant move in return statement`|
|
|
+-------------------------------------------------------------------------+
|
|
|
|
|
|
-Wredundant-parens
|
|
------------------
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`redundant parentheses surrounding declarator`|
|
|
+-----------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wregister
|
|
----------
|
|
This diagnostic is enabled by default.
|
|
|
|
Also controls `-Wdeprecated-register`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------+
|
|
|:error:`error:` |nbsp| :diagtext:`ISO C++17 does not allow 'register' storage class specifier`|
|
|
+----------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wreinterpret-base-class
|
|
------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------+------------------+---------------------------------------------------------+------------------+-------------------------------+-------------------------------------+-----------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'reinterpret\_cast'` |nbsp| |+----------------+| |nbsp| :diagtext:`class` |nbsp| :placeholder:`A` |nbsp| |+----------------+| |nbsp| :diagtext:`its` |nbsp| |+-----------------------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`behaves differently from 'static\_cast'`|
|
|
| ||:diagtext:`from`|| ||:diagtext:`to` || ||:diagtext:`virtual base` || |
|
|
| |+----------------+| |+----------------+| |+-----------------------------------+| |
|
|
| ||:diagtext:`to` || ||:diagtext:`from`|| ||:diagtext:`base at non-zero offset`|| |
|
|
| |+----------------+| |+----------------+| |+-----------------------------------+| |
|
|
+------------------------------------------------------------------+------------------+---------------------------------------------------------+------------------+-------------------------------+-------------------------------------+-----------------------------------------------------------------------------------+
|
|
|
|
|
|
-Rremark-backend-plugin
|
|
-----------------------
|
|
**Diagnostic text:**
|
|
|
|
The text of this diagnostic is not controlled by Clang.
|
|
|
|
|
|
-Wreorder
|
|
---------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
Controls `-Wreorder-ctor`_, `-Wreorder-init-list`_.
|
|
|
|
|
|
-Wreorder-ctor
|
|
--------------
|
|
**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` || |
|
|
| |+----------------------+| |+-----------------+| |
|
|
+---------------------------+------------------------+-----------------------------------------------------------------------------+-------------------+------------------------+
|
|
|
|
|
|
-Wreorder-init-list
|
|
-------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ISO C++ requires field designators to be specified in declaration order; field` |nbsp| :placeholder:`B` |nbsp| :diagtext:`will be initialized after field` |nbsp| :placeholder:`A`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wrequires-expression
|
|
---------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`this requires expression will only be checked for syntactic validity; did you intend to place it in a nested requirement? (add another 'requires' before the expression)`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wrequires-super-attribute
|
|
--------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------+----------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute cannot be applied to` |nbsp| |+--------------------------------+|
|
|
| ||:diagtext:`methods in protocols`||
|
|
| |+--------------------------------+|
|
|
| ||:diagtext:`dealloc` ||
|
|
| |+--------------------------------+|
|
|
+-----------------------------------------------------------------------------------------------------+----------------------------------+
|
|
|
|
|
|
-Wreserved-id-macro
|
|
-------------------
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`macro name is a reserved identifier`|
|
|
+--------------------------------------------------------------------------+
|
|
|
|
|
|
-Wreserved-user-defined-literal
|
|
-------------------------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
Also controls `-Wc++11-compat-reserved-user-defined-literal`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`invalid suffix on literal; C++11 requires a space between literal and identifier`|
|
|
+-----------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------+
|
|
|:error:`error:` |nbsp| :diagtext:`invalid suffix on literal; C++11 requires a space between literal and identifier`|
|
|
+-------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wretained-language-linkage
|
|
---------------------------
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`friend function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`retaining previous language linkage is an extension`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wreturn-stack-address
|
|
----------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`returning address of label, which is local`|
|
|
+---------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------+--------------------------+------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`returning` |nbsp| |+------------------------+| |nbsp| :diagtext:`local temporary object`|
|
|
| ||:diagtext:`address of` || |
|
|
| |+------------------------+| |
|
|
| ||:diagtext:`reference to`|| |
|
|
| |+------------------------+| |
|
|
+--------------------------------------------------------+--------------------------+------------------------------------------+
|
|
|
|
+---------------------------+--------------------------+--------------------------------------------------------+----------------------------+----------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+------------------------+| |nbsp| :diagtext:`stack memory associated with` |nbsp| |+--------------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`returned`|
|
|
| ||:diagtext:`address of` || ||:diagtext:`local variable`|| |
|
|
| |+------------------------+| |+--------------------------+| |
|
|
| ||:diagtext:`reference to`|| ||:diagtext:`parameter` || |
|
|
| |+------------------------+| |+--------------------------+| |
|
|
+---------------------------+--------------------------+--------------------------------------------------------+----------------------------+----------------------------------------------------+
|
|
|
|
|
|
-Wreturn-std-move
|
|
-----------------
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------+----------------------+---------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`local variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will be copied despite being` |nbsp| |+--------------------+| |nbsp| :diagtext:`by name`|
|
|
| ||:diagtext:`returned`|| |
|
|
| |+--------------------+| |
|
|
| ||:diagtext:`thrown` || |
|
|
| |+--------------------+| |
|
|
+-------------------------------------------------------------------------------------------------------------------------------------+----------------------+---------------------------+
|
|
|
|
|
|
-Wreturn-std-move-in-c++11
|
|
--------------------------
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`prior to the resolution of a defect report against ISO C++11, local variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`would have been copied despite being returned by name, due to its not matching the function return type`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wreturn-type
|
|
-------------
|
|
This diagnostic is enabled by default.
|
|
|
|
Also controls `-Wreturn-type-c-linkage`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------+---------------------------+---------------------------------------------------------------------+
|
|
|:error:`error:` |nbsp| |+-------------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return a value`|
|
|
| ||:diagtext:`void function`|| |
|
|
| |+-------------------------+| |
|
|
| ||:diagtext:`void method` || |
|
|
| |+-------------------------+| |
|
|
| ||:diagtext:`constructor` || |
|
|
| |+-------------------------+| |
|
|
| ||:diagtext:`destructor` || |
|
|
| |+-------------------------+| |
|
|
+-----------------------+---------------------------+---------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------+----------------------+-----------------------------------------------------------------+
|
|
|:error:`error:` |nbsp| :diagtext:`non-void` |nbsp| |+--------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should return a value`|
|
|
| ||:diagtext:`function`|| |
|
|
| |+--------------------+| |
|
|
| ||:diagtext:`method` || |
|
|
| |+--------------------+| |
|
|
+---------------------------------------------------+----------------------+-----------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`non-void coroutine does not return a value`|
|
|
+---------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`non-void function does not return a value`|
|
|
+--------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`non-void lambda does not return a value`|
|
|
+------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`non-void coroutine does not return a value in all control paths`|
|
|
+------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`non-void function does not return a value in all control paths`|
|
|
+-----------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`non-void lambda does not return a value in all control paths`|
|
|
+---------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------+----------------------+-----------------------------------------------------------------+
|
|
|: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`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wrewrite-not-bool
|
|
------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ISO C++20 requires return type of selected 'operator==' function for rewritten '`:placeholder:`B`:diagtext:`' comparison to be 'bool', not` |nbsp| :placeholder:`A`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Rsanitize-address
|
|
------------------
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------+
|
|
|:remark:`remark:` |nbsp| :diagtext:`-fsanitize-address-field-padding applied to` |nbsp| :placeholder:`A`|
|
|
+--------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------+
|
|
|:remark:`remark:` |nbsp| :diagtext:`-fsanitize-address-field-padding ignored for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`because it` |nbsp| |+------------------------------------+|
|
|
| ||:diagtext:`is not C++` ||
|
|
| |+------------------------------------+|
|
|
| ||:diagtext:`is packed` ||
|
|
| |+------------------------------------+|
|
|
| ||:diagtext:`is a union` ||
|
|
| |+------------------------------------+|
|
|
| ||:diagtext:`is trivially copyable` ||
|
|
| |+------------------------------------+|
|
|
| ||:diagtext:`has trivial destructor` ||
|
|
| |+------------------------------------+|
|
|
| ||:diagtext:`is standard layout` ||
|
|
| |+------------------------------------+|
|
|
| ||:diagtext:`is in a blacklisted file`||
|
|
| |+------------------------------------+|
|
|
| ||:diagtext:`is blacklisted` ||
|
|
| |+------------------------------------+|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------+
|
|
|
|
|
|
-Wsection
|
|
---------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`section attribute is specified on redeclared variable`|
|
|
+--------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`duplicate code segment specifiers`|
|
|
+------------------------------------------------------------------------+
|
|
|
|
+---------------------------+---------------------+-------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`does not match previous declaration`|
|
|
| ||:diagtext:`codeseg`|| |
|
|
| |+-------------------+| |
|
|
| ||:diagtext:`section`|| |
|
|
| |+-------------------+| |
|
|
+---------------------------+---------------------+-------------------------------------------------------+
|
|
|
|
|
|
-Wselector
|
|
----------
|
|
Also controls `-Wselector-type-mismatch`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`no method with selector` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is implemented in this translation unit`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wselector-type-mismatch
|
|
------------------------
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`several methods with selector` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of mismatched types are found for the @selector expression`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wself-assign
|
|
-------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
Also controls `-Wself-assign-field`_, `-Wself-assign-overloaded`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`explicitly assigning value of variable of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to itself`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wself-assign-field
|
|
-------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------+-------------------------------+-----------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`assigning` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`to itself`|
|
|
| ||:diagtext:`field` || |
|
|
| |+-----------------------------+| |
|
|
| ||:diagtext:`instance variable`|| |
|
|
| |+-----------------------------+| |
|
|
+--------------------------------------------------------+-------------------------------+-----------------------------+
|
|
|
|
|
|
-Wself-assign-overloaded
|
|
------------------------
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`explicitly assigning value of variable of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to itself`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wself-move
|
|
-----------
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`explicitly moving variable of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to itself`|
|
|
+------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wsemicolon-before-method-body
|
|
------------------------------
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`semicolon before method body is ignored`|
|
|
+------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wsentinel
|
|
----------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------+-----------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`missing sentinel in` |nbsp| |+---------------------------+|
|
|
| ||:diagtext:`function call` ||
|
|
| |+---------------------------+|
|
|
| ||:diagtext:`method dispatch`||
|
|
| |+---------------------------+|
|
|
| ||:diagtext:`block call` ||
|
|
| |+---------------------------+|
|
|
+------------------------------------------------------------------+-----------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`not enough variable arguments in` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declaration to fit a sentinel`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wsequence-point
|
|
----------------
|
|
Synonym for `-Wunsequenced`_.
|
|
|
|
|
|
-Wserialized-diagnostics
|
|
------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`unable to open file` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for serializing diagnostics (`:placeholder:`B`:diagtext:`)`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`unable to merge a subprocess's serialized diagnostics`|
|
|
+--------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wshadow
|
|
--------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
Also controls `-Wshadow-field-in-constructor-modified`_, `-Wshadow-ivar`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------+-------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`declaration shadows a` |nbsp| |+-----------------------------------------------------------+|
|
|
| ||:diagtext:`local variable` ||
|
|
| |+-----------------------------------------------------------+|
|
|
| ||+-----------------------------------------------+ ||
|
|
| |||:diagtext:`variable in` |nbsp| :placeholder:`C`| ||
|
|
| ||+-----------------------------------------------+ ||
|
|
| |+-----------------------------------------------------------+|
|
|
| ||+---------------------------------------------------------+||
|
|
| |||:diagtext:`static data member of` |nbsp| :placeholder:`C`|||
|
|
| ||+---------------------------------------------------------+||
|
|
| |+-----------------------------------------------------------+|
|
|
| ||+--------------------------------------------+ ||
|
|
| |||:diagtext:`field of` |nbsp| :placeholder:`C`| ||
|
|
| ||+--------------------------------------------+ ||
|
|
| |+-----------------------------------------------------------+|
|
|
| ||+----------------------------------------------+ ||
|
|
| |||:diagtext:`typedef in` |nbsp| :placeholder:`C`| ||
|
|
| ||+----------------------------------------------+ ||
|
|
| |+-----------------------------------------------------------+|
|
|
| ||+-------------------------------------------------+ ||
|
|
| |||:diagtext:`type alias in` |nbsp| :placeholder:`C`| ||
|
|
| ||+-------------------------------------------------+ ||
|
|
| |+-----------------------------------------------------------+|
|
|
+--------------------------------------------------------------------+-------------------------------------------------------------+
|
|
|
|
|
|
-Wshadow-all
|
|
------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
Controls `-Wshadow`_, `-Wshadow-field`_, `-Wshadow-field-in-constructor`_, `-Wshadow-uncaptured-local`_.
|
|
|
|
|
|
-Wshadow-field
|
|
--------------
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------+------------------------------------+--------------------------------+--------------------------------------------------+----------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+----------------------------------+| |nbsp| :placeholder:`A` |nbsp| |+------------------------------------------------+|:diagtext:`shadows member inherited from type` |nbsp| :placeholder:`C`|
|
|
| ||:diagtext:`parameter` || || || |
|
|
| |+----------------------------------+| |+------------------------------------------------+| |
|
|
| ||:diagtext:`non-static data member`|| ||+----------------------------------------------+|| |
|
|
| |+----------------------------------+| |||:diagtext:`of` |nbsp| :placeholder:`B` |nbsp| ||| |
|
|
| | | ||+----------------------------------------------+|| |
|
|
| | | |+------------------------------------------------+| |
|
|
+---------------------------+------------------------------------+--------------------------------+--------------------------------------------------+----------------------------------------------------------------------+
|
|
|
|
|
|
-Wshadow-field-in-constructor
|
|
-----------------------------
|
|
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`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`the resulting value is always non-negative after implicit conversion`|
|
|
+-----------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-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`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wsigned-unsigned-wchar
|
|
-----------------------
|
|
This diagnostic is an error by default, but the flag ``-Wno-signed-unsigned-wchar`` can be used to disable the error.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------+
|
|
|:error:`error:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' cannot be signed or unsigned`|
|
|
+----------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-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-array-div
|
|
------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`expression does not compute the number of elements in this array; element type is` |nbsp| :placeholder:`A`:diagtext:`, not` |nbsp| :placeholder:`B`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wsizeof-pointer-div
|
|
--------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' will return the size of the pointer, not the array itself`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wsizeof-pointer-memaccess
|
|
--------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**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:`nesting \`omp begin/end declare variant\` is not supported yet; nested context ignored`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'#pragma omp declare variant' cannot be applied to the function that was defined already; the original function might be used`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'#pragma omp declare variant' cannot be applied for function after first usage; the original function might be used`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`variant function in '#pragma omp declare variant' is itself marked as '#pragma omp declare variant'`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`score expressions in the OpenMP context selector need to be constant;` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not and will be ignored`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------+
|
|
|: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-exhausted
|
|
-----------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`stack nearly exhausted; compilation time may suffer, and crashes due to stack overflow are likely`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wstack-protector
|
|
-----------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`Unable to protect inline asm that clobbers stack pointer against stack clash`|
|
|
+-------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wstack-protector
|
|
-----------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`Unable to protect inline asm that clobbers stack pointer against stack clash`|
|
|
+-------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wstatic-float-init
|
|
-------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
Also controls `-Wgnu-static-float-init`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:error:`error:` |nbsp| :diagtext:`in-class initializer for static data member of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires 'constexpr' specifier`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wstatic-in-inline
|
|
------------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`|
|
|
| ||:diagtext:`function`|| |
|
|
| |+--------------------+| |
|
|
| ||:diagtext:`variable`|| |
|
|
| |+--------------------+| |
|
|
+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`|
|
|
| ||:diagtext:`function`|| |
|
|
| |+--------------------+| |
|
|
| ||:diagtext:`variable`|| |
|
|
| |+--------------------+| |
|
|
+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wstatic-inline-explicit-instantiation
|
|
--------------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------+--------------------+--------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ignoring '`|+------------------+|:diagtext:`' keyword on explicit template instantiation`|
|
|
| ||:diagtext:`static`|| |
|
|
| |+------------------+| |
|
|
| ||:diagtext:`inline`|| |
|
|
| |+------------------+| |
|
|
+-------------------------------------------------+--------------------+--------------------------------------------------------+
|
|
|
|
|
|
-Wstatic-local-in-inline
|
|
------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`non-constant static local variable in inline function may be different in different files`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wstatic-self-init
|
|
------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`static variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is suspiciously used within its own initialization`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wstdlibcxx-not-found
|
|
---------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`include path for libstdc++ headers not found; pass '-stdlib=libc++' on the command line to use the libc++ standard library instead`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wstrict-aliasing
|
|
-----------------
|
|
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
|
|
|
|
-Wstrict-aliasing=0
|
|
-------------------
|
|
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
|
|
|
|
-Wstrict-aliasing=1
|
|
-------------------
|
|
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
|
|
|
|
-Wstrict-aliasing=2
|
|
-------------------
|
|
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
|
|
|
|
-Wstrict-overflow
|
|
-----------------
|
|
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
|
|
|
|
-Wstrict-overflow=0
|
|
-------------------
|
|
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
|
|
|
|
-Wstrict-overflow=1
|
|
-------------------
|
|
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
|
|
|
|
-Wstrict-overflow=2
|
|
-------------------
|
|
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
|
|
|
|
-Wstrict-overflow=3
|
|
-------------------
|
|
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
|
|
|
|
-Wstrict-overflow=4
|
|
-------------------
|
|
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
|
|
|
|
-Wstrict-overflow=5
|
|
-------------------
|
|
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
|
|
|
|
-Wstrict-prototypes
|
|
-------------------
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------+--------------------------------------------------------------+-------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`this` |nbsp| |+------------------------------------------------------------+| |nbsp| :diagtext:`a prototype`|
|
|
| ||:diagtext:`function declaration is not` || |
|
|
| |+------------------------------------------------------------+| |
|
|
| ||:diagtext:`block declaration is not` || |
|
|
| |+------------------------------------------------------------+| |
|
|
| ||:diagtext:`old-style function definition is not preceded by`|| |
|
|
| |+------------------------------------------------------------+| |
|
|
+---------------------------------------------------+--------------------------------------------------------------+-------------------------------+
|
|
|
|
|
|
-Wstrict-prototypes
|
|
-------------------
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------+--------------------------------------------------------------+-------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`this` |nbsp| |+------------------------------------------------------------+| |nbsp| :diagtext:`a prototype`|
|
|
| ||:diagtext:`function declaration is not` || |
|
|
| |+------------------------------------------------------------+| |
|
|
| ||:diagtext:`block declaration is not` || |
|
|
| |+------------------------------------------------------------+| |
|
|
| ||:diagtext:`old-style function definition is not preceded by`|| |
|
|
| |+------------------------------------------------------------+| |
|
|
+---------------------------------------------------+--------------------------------------------------------------+-------------------------------+
|
|
|
|
|
|
-Wstrict-selector-match
|
|
-----------------------
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`multiple methods named` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found`|
|
|
+--------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wstring-compare
|
|
----------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------+------------------------------+---------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`result of comparison against` |nbsp| |+----------------------------+| |nbsp| :diagtext:`is unspecified (use an explicit string comparison function instead)`|
|
|
| ||:diagtext:`a string literal`|| |
|
|
| |+----------------------------+| |
|
|
| ||:diagtext:`@encode` || |
|
|
| |+----------------------------+| |
|
|
+---------------------------------------------------------------------------+------------------------------+---------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wstring-conversion
|
|
-------------------
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns string literal into bool:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wstring-plus-char
|
|
------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`adding` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to a string pointer does not append to the string`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wstring-plus-int
|
|
-----------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`adding` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to a string does not append to the string`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wstrlcpy-strlcat-size
|
|
----------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`size argument in` |nbsp| :placeholder:`A` |nbsp| :diagtext:`call appears to be size of the source; expected the size of the destination`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wstrncat-size
|
|
--------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`the value of the size argument in 'strncat' is too large, might lead to a buffer overflow`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`size argument in 'strncat' call appears to be size of the source`|
|
|
+-------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`the value of the size argument to 'strncat' is wrong`|
|
|
+-------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wsuper-class-method-mismatch
|
|
-----------------------------
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`method parameter type` |nbsp| :diagtext:`does not match super class method parameter type`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wsuspicious-bzero
|
|
------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'size' argument to bzero is '0'`|
|
|
+----------------------------------------------------------------------+
|
|
|
|
|
|
-Wsuspicious-memaccess
|
|
----------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
Controls `-Wdynamic-class-memaccess`_, `-Wmemset-transposed-args`_, `-Wnontrivial-memaccess`_, `-Wsizeof-pointer-memaccess`_, `-Wsuspicious-bzero`_.
|
|
|
|
|
|
-Wswitch
|
|
--------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`overflow converting case value to switch condition type (`:placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`:diagtext:`)`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
|
|
| ||+----------------------------------------------------------------------------------------------+ ||
|
|
| |||:diagtext:`enumeration value` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not handled in switch`| ||
|
|
| ||+----------------------------------------------------------------------------------------------+ ||
|
|
| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
|
|
| ||+----------------------------------------------------------------------------------------------------------------------------------------------+ ||
|
|
| |||:diagtext:`enumeration values` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C` |nbsp| :diagtext:`not handled in switch`| ||
|
|
| ||+----------------------------------------------------------------------------------------------------------------------------------------------+ ||
|
|
| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
|
|
| ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
|
|
| |||:diagtext:`enumeration values` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D` |nbsp| :diagtext:`not handled in switch`| ||
|
|
| ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
|
|
| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
|
|
| ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
|
|
| |||:placeholder:`A` |nbsp| :diagtext:`enumeration values not handled in switch:` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`...`|||
|
|
| ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
|
|
| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
|
|
+---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`case value not in enumerated type` |nbsp| :placeholder:`A`|
|
|
+------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wswitch-bool
|
|
-------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`switch condition has boolean value`|
|
|
+-------------------------------------------------------------------------+
|
|
|
|
|
|
-Wswitch-default
|
|
----------------
|
|
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
|
|
|
|
-Wswitch-enum
|
|
-------------
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
|
|
| ||+---------------------------------------------------------------------------------------------------------+ ||
|
|
| |||:diagtext:`enumeration value` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not explicitly handled in switch`| ||
|
|
| ||+---------------------------------------------------------------------------------------------------------+ ||
|
|
| |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
|
|
| ||+---------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
|
|
| |||:diagtext:`enumeration values` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C` |nbsp| :diagtext:`not explicitly handled in switch`| ||
|
|
| ||+---------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
|
|
| |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
|
|
| ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
|
|
| |||:diagtext:`enumeration values` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D` |nbsp| :diagtext:`not explicitly handled in switch`| ||
|
|
| ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
|
|
| |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
|
|
| ||+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
|
|
| |||:placeholder:`A` |nbsp| :diagtext:`enumeration values not explicitly handled in switch:` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`...`|||
|
|
| ||+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
|
|
| |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
|
|
+---------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wsync-fetch-and-nand-semantics-changed
|
|
---------------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`the semantics of this intrinsic changed with GCC version 4.4 - the newer semantics are provided here`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wsynth
|
|
-------
|
|
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
|
|
|
|
-Wtautological-bitwise-compare
|
|
------------------------------
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------+-------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`bitwise comparison always evaluates to` |nbsp| |+-----------------+|
|
|
| ||:diagtext:`false`||
|
|
| |+-----------------+|
|
|
| ||:diagtext:`true` ||
|
|
| |+-----------------+|
|
|
+-------------------------------------------------------------------------------------+-------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`bitwise or with non-zero value always evaluates to true`|
|
|
+----------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wtautological-compare
|
|
----------------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
Also controls `-Wtautological-bitwise-compare`_, `-Wtautological-constant-compare`_, `-Wtautological-objc-bool-compare`_, `-Wtautological-overlap-compare`_, `-Wtautological-pointer-compare`_, `-Wtautological-undefined-compare`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------+---------------------------------------------------------------+----------------------------------------+-------------------------+
|
|
|:warning:`warning:` |nbsp| |+-------------------------------------------------------------+| |nbsp| :diagtext:`to 1 byte is` |nbsp| |+-----------------------+|
|
|
| ||:diagtext:`aligning a value` || ||:diagtext:`a no-op` ||
|
|
| |+-------------------------------------------------------------+| |+-----------------------+|
|
|
| ||:diagtext:`the result of checking whether a value is aligned`|| ||:diagtext:`always true`||
|
|
| |+-------------------------------------------------------------+| |+-----------------------+|
|
|
+---------------------------+---------------------------------------------------------------+----------------------------------------+-------------------------+
|
|
|
|
+---------------------------+---------------------------+--------------------------------------------------+--------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+-------------------------+|:diagtext:`comparison always evaluates to` |nbsp| |+------------------------------------------+|
|
|
| ||:diagtext:`self-` || ||:diagtext:`a constant` ||
|
|
| |+-------------------------+| |+------------------------------------------+|
|
|
| ||:diagtext:`array` |nbsp| || ||:diagtext:`true` ||
|
|
| |+-------------------------+| |+------------------------------------------+|
|
|
| | | ||:diagtext:`false` ||
|
|
| | | |+------------------------------------------+|
|
|
| | | ||:diagtext:`'std::strong\_ordering::equal'`||
|
|
| | | |+------------------------------------------+|
|
|
+---------------------------+---------------------------+--------------------------------------------------+--------------------------------------------+
|
|
|
|
|
|
-Wtautological-constant-compare
|
|
-------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
Also controls `-Wtautological-constant-out-of-range-compare`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`converting the result of '?:' with integer constants to a boolean always evaluates to 'true'`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------+-------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`converting the result of '<<' to a boolean always evaluates to` |nbsp| |+-----------------+|
|
|
| ||:diagtext:`false`||
|
|
| |+-----------------+|
|
|
| ||:diagtext:`true` ||
|
|
| |+-----------------+|
|
|
+-------------------------------------------------------------------------------------------------------------+-------------------+
|
|
|
|
+----------------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-----------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`result of comparison of` |nbsp| |+----------------------------------------------+| |nbsp| :diagtext:`with` |nbsp| |+--------------------------------------------------------+| |nbsp| :diagtext:`is always` |nbsp| :placeholder:`E`|
|
|
| ||+--------------------------------------------+|| ||+------------------------------------------------------+|| |
|
|
| |||:diagtext:`constant` |nbsp| :placeholder:`A`||| |||:diagtext:`expression of type` |nbsp| :placeholder:`C`||| |
|
|
| ||+--------------------------------------------+|| ||+------------------------------------------------------+|| |
|
|
| |+----------------------------------------------+| |+--------------------------------------------------------+| |
|
|
| ||:diagtext:`true` || ||:diagtext:`boolean expression` || |
|
|
| |+----------------------------------------------+| |+--------------------------------------------------------+| |
|
|
| ||:diagtext:`false` || | | |
|
|
| |+----------------------------------------------+| | | |
|
|
+----------------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-----------------------------------------------------+
|
|
|
|
|
|
-Wtautological-constant-in-range-compare
|
|
----------------------------------------
|
|
Controls `-Wtautological-type-limit-compare`_, `-Wtautological-unsigned-enum-zero-compare`_, `-Wtautological-unsigned-zero-compare`_.
|
|
|
|
|
|
-Wtautological-constant-out-of-range-compare
|
|
--------------------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-----------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`result of comparison of` |nbsp| |+----------------------------------------------+| |nbsp| :diagtext:`with` |nbsp| |+--------------------------------------------------------+| |nbsp| :diagtext:`is always` |nbsp| :placeholder:`E`|
|
|
| ||+--------------------------------------------+|| ||+------------------------------------------------------+|| |
|
|
| |||:diagtext:`constant` |nbsp| :placeholder:`A`||| |||:diagtext:`expression of type` |nbsp| :placeholder:`C`||| |
|
|
| ||+--------------------------------------------+|| ||+------------------------------------------------------+|| |
|
|
| |+----------------------------------------------+| |+--------------------------------------------------------+| |
|
|
| ||:diagtext:`true` || ||:diagtext:`boolean expression` || |
|
|
| |+----------------------------------------------+| |+--------------------------------------------------------+| |
|
|
| ||:diagtext:`false` || | | |
|
|
| |+----------------------------------------------+| | | |
|
|
+----------------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-----------------------------------------------------+
|
|
|
|
|
|
-Wtautological-objc-bool-compare
|
|
--------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`result of comparison of constant` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with expression of type 'BOOL' is always` |nbsp| :placeholder:`B`:diagtext:`, as the only well defined values for 'BOOL' are YES and NO`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wtautological-overlap-compare
|
|
------------------------------
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------+-------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`overlapping comparisons always evaluate to` |nbsp| |+-----------------+|
|
|
| ||:diagtext:`false`||
|
|
| |+-----------------+|
|
|
| ||:diagtext:`true` ||
|
|
| |+-----------------+|
|
|
+-----------------------------------------------------------------------------------------+-------------------+
|
|
|
|
|
|
-Wtautological-pointer-compare
|
|
------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------+---------------------------+----------------------------------------------------------+-------------------------+----------------------------------------+-------------------+--------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`comparison of nonnull` |nbsp| |+-------------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`'` |nbsp| |+-----------------------+|:diagtext:`equal to a null pointer is '`|+-----------------+|:diagtext:`' on first encounter`|
|
|
| ||:diagtext:`function call`|| ||:diagtext:`not` |nbsp| || ||:diagtext:`true` || |
|
|
| |+-------------------------+| |+-----------------------+| |+-----------------+| |
|
|
| ||:diagtext:`parameter` || || || ||:diagtext:`false`|| |
|
|
| |+-------------------------+| |+-----------------------+| |+-----------------+| |
|
|
+--------------------------------------------------------------------+---------------------------+----------------------------------------------------------+-------------------------+----------------------------------------+-------------------+--------------------------------+
|
|
|
|
+------------------------------------------------------------+------------------------+----------------------------------------------------------+-------------------------+-----------------------------------------------------+-------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`comparison of` |nbsp| |+----------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`'` |nbsp| |+-----------------------+|:diagtext:`equal to a null pointer is always` |nbsp| |+-----------------+|
|
|
| ||:diagtext:`address of`|| ||:diagtext:`not` |nbsp| || ||:diagtext:`true` ||
|
|
| |+----------------------+| |+-----------------------+| |+-----------------+|
|
|
| ||:diagtext:`function` || || || ||:diagtext:`false`||
|
|
| |+----------------------+| |+-----------------------+| |+-----------------+|
|
|
| ||:diagtext:`array` || | | | |
|
|
| |+----------------------+| | | | |
|
|
+------------------------------------------------------------+------------------------+----------------------------------------------------------+-------------------------+-----------------------------------------------------+-------------------+
|
|
|
|
|
|
-Wtautological-type-limit-compare
|
|
---------------------------------
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------+------------------+--------------------------------+------------------+-----------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`result of comparison` |nbsp| |+----------------+| |nbsp| :placeholder:`C` |nbsp| |+----------------+| |nbsp| :diagtext:`is always` |nbsp| :placeholder:`E`|
|
|
| ||:placeholder:`D`|| ||:placeholder:`B`|| |
|
|
| |+----------------+| |+----------------+| |
|
|
| ||:placeholder:`B`|| ||:placeholder:`D`|| |
|
|
| |+----------------+| |+----------------+| |
|
|
+-------------------------------------------------------------------+------------------+--------------------------------+------------------+-----------------------------------------------------+
|
|
|
|
|
|
-Wtautological-undefined-compare
|
|
--------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`reference cannot be bound to dereferenced null pointer in well-defined C++ code; comparison may be assumed to always evaluate to` |nbsp| |+-----------------+|
|
|
| ||:diagtext:`true` ||
|
|
| |+-----------------+|
|
|
| ||:diagtext:`false`||
|
|
| |+-----------------+|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'this' pointer cannot be null in well-defined C++ code; comparison may be assumed to always evaluate to` |nbsp| |+-----------------+|
|
|
| ||:diagtext:`true` ||
|
|
| |+-----------------+|
|
|
| ||:diagtext:`false`||
|
|
| |+-----------------+|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
|
|
|
|
|
|
-Wtautological-unsigned-enum-zero-compare
|
|
-----------------------------------------
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------+--------------------------------------+--------------------------------+--------------------------------------+-----------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`result of comparison of` |nbsp| |+------------------------------------+| |nbsp| :placeholder:`C` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`is always` |nbsp| :placeholder:`E`|
|
|
| ||:placeholder:`D` || ||:diagtext:`unsigned enum expression`|| |
|
|
| |+------------------------------------+| |+------------------------------------+| |
|
|
| ||:diagtext:`unsigned enum expression`|| ||:placeholder:`D` || |
|
|
| |+------------------------------------+| |+------------------------------------+| |
|
|
+----------------------------------------------------------------------+--------------------------------------+--------------------------------+--------------------------------------+-----------------------------------------------------+
|
|
|
|
|
|
-Wtautological-unsigned-zero-compare
|
|
------------------------------------
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------+---------------------------------+--------------------------------+---------------------------------+-----------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`result of comparison of` |nbsp| |+-------------------------------+| |nbsp| :placeholder:`C` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`is always` |nbsp| :placeholder:`E`|
|
|
| ||:placeholder:`D` || ||:diagtext:`unsigned expression`|| |
|
|
| |+-------------------------------+| |+-------------------------------+| |
|
|
| ||:diagtext:`unsigned expression`|| ||:placeholder:`D` || |
|
|
| |+-------------------------------+| |+-------------------------------+| |
|
|
+----------------------------------------------------------------------+---------------------------------+--------------------------------+---------------------------------+-----------------------------------------------------+
|
|
|
|
|
|
-Wtentative-definition-incomplete-type
|
|
--------------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`tentative definition of variable with internal linkage has incomplete non-array type` |nbsp| :placeholder:`A`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wthread-safety
|
|
---------------
|
|
Controls `-Wthread-safety-analysis`_, `-Wthread-safety-attributes`_, `-Wthread-safety-precise`_, `-Wthread-safety-reference`_.
|
|
|
|
|
|
-Wthread-safety-analysis
|
|
------------------------
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' must be acquired before '`:placeholder:`C`:diagtext:`'`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`Cycle in acquired\_before/after dependencies, starting with '`:placeholder:`A`:diagtext:`'`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`cannot resolve lock expression`|
|
|
+---------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`acquiring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' that is already held`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`expecting` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' to be held at start of each loop`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`expecting` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' to be held at the end of function`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`cannot call function '`:placeholder:`B`:diagtext:`' while` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`C`:diagtext:`' is held`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`calling function` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
|
|
| ||+------------------------------------------+ ||
|
|
| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
|
|
| ||+------------------------------------------+ ||
|
|
| |+--------------------------------------------------------+|
|
|
| ||+------------------------------------------------------+||
|
|
| |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
|
|
| ||+------------------------------------------------------+||
|
|
| |+--------------------------------------------------------+|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is acquired exclusively and shared in the same scope`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is not held on every path through here`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is still held at the end of function`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`releasing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' that was not held`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+-----------------------+--------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`releasing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' using` |nbsp| |+---------------------+| |nbsp| :diagtext:`access, expected` |nbsp| |+---------------------+| |nbsp| :diagtext:`access`|
|
|
| ||:diagtext:`shared` || ||:diagtext:`shared` || |
|
|
| |+---------------------+| |+---------------------+| |
|
|
| ||:diagtext:`exclusive`|| ||:diagtext:`exclusive`|| |
|
|
| |+---------------------+| |+---------------------+| |
|
|
+----------------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+-----------------------+--------------------------+
|
|
|
|
+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------+-----------------------------------+
|
|
|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires holding` |nbsp| |+---------------------------------+|
|
|
| ||:diagtext:`reading`|| ||:diagtext:`any mutex` ||
|
|
| |+-------------------+| |+---------------------------------+|
|
|
| ||:diagtext:`writing`|| ||:diagtext:`any mutex exclusively`||
|
|
| |+-------------------+| |+---------------------------------+|
|
|
+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------+-----------------------------------+
|
|
|
|
+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
|
|
| ||:diagtext:`reading`|| ||+------------------------------------------+ ||
|
|
| |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
|
|
| ||:diagtext:`writing`|| ||+------------------------------------------+ ||
|
|
| |+-------------------+| |+--------------------------------------------------------+|
|
|
| | | ||+------------------------------------------------------+||
|
|
| | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
|
|
| | | ||+------------------------------------------------------+||
|
|
| | | |+--------------------------------------------------------+|
|
|
+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
|
|
|
|
+---------------------------+---------------------+------------------------------------------------------------------------------------------------+-----------------------------------+
|
|
|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires holding` |nbsp| |+---------------------------------+|
|
|
| ||:diagtext:`reading`|| ||:diagtext:`any mutex` ||
|
|
| |+-------------------+| |+---------------------------------+|
|
|
| ||:diagtext:`writing`|| ||:diagtext:`any mutex exclusively`||
|
|
| |+-------------------+| |+---------------------------------+|
|
|
+---------------------------+---------------------+------------------------------------------------------------------------------------------------+-----------------------------------+
|
|
|
|
+---------------------------+---------------------+------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
|
|
| ||:diagtext:`reading`|| ||+------------------------------------------+ ||
|
|
| |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
|
|
| ||:diagtext:`writing`|| ||+------------------------------------------+ ||
|
|
| |+-------------------+| |+--------------------------------------------------------+|
|
|
| | | ||+------------------------------------------------------+||
|
|
| | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
|
|
| | | ||+------------------------------------------------------+||
|
|
| | | |+--------------------------------------------------------+|
|
|
+---------------------------+---------------------+------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
|
|
|
|
|
|
-Wthread-safety-attributes
|
|
--------------------------
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :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' 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`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute without capability arguments refers to 'this', but` |nbsp| :placeholder:`B` |nbsp| :diagtext:`isn't annotated with 'capability' or 'scoped\_lockable' attribute`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute without capability arguments can only be applied to non-static methods of a class`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wthread-safety-beta
|
|
--------------------
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`Thread safety beta warning.`|
|
|
+------------------------------------------------------------------+
|
|
|
|
|
|
-Wthread-safety-negative
|
|
------------------------
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`acquiring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' requires negative capability '`:placeholder:`C`:diagtext:`'`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wthread-safety-precise
|
|
-----------------------
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`calling function` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
|
|
| ||+------------------------------------------+ ||
|
|
| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
|
|
| ||+------------------------------------------+ ||
|
|
| |+--------------------------------------------------------+|
|
|
| ||+------------------------------------------------------+||
|
|
| |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
|
|
| ||+------------------------------------------------------+||
|
|
| |+--------------------------------------------------------+|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
|
|
|
|
+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
|
|
| ||:diagtext:`reading`|| ||+------------------------------------------+ ||
|
|
| |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
|
|
| ||:diagtext:`writing`|| ||+------------------------------------------+ ||
|
|
| |+-------------------+| |+--------------------------------------------------------+|
|
|
| | | ||+------------------------------------------------------+||
|
|
| | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
|
|
| | | ||+------------------------------------------------------+||
|
|
| | | |+--------------------------------------------------------+|
|
|
+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
|
|
|
|
+---------------------------+---------------------+------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
|
|
| ||:diagtext:`reading`|| ||+------------------------------------------+ ||
|
|
| |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
|
|
| ||:diagtext:`writing`|| ||+------------------------------------------+ ||
|
|
| |+-------------------+| |+--------------------------------------------------------+|
|
|
| | | ||+------------------------------------------------------+||
|
|
| | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
|
|
| | | ||+------------------------------------------------------+||
|
|
| | | |+--------------------------------------------------------+|
|
|
+---------------------------+---------------------+------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
|
|
|
|
|
|
-Wthread-safety-reference
|
|
-------------------------
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`passing variable` |nbsp| :placeholder:`B` |nbsp| :diagtext:`by reference requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
|
|
| ||+------------------------------------------+ ||
|
|
| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
|
|
| ||+------------------------------------------+ ||
|
|
| |+--------------------------------------------------------+|
|
|
| ||+------------------------------------------------------+||
|
|
| |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
|
|
| ||+------------------------------------------------------+||
|
|
| |+--------------------------------------------------------+|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`passing the value that` |nbsp| :placeholder:`B` |nbsp| :diagtext:`points to by reference requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
|
|
| ||+------------------------------------------+ ||
|
|
| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
|
|
| ||+------------------------------------------+ ||
|
|
| |+--------------------------------------------------------+|
|
|
| ||+------------------------------------------------------+||
|
|
| |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
|
|
| ||+------------------------------------------------------+||
|
|
| |+--------------------------------------------------------+|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
|
|
|
|
|
|
-Wthread-safety-verbose
|
|
-----------------------
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`Thread safety verbose warning.`|
|
|
+---------------------------------------------------------------------+
|
|
|
|
|
|
-Wtrigraphs
|
|
-----------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`trigraph converted to '`:placeholder:`A`:diagtext:`' character`|
|
|
+-----------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`trigraph ends block comment`|
|
|
+------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`trigraph ignored`|
|
|
+-------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ignored trigraph would end block comment`|
|
|
+-------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wtype-limits
|
|
-------------
|
|
Synonym for `-Wtautological-constant-in-range-compare`_.
|
|
|
|
|
|
-Wtype-limits
|
|
-------------
|
|
Synonym for `-Wtautological-constant-in-range-compare`_.
|
|
|
|
|
|
-Wtype-safety
|
|
-------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`specified` |nbsp| :placeholder:`A` |nbsp| :diagtext:`type tag requires a null pointer`|
|
|
+----------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`argument type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`doesn't match specified` |nbsp| :placeholder:`B` |nbsp| :diagtext:`type tag` |nbsp| |+---------------------------------------------------+|
|
|
| ||+-------------------------------------------------+||
|
|
| |||:diagtext:`that requires` |nbsp| :placeholder:`D`|||
|
|
| ||+-------------------------------------------------+||
|
|
| |+---------------------------------------------------+|
|
|
| || ||
|
|
| |+---------------------------------------------------+|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`this type tag was not designed to be used with this function`|
|
|
+---------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wtypedef-redefinition
|
|
----------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`redefinition of typedef` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C11 feature`|
|
|
+--------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wtypename-missing
|
|
------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`missing 'typename' prior to dependent type name '`:placeholder:`A`:placeholder:`B`:diagtext:`'`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wunable-to-open-stats-file
|
|
---------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`unable to open statistics output file '`:placeholder:`A`:diagtext:`': '`:placeholder:`B`:diagtext:`'`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wunavailable-declarations
|
|
--------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be unavailable because the receiver type is unknown`|
|
|
+----------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wundeclared-selector
|
|
---------------------
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`undeclared selector` |nbsp| :placeholder:`A`|
|
|
+----------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`undeclared selector` |nbsp| :placeholder:`A`:diagtext:`; did you mean` |nbsp| :placeholder:`B`:diagtext:`?`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wundef
|
|
-------
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not defined, evaluates to 0`|
|
|
+---------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wundefined-bool-conversion
|
|
---------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`reference cannot be bound to dereferenced null pointer in well-defined C++ code; pointer may be assumed to always convert to true`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'this' pointer cannot be null in well-defined C++ code; pointer may be assumed to always convert to true`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wundefined-func-template
|
|
-------------------------
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`instantiation of function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`required here, but no definition is available`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wundefined-inline
|
|
------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`inline function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not defined`|
|
|
+----------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wundefined-internal
|
|
--------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------+----------------------+-----------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`has internal linkage but is not defined`|
|
|
| ||:diagtext:`function`|| |
|
|
| |+--------------------+| |
|
|
| ||:diagtext:`variable`|| |
|
|
| |+--------------------+| |
|
|
+---------------------------+----------------------+-----------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wundefined-internal-type
|
|
-------------------------
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ISO C++ requires a definition in this translation unit for` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`because its type does not have linkage`|
|
|
| ||:diagtext:`function`|| |
|
|
| |+--------------------+| |
|
|
| ||:diagtext:`variable`|| |
|
|
| |+--------------------+| |
|
|
+---------------------------------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wundefined-reinterpret-cast
|
|
----------------------------
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`dereference of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that was reinterpret\_cast from type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has undefined behavior`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`reinterpret\_cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has undefined behavior`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wundefined-var-template
|
|
------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`instantiation of variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`required here, but no definition is available`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wunderaligned-exception-object
|
|
-------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`underaligned exception object thrown`|
|
|
+---------------------------------------------------------------------------+
|
|
|
|
|
|
-Wunevaluated-expression
|
|
------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
Also controls `-Wpotentially-evaluated-expression`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`expression with side effects has no effect in an unevaluated context`|
|
|
+-----------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wunguarded-availability
|
|
------------------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
Also controls `-Wunguarded-availability-new`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is only available on` |nbsp| :placeholder:`B` |nbsp| :placeholder:`C` |nbsp| :diagtext:`or newer`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wunguarded-availability-new
|
|
----------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is only available on` |nbsp| :placeholder:`B` |nbsp| :placeholder:`C` |nbsp| :diagtext:`or newer`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wunicode
|
|
---------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`incomplete universal character name; treating as '\\' followed by identifier`|
|
|
+-------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`\\`:placeholder:`A` |nbsp| :diagtext:`used with no following hex digits; treating as '\\' followed by identifier`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`universal character name refers to a surrogate character`|
|
|
+-----------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`universal character names are only valid in C99 or C++; treating as '\\' followed by identifier`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`universal character names are only valid in C99 or C++`|
|
|
+---------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wunicode-homoglyph
|
|
-------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`treating Unicode character <U+`:placeholder:`A`:diagtext:`> as identifier character rather than as '`:placeholder:`B`:diagtext:`' symbol`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wunicode-whitespace
|
|
--------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`treating Unicode character as whitespace`|
|
|
+-------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wunicode-zero-width
|
|
--------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`identifier contains Unicode character <U+`:placeholder:`A`:diagtext:`> that is invisible in some environments`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wuninitialized
|
|
---------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
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` |nbsp| |+-------------------------+| |nbsp| :diagtext:`when captured by block`|
|
|
| ||:diagtext:`uninitialized`|| |
|
|
| |+-------------------------+| |
|
|
| ||:diagtext:`null` || |
|
|
| |+-------------------------+| |
|
|
+-------------------------------------------------------------------------------------------------------------------+---------------------------+------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when used within its own initialization`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`reference` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not yet bound to a value when used within its own initialization`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------+-------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when` |nbsp| |+-----------------------------+|
|
|
| ||:diagtext:`used here` ||
|
|
| |+-----------------------------+|
|
|
| ||:diagtext:`captured by block`||
|
|
| |+-----------------------------+|
|
|
+------------------------------------------------------------------------------------------------------------------------+-------------------------------+
|
|
|
|
|
|
-Wunknown-argument
|
|
------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`unknown argument ignored in clang-cl: '`:placeholder:`A`:diagtext:`'`|
|
|
+-----------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`unknown argument ignored in clang-cl '`:placeholder:`A`:diagtext:`'; did you mean '`:placeholder:`B`:diagtext:`'?`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wunknown-attributes
|
|
--------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`unknown attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored`|
|
|
+-----------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wunknown-cuda-version
|
|
----------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`Unknown CUDA version` |nbsp| :placeholder:`A`:diagtext:`. Assuming the latest supported version` |nbsp| :placeholder:`B`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-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:`#pragma execution\_character\_set expected '`:placeholder:`A`:diagtext:`'`|
|
|
+----------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`#pragma execution\_character\_set invalid value '`:placeholder:`A`:diagtext:`', only 'UTF-8' is supported`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`#pragma execution\_character\_set expected 'push' or 'pop'`|
|
|
+-------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`unknown pragma ignored`|
|
|
+-------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`pragma include\_alias expected '`:placeholder:`A`:diagtext:`'`|
|
|
+----------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`pragma include\_alias expected include filename`|
|
|
+--------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`angle-bracketed include <`:placeholder:`A`:diagtext:`> cannot be aliased to double-quoted include "`:placeholder:`B`:diagtext:`"`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`double-quoted include "`:placeholder:`A`:diagtext:`" cannot be aliased to angle-bracketed include <`:placeholder:`B`:diagtext:`>`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected '`:placeholder:`A`:diagtext:`'`|
|
|
+----------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected a warning number`|
|
|
+--------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`#pragma warning(push, level) requires a level between 0 and 4`|
|
|
+----------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected 'push', 'pop', 'default', 'disable', 'error', 'once', 'suppress', 1, 2, 3, or 4`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`pragma STDC FENV\_ACCESS ON is not supported, ignoring pragma`|
|
|
+----------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wunknown-sanitizers
|
|
--------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`unknown sanitizer '`:placeholder:`A`:diagtext:`' ignored`|
|
|
+-----------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wunknown-warning-option
|
|
------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`unknown warning group '`:placeholder:`A`:diagtext:`', ignored`|
|
|
+----------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------+---------------------+---------------------------------------------------------+--------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`unknown` |nbsp| |+-------------------+| |nbsp| :diagtext:`option '`:placeholder:`B`:diagtext:`'`|+------------------------------------------------------------+|
|
|
| ||:diagtext:`warning`|| || ||
|
|
| |+-------------------+| |+------------------------------------------------------------+|
|
|
| ||:diagtext:`remark` || ||+----------------------------------------------------------+||
|
|
| |+-------------------+| |||:diagtext:`; did you mean '`:placeholder:`D`:diagtext:`'?`|||
|
|
| | | ||+----------------------------------------------------------+||
|
|
| | | |+------------------------------------------------------------+|
|
|
+------------------------------------------------------+---------------------+---------------------------------------------------------+--------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`unknown` |nbsp| :placeholder:`A` |nbsp| :diagtext:`warning specifier: '`:placeholder:`B`:diagtext:`'`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wunnamed-type-template-args
|
|
----------------------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
Also controls `-Wc++98-compat-unnamed-type-template-args`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`template argument uses unnamed type`|
|
|
+--------------------------------------------------------------------------+
|
|
|
|
|
|
-Wunneeded-internal-declaration
|
|
-------------------------------
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------+----------------------+---------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is not needed and will not be emitted`|
|
|
| ||:diagtext:`function`|| |
|
|
| |+--------------------+| |
|
|
| ||:diagtext:`variable`|| |
|
|
| |+--------------------+| |
|
|
+---------------------------+----------------------+---------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'static' function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared in header file should be declared 'static inline'`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wunneeded-member-function
|
|
--------------------------
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`member function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not needed and will not be emitted`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wunreachable-code
|
|
------------------
|
|
Also controls `-Wunreachable-code-loop-increment`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`code will never be executed`|
|
|
+------------------------------------------------------------------+
|
|
|
|
|
|
-Wunreachable-code-aggressive
|
|
-----------------------------
|
|
Controls `-Wunreachable-code`_, `-Wunreachable-code-break`_, `-Wunreachable-code-return`_.
|
|
|
|
|
|
-Wunreachable-code-break
|
|
------------------------
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'break' will never be executed`|
|
|
+---------------------------------------------------------------------+
|
|
|
|
|
|
-Wunreachable-code-loop-increment
|
|
---------------------------------
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`loop will run at most once (loop increment never executed)`|
|
|
+-------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wunreachable-code-return
|
|
-------------------------
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`'return' will never be executed`|
|
|
+----------------------------------------------------------------------+
|
|
|
|
|
|
-Wunsequenced
|
|
-------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`multiple unsequenced modifications to` |nbsp| :placeholder:`A`|
|
|
+----------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`unsequenced modification and access to` |nbsp| :placeholder:`A`|
|
|
+-----------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wunsupported-abs
|
|
-----------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mabs=2008' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mabs=legacy' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wunsupported-availability-guard
|
|
--------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------+------------------------------------+--------------------------------------------------------------+------------------------------------+---------------------+
|
|
|:warning:`warning:` |nbsp| |+----------------------------------+| |nbsp| :diagtext:`does not guard availability here; use if (`|+----------------------------------+|:diagtext:`) instead`|
|
|
| ||:diagtext:`@available` || ||:diagtext:`@available` || |
|
|
| |+----------------------------------+| |+----------------------------------+| |
|
|
| ||:diagtext:`\_\_builtin\_available`|| ||:diagtext:`\_\_builtin\_available`|| |
|
|
| |+----------------------------------+| |+----------------------------------+| |
|
|
+---------------------------+------------------------------------+--------------------------------------------------------------+------------------------------------+---------------------+
|
|
|
|
|
|
-Wunsupported-cb
|
|
----------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mcompact-branches=' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wunsupported-dll-base-class-template
|
|
-------------------------------------
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------+------------------------------------+------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`propagating dll attribute to` |nbsp| |+----------------------------------+| |nbsp| :diagtext:`base class template without dll attribute is not supported`|
|
|
| ||:diagtext:`already instantiated` || |
|
|
| |+----------------------------------+| |
|
|
| ||:diagtext:`explicitly specialized`|| |
|
|
| |+----------------------------------+| |
|
|
+---------------------------------------------------------------------------+------------------------------------+------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wunsupported-friend
|
|
--------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`dependent nested name specifier '`:placeholder:`A`:diagtext:`' for friend template declaration is not supported; ignoring this friend declaration`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`dependent nested name specifier '`:placeholder:`A`:diagtext:`' for friend class declaration is not supported; turning off access control for` |nbsp| :placeholder:`B`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wunsupported-gpopt
|
|
-------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mgpopt' option as it cannot be used with` |nbsp| |+-----------------------------------------+|:diagtext:`-mabicalls`|
|
|
| || || |
|
|
| |+-----------------------------------------+| |
|
|
| ||:diagtext:`the implicit usage of` |nbsp| || |
|
|
| |+-----------------------------------------+| |
|
|
+--------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+
|
|
|
|
|
|
-Wunsupported-nan
|
|
-----------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mnan=2008' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mnan=legacy' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wunsupported-target-opt
|
|
------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`debug information option '`:placeholder:`A`:diagtext:`' is not supported for target '`:placeholder:`B`:diagtext:`'`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wunsupported-visibility
|
|
------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`target does not support 'protected' visibility; using 'default'`|
|
|
+------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wunusable-partial-specialization
|
|
---------------------------------
|
|
This diagnostic is an error by default, but the flag ``-Wno-unusable-partial-specialization`` can be used to disable the error.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------+----------------------+--------------------------------------------------------------------+----------------------------------+------------------------------------------------------------------------------------------+
|
|
|:error:`error:` |nbsp| |+--------------------+| |nbsp| :diagtext:`template partial specialization contains` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`that cannot be deduced; this partial specialization will never be used`|
|
|
| ||:diagtext:`class` || ||:diagtext:`a template parameter`|| |
|
|
| |+--------------------+| |+--------------------------------+| |
|
|
| ||:diagtext:`variable`|| ||:diagtext:`template parameters` || |
|
|
| |+--------------------+| |+--------------------------------+| |
|
|
+-----------------------+----------------------+--------------------------------------------------------------------+----------------------------------+------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wunused
|
|
--------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
Controls `-Wunused-argument`_, `-Wunused-function`_, `-Wunused-label`_, `-Wunused-lambda-capture`_, `-Wunused-local-typedef`_, `-Wunused-private-field`_, `-Wunused-property-ivar`_, `-Wunused-value`_, `-Wunused-variable`_.
|
|
|
|
|
|
-Wunused-argument
|
|
-----------------
|
|
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
|
|
|
|
-Wunused-command-line-argument
|
|
------------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`argument '`:placeholder:`A`:diagtext:`' requires profile-guided optimization information`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`joined argument expects additional value: '`:placeholder:`A`:diagtext:`'`|
|
|
+---------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: '`:placeholder:`B`:diagtext:`' input unused`|+--------------------------------------------------------------------+|
|
|
| ||+------------------------------------------------------------------+||
|
|
| ||| |nbsp| :diagtext:`when '`:placeholder:`D`:diagtext:`' is present`|||
|
|
| ||+------------------------------------------------------------------+||
|
|
| |+--------------------------------------------------------------------+|
|
|
| || ||
|
|
| |+--------------------------------------------------------------------+|
|
|
+----------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: '`:placeholder:`B`:diagtext:`' input unused in cpp mode`|
|
|
+----------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: previously preprocessed input`|+---------------------------------------------------------------------------+|
|
|
| ||+-------------------------------------------------------------------------+||
|
|
| ||| |nbsp| :diagtext:`unused when '`:placeholder:`C`:diagtext:`' is present`|||
|
|
| ||+-------------------------------------------------------------------------+||
|
|
| |+---------------------------------------------------------------------------+|
|
|
| || ||
|
|
| |+---------------------------------------------------------------------------+|
|
|
+--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`argument unused during compilation: '`:placeholder:`A`:diagtext:`'`|
|
|
+---------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`the flag '`:placeholder:`A`:diagtext:`' has been deprecated and will be ignored`|
|
|
+----------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ignoring -fdiscard-value-names for LLVM Bitcode`|
|
|
+--------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wunused-comparison
|
|
-------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------+------------------------+--------------------------------------------+
|
|
|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`comparison result unused`|
|
|
| ||:diagtext:`equality` || |
|
|
| |+----------------------+| |
|
|
| ||:diagtext:`inequality`|| |
|
|
| |+----------------------+| |
|
|
| ||:diagtext:`relational`|| |
|
|
| |+----------------------+| |
|
|
| ||:diagtext:`three-way` || |
|
|
| |+----------------------+| |
|
|
+---------------------------+------------------------+--------------------------------------------+
|
|
|
|
|
|
-Wunused-const-variable
|
|
-----------------------
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`unused variable` |nbsp| :placeholder:`A`|
|
|
+------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wunused-exception-parameter
|
|
----------------------------
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`unused exception parameter` |nbsp| :placeholder:`A`|
|
|
+-----------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wunused-function
|
|
-----------------
|
|
Also controls `-Wunneeded-internal-declaration`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`unused function` |nbsp| :placeholder:`A`|
|
|
+------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wunused-getter-return-value
|
|
----------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`property access result unused - getters should not be used for side effects`|
|
|
+------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wunused-label
|
|
--------------
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`unused label` |nbsp| :placeholder:`A`|
|
|
+---------------------------------------------------------------------------+
|
|
|
|
|
|
-Wunused-lambda-capture
|
|
-----------------------
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------+--------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`lambda capture` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not` |nbsp| |+------------------------------------------------+|
|
|
| ||:diagtext:`used` ||
|
|
| |+------------------------------------------------+|
|
|
| ||:diagtext:`required to be captured for this use`||
|
|
| |+------------------------------------------------+|
|
|
+---------------------------------------------------------------------------------------------------------------+--------------------------------------------------+
|
|
|
|
|
|
-Wunused-local-typedef
|
|
----------------------
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------+------------------------+------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`unused` |nbsp| |+----------------------+| |nbsp| :placeholder:`B`|
|
|
| ||:diagtext:`typedef` || |
|
|
| |+----------------------+| |
|
|
| ||:diagtext:`type alias`|| |
|
|
| |+----------------------+| |
|
|
+-----------------------------------------------------+------------------------+------------------------+
|
|
|
|
|
|
-Wunused-local-typedefs
|
|
-----------------------
|
|
Synonym for `-Wunused-local-typedef`_.
|
|
|
|
|
|
-Wunused-macros
|
|
---------------
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`macro is not used`|
|
|
+--------------------------------------------------------+
|
|
|
|
|
|
-Wunused-member-function
|
|
------------------------
|
|
Also controls `-Wunneeded-member-function`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`unused member function` |nbsp| :placeholder:`A`|
|
|
+-------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wunused-parameter
|
|
------------------
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`unused parameter` |nbsp| :placeholder:`A`|
|
|
+-------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wunused-private-field
|
|
----------------------
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`private field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not used`|
|
|
+-----------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wunused-property-ivar
|
|
----------------------
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ivar` |nbsp| :placeholder:`A` |nbsp| :diagtext:`which backs the property is not referenced in this property's accessor`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wunused-result
|
|
---------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ignoring return value of function declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ignoring return value of function declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute:` |nbsp| :placeholder:`B`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wunused-template
|
|
-----------------
|
|
Also controls `-Wunneeded-internal-declaration`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------+----------------------+----------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`unused` |nbsp| |+--------------------+| |nbsp| :diagtext:`template` |nbsp| :placeholder:`B`|
|
|
| ||:diagtext:`function`|| |
|
|
| |+--------------------+| |
|
|
| ||:diagtext:`variable`|| |
|
|
| |+--------------------+| |
|
|
+-----------------------------------------------------+----------------------+----------------------------------------------------+
|
|
|
|
|
|
-Wunused-value
|
|
--------------
|
|
This diagnostic is enabled by default.
|
|
|
|
Also controls `-Wunevaluated-expression`_, `-Wunused-comparison`_, `-Wunused-result`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ignoring return value of function declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ignoring temporary created by a constructor declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`ignoring temporary created by a constructor declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute:` |nbsp| :placeholder:`B`|
|
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`container access result unused - container access should not be used for side effects`|
|
|
+----------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`expression result unused`|
|
|
+---------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`expression result unused; should this cast be to 'void'?`|
|
|
+-----------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wunused-variable
|
|
-----------------
|
|
Also controls `-Wunused-const-variable`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`unused variable` |nbsp| :placeholder:`A`|
|
|
+------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wunused-volatile-lvalue
|
|
------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`expression result unused; assign into a variable to force a volatile load`|
|
|
+----------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wused-but-marked-unused
|
|
------------------------
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`was marked unused but was used`|
|
|
+---------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wuser-defined-literals
|
|
-----------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------+----------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`user-defined literal suffixes not starting with '\_' are reserved`|+--------------------------------------------------+|
|
|
| ||:diagtext:`; no literal will invoke this operator`||
|
|
| |+--------------------------------------------------+|
|
|
| || ||
|
|
| |+--------------------------------------------------+|
|
|
+--------------------------------------------------------------------------------------------------------+----------------------------------------------------+
|
|
|
|
|
|
-Wuser-defined-warnings
|
|
-----------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
The text of this diagnostic is not controlled by Clang.
|
|
|
|
|
|
-Wvarargs
|
|
---------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`second argument to 'va\_start' is not the last named parameter`|
|
|
+-----------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`second argument to 'va\_arg' is of promotable type` |nbsp| :placeholder:`A`:diagtext:`; this va\_arg has undefined behavior because arguments will be promoted to` |nbsp| :placeholder:`B`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------+-----------------------------------------------------------------+---------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`passing` |nbsp| |+---------------------------------------------------------------+| |nbsp| :diagtext:`to 'va\_start' has undefined behavior`|
|
|
| ||:diagtext:`an object that undergoes default argument promotion`|| |
|
|
| |+---------------------------------------------------------------+| |
|
|
| ||:diagtext:`an object of reference type` || |
|
|
| |+---------------------------------------------------------------+| |
|
|
| ||:diagtext:`a parameter declared with the 'register' keyword` || |
|
|
| |+---------------------------------------------------------------+| |
|
|
+------------------------------------------------------+-----------------------------------------------------------------+---------------------------------------------------------+
|
|
|
|
|
|
-Wvariadic-macros
|
|
-----------------
|
|
Some of the diagnostics controlled by this flag are enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`named variadic macros are a GNU extension`|
|
|
+--------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`\_\_VA\_OPT\_\_ can only appear in the expansion of a variadic macro`|
|
|
+-----------------------------------------------------------------------------------------------------------+
|
|
|
|
+------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`variadic macros are a C99 feature`|
|
|
+------------------------------------------------------------------------+
|
|
|
|
|
|
-Wvec-elem-size
|
|
---------------
|
|
This diagnostic is an error by default, but the flag ``-Wno-vec-elem-size`` can be used to disable the error.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:error:`error:` |nbsp| :diagtext:`vector operands do not have the same elements sizes (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wvector-conversion
|
|
-------------------
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------+----------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`incompatible vector types` |nbsp| |+--------------------------------------------------------------+|
|
|
| ||:diagtext:`assigning to different types` ||
|
|
| |+--------------------------------------------------------------+|
|
|
| ||:diagtext:`passing to parameter of different type` ||
|
|
| |+--------------------------------------------------------------+|
|
|
| ||:diagtext:`returning from function with different return type`||
|
|
| |+--------------------------------------------------------------+|
|
|
| ||:diagtext:`converting between types` ||
|
|
| |+--------------------------------------------------------------+|
|
|
| ||:diagtext:`initializing with expression of different type` ||
|
|
| |+--------------------------------------------------------------+|
|
|
| ||:diagtext:`sending to parameter of different type` ||
|
|
| |+--------------------------------------------------------------+|
|
|
| ||:diagtext:`casting between types` ||
|
|
| |+--------------------------------------------------------------+|
|
|
+------------------------------------------------------------------------+----------------------------------------------------------------+
|
|
|
|
|
|
-Wvector-conversions
|
|
--------------------
|
|
Synonym for `-Wvector-conversion`_.
|
|
|
|
|
|
-Wvexing-parse
|
|
--------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`empty parentheses interpreted as a function declaration`|
|
|
+----------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`parentheses were disambiguated as a function declaration`|
|
|
+-----------------------------------------------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`parentheses were disambiguated as redundant parentheses around declaration of variable named` |nbsp| :placeholder:`A`|
|
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wvisibility
|
|
------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`declaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will not be visible outside of this function`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`redefinition of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will not be visible outside of this function`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wvla
|
|
-----
|
|
**Diagnostic text:**
|
|
|
|
+-----------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`variable length array used`|
|
|
+-----------------------------------------------------------------+
|
|
|
|
|
|
-Wvla-extension
|
|
---------------
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`variable length arrays are a C99 feature`|
|
|
+-------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wvoid-pointer-to-enum-cast
|
|
---------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`cast to smaller integer type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from` |nbsp| :placeholder:`A`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wvoid-pointer-to-int-cast
|
|
--------------------------
|
|
This diagnostic is enabled by default.
|
|
|
|
Also controls `-Wvoid-pointer-to-enum-cast`_.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`cast to smaller integer type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from` |nbsp| :placeholder:`A`|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-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`_.
|
|
|
|
|
|
-Wxor-used-as-pow
|
|
-----------------
|
|
This diagnostic is enabled by default.
|
|
|
|
**Diagnostic text:**
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`result of '`:placeholder:`A`:diagtext:`' is` |nbsp| :placeholder:`B`:diagtext:`; did you mean exponentiation?`|
|
|
+----------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`result of '`:placeholder:`A`:diagtext:`' is` |nbsp| :placeholder:`B`:diagtext:`; did you mean '`:placeholder:`C`:diagtext:`'?`|
|
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`result of '`:placeholder:`A`:diagtext:`' is` |nbsp| :placeholder:`B`:diagtext:`; did you mean '`:placeholder:`C`:diagtext:`' (`:placeholder:`D`:diagtext:`)?`|
|
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
-Wzero-as-null-pointer-constant
|
|
-------------------------------
|
|
**Diagnostic text:**
|
|
|
|
+--------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`zero as null pointer constant`|
|
|
+--------------------------------------------------------------------+
|
|
|
|
|
|
-Wzero-length-array
|
|
-------------------
|
|
**Diagnostic text:**
|
|
|
|
+------------------------------------------------------------------------+
|
|
|:warning:`warning:` |nbsp| :diagtext:`zero size arrays are an extension`|
|
|
+------------------------------------------------------------------------+
|
|
|
|
|