[PowerPC] Collect some CallLowering arguments into a struct. [NFC]
[llvm-project.git] / clang / docs / DiagnosticsReference.rst
blob7d9b1e8359a8d3ae156aaeb9a75eee6151ea8f4a
1 ..
2   -------------------------------------------------------------------
3   NOTE: This file is automatically generated by running clang-tblgen
4   -gen-diag-docs. Do not edit this file by hand!!
5   -------------------------------------------------------------------
7 .. Add custom CSS to output. FIXME: This should be put into <head> rather
8    than the start of <body>.
9 .. raw:: html
11     <style>
12     table.docutils {
13       width: 1px;
14     }
15     table.docutils td {
16       border: none;
17       padding: 0 0 0 0.2em;
18       vertical-align: middle;
19       white-space: nowrap;
20       width: 1px;
21       font-family: monospace;
22     }
23     table.docutils tr + tr {
24       border-top: 0.2em solid #aaa;
25     }
26     .error {
27       font-family: monospace;
28       font-weight: bold;
29       color: #c00;
30     }
31     .warning {
32       font-family: monospace;
33       font-weight: bold;
34       color: #80a;
35     }
36     .remark {
37       font-family: monospace;
38       font-weight: bold;
39       color: #00c;
40     }
41     .diagtext {
42       font-family: monospace;
43       font-weight: bold;
44     }
45     </style>
47 .. FIXME: rST doesn't support formatting this, so we format all <td> elements
48           as monospace font face instead.
49 .. |nbsp| unicode:: 0xA0
50    :trim:
52 .. Roles generated by clang-tblgen.
53 .. role:: error
54 .. role:: warning
55 .. role:: remark
56 .. role:: diagtext
57 .. role:: placeholder(emphasis)
59 =========================
60 Diagnostic flags in Clang
61 =========================
62 .. contents::
63    :local:
65 Introduction
66 ============
68 This page lists the diagnostic flags currently supported by Clang.
70 Diagnostic flags
71 ================
75 Synonym for `-Wextra`_.
78 -W#pragma-messages
79 ------------------
80 This diagnostic is enabled by default.
82 **Diagnostic text:**
84 The text of this diagnostic is not controlled by Clang.
87 -W#warnings
88 -----------
89 This diagnostic is enabled by default.
91 **Diagnostic text:**
93 The text of this diagnostic is not controlled by Clang.
96 -WCFString-literal
97 ------------------
98 This diagnostic is enabled by default.
100 **Diagnostic text:**
102 +------------------------------------------------------------------------------------------------------------------------------------+
103 |:warning:`warning:` |nbsp| :diagtext:`input conversion stopped due to an input byte that does not belong to the input codeset UTF-8`|
104 +------------------------------------------------------------------------------------------------------------------------------------+
107 -WCL4
108 -----
109 Some of the diagnostics controlled by this flag are enabled by default.
111 Controls `-Wall`_, `-Wextra`_.
114 -WIndependentClass-attribute
115 ----------------------------
116 This diagnostic is enabled by default.
118 **Diagnostic text:**
120 +------------------------------------------------------------------------------------------------------------------------------+
121 |:warning:`warning:` |nbsp| :diagtext:`'objc\_independent\_class' attribute may be put on a typedef only; attribute is ignored`|
122 +------------------------------------------------------------------------------------------------------------------------------+
124 +----------------------------------------------------------------------------------------------------------------------------------------------------+
125 |:warning:`warning:` |nbsp| :diagtext:`'objc\_independent\_class' attribute may be put on Objective-C object pointer type only; attribute is ignored`|
126 +----------------------------------------------------------------------------------------------------------------------------------------------------+
129 -WNSObject-attribute
130 --------------------
131 This diagnostic is enabled by default.
133 **Diagnostic text:**
135 +--------------------------------------------------------------------------------------------------------------+
136 |:warning:`warning:` |nbsp| :diagtext:`'NSObject' attribute may be put on a typedef only; attribute is ignored`|
137 +--------------------------------------------------------------------------------------------------------------+
140 -Wabi
141 -----
142 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
144 -Wabsolute-value
145 ----------------
146 This diagnostic is enabled by default.
148 **Diagnostic text:**
150 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
151 |: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`|
152 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
154 +---------------------------------------------------------------------------+----------------------+---------------------------------------------------------------------------------+
155 |:warning:`warning:` |nbsp| :diagtext:`taking the absolute value of` |nbsp| |+--------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is suspicious`|
156 |                                                                           ||:diagtext:`pointer` ||                                                                                 |
157 |                                                                           |+--------------------+|                                                                                 |
158 |                                                                           ||:diagtext:`function`||                                                                                 |
159 |                                                                           |+--------------------+|                                                                                 |
160 |                                                                           ||:diagtext:`array`   ||                                                                                 |
161 |                                                                           |+--------------------+|                                                                                 |
162 +---------------------------------------------------------------------------+----------------------+---------------------------------------------------------------------------------+
164 +------------------------------------------------------------------------------------------------------------------------------------------+
165 |:warning:`warning:` |nbsp| :diagtext:`taking the absolute value of unsigned type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has no effect`|
166 +------------------------------------------------------------------------------------------------------------------------------------------+
168 +----------------------------------------------------+----------------------------+------------------------------------------------------------------------------------------------------------------+----------------------------+------------------------+
169 |:warning:`warning:` |nbsp| :diagtext:`using` |nbsp| |+--------------------------+| |nbsp| :diagtext:`absolute value function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when argument is of` |nbsp| |+--------------------------+| |nbsp| :diagtext:`type`|
170 |                                                    ||:diagtext:`integer`       ||                                                                                                                  ||:diagtext:`integer`       ||                        |
171 |                                                    |+--------------------------+|                                                                                                                  |+--------------------------+|                        |
172 |                                                    ||:diagtext:`floating point`||                                                                                                                  ||:diagtext:`floating point`||                        |
173 |                                                    |+--------------------------+|                                                                                                                  |+--------------------------+|                        |
174 |                                                    ||:diagtext:`complex`       ||                                                                                                                  ||:diagtext:`complex`       ||                        |
175 |                                                    |+--------------------------+|                                                                                                                  |+--------------------------+|                        |
176 +----------------------------------------------------+----------------------------+------------------------------------------------------------------------------------------------------------------+----------------------------+------------------------+
179 -Wabstract-final-class
180 ----------------------
181 This diagnostic is enabled by default.
183 **Diagnostic text:**
185 +-----------------------------------------------------------------+--------------------+-------------+
186 |:warning:`warning:` |nbsp| :diagtext:`abstract class is marked '`|+------------------+|:diagtext:`'`|
187 |                                                                 ||:diagtext:`final` ||             |
188 |                                                                 |+------------------+|             |
189 |                                                                 ||:diagtext:`sealed`||             |
190 |                                                                 |+------------------+|             |
191 +-----------------------------------------------------------------+--------------------+-------------+
194 -Wabstract-vbase-init
195 ---------------------
196 **Diagnostic text:**
198 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
199 |: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`|
200 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
203 -Waddress
204 ---------
205 This diagnostic is enabled by default.
207 Controls `-Wpointer-bool-conversion`_, `-Wstring-compare`_, `-Wtautological-pointer-compare`_.
210 -Waddress-of-array-temporary
211 ----------------------------
212 This diagnostic is enabled by default.
214 **Diagnostic text:**
216 +---------------------------------------------------------------------------------------------------------------------------------------------+
217 |:warning:`warning:` |nbsp| :diagtext:`pointer is initialized by a temporary array, which will be destroyed at the end of the full-expression`|
218 +---------------------------------------------------------------------------------------------------------------------------------------------+
221 -Waddress-of-packed-member
222 --------------------------
223 This diagnostic is enabled by default.
225 **Diagnostic text:**
227 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
228 |: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`|
229 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
232 -Waddress-of-temporary
233 ----------------------
234 This diagnostic is an error by default, but the flag ``-Wno-address-of-temporary`` can be used to disable the error.
236 **Diagnostic text:**
238 +-----------------------------------------------------------------------------------------------------------+
239 |:error:`error:` |nbsp| :diagtext:`taking the address of a temporary object of type` |nbsp| :placeholder:`A`|
240 +-----------------------------------------------------------------------------------------------------------+
243 -Waggregate-return
244 ------------------
245 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
247 -Waligned-allocation-unavailable
248 --------------------------------
249 This diagnostic is an error by default, but the flag ``-Wno-aligned-allocation-unavailable`` can be used to disable the error.
251 **Diagnostic text:**
253 +--------------------------------------------------+--------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
254 |:error:`error:` |nbsp| :diagtext:`aligned` |nbsp| |+------------------------+| |nbsp| :diagtext:`function of type '`:placeholder:`B`:diagtext:`' is only available on` |nbsp| :placeholder:`C` |nbsp| :placeholder:`D` |nbsp| :diagtext:`or newer`|
255 |                                                  ||:diagtext:`allocation`  ||                                                                                                                                                                    |
256 |                                                  |+------------------------+|                                                                                                                                                                    |
257 |                                                  ||:diagtext:`deallocation`||                                                                                                                                                                    |
258 |                                                  |+------------------------+|                                                                                                                                                                    |
259 +--------------------------------------------------+--------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
262 -Wall
263 -----
264 Some of the diagnostics controlled by this flag are enabled by default.
266 Controls `-Wmost`_, `-Wparentheses`_, `-Wswitch`_, `-Wswitch-bool`_.
269 -Walloca-with-align-alignof
270 ---------------------------
271 This diagnostic is enabled by default.
273 **Diagnostic text:**
275 +--------------------------------------------------------------------------------------------------------------------+
276 |:warning:`warning:` |nbsp| :diagtext:`second argument to \_\_builtin\_alloca\_with\_align is supposed to be in bits`|
277 +--------------------------------------------------------------------------------------------------------------------+
280 -Wambiguous-delete
281 ------------------
282 This diagnostic is enabled by default.
284 **Diagnostic text:**
286 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
287 |: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`|
288 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
291 -Wambiguous-ellipsis
292 --------------------
293 This diagnostic is enabled by default.
295 **Diagnostic text:**
297 +------------------------------------------------------------------------------------------------+---------------------------------------------+
298 |:warning:`warning:` |nbsp| :diagtext:`'...' in this location creates a C-style varargs function`|+-------------------------------------------+|
299 |                                                                                                ||:diagtext:`, not a function parameter pack`||
300 |                                                                                                |+-------------------------------------------+|
301 |                                                                                                ||                                           ||
302 |                                                                                                |+-------------------------------------------+|
303 +------------------------------------------------------------------------------------------------+---------------------------------------------+
306 -Wambiguous-macro
307 -----------------
308 This diagnostic is enabled by default.
310 **Diagnostic text:**
312 +-------------------------------------------------------------------------------------------+
313 |:warning:`warning:` |nbsp| :diagtext:`ambiguous expansion of macro` |nbsp| :placeholder:`A`|
314 +-------------------------------------------------------------------------------------------+
317 -Wambiguous-member-template
318 ---------------------------
319 This diagnostic is enabled by default.
321 **Diagnostic text:**
323 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
324 |:warning:`warning:` |nbsp| :diagtext:`lookup of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in member access expression is ambiguous; using member of` |nbsp| :placeholder:`B`|
325 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
328 -Wanalyzer-incompatible-plugin
329 ------------------------------
330 This diagnostic is enabled by default.
332 **Diagnostic text:**
334 +----------------------------------------------------------------------------------------------------------------------------------------+
335 |:warning:`warning:` |nbsp| :diagtext:`checker plugin '`:placeholder:`A`:diagtext:`' is not compatible with this version of the analyzer`|
336 +----------------------------------------------------------------------------------------------------------------------------------------+
339 -Wanonymous-pack-parens
340 -----------------------
341 This diagnostic is enabled by default.
343 **Diagnostic text:**
345 +---------------------------------------------------------------------------------------------------------+
346 |:warning:`warning:` |nbsp| :diagtext:`ISO C++11 requires a parenthesized pack declaration to have a name`|
347 +---------------------------------------------------------------------------------------------------------+
350 -Warc
351 -----
352 This diagnostic is enabled by default.
354 Controls `-Warc-non-pod-memaccess`_, `-Warc-retain-cycles`_, `-Warc-unsafe-retained-assign`_.
357 -Warc-bridge-casts-disallowed-in-nonarc
358 ---------------------------------------
359 This diagnostic is enabled by default.
361 **Diagnostic text:**
363 +-------------------------------------------------------------------------------------------------------------+
364 |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' casts have no effect when not using ARC`|
365 +-------------------------------------------------------------------------------------------------------------+
368 -Warc-maybe-repeated-use-of-weak
369 --------------------------------
370 **Diagnostic text:**
372 +---------------------------------------------------+-------------------------------+------------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+
373 |: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`|
374 |                                                   ||:diagtext:`variable`         ||                                                                                          ||:diagtext:`function`||                                                                                                             |
375 |                                                   |+-----------------------------+|                                                                                          |+--------------------+|                                                                                                             |
376 |                                                   ||:diagtext:`property`         ||                                                                                          ||:diagtext:`method`  ||                                                                                                             |
377 |                                                   |+-----------------------------+|                                                                                          |+--------------------+|                                                                                                             |
378 |                                                   ||:diagtext:`implicit property`||                                                                                          ||:diagtext:`block`   ||                                                                                                             |
379 |                                                   |+-----------------------------+|                                                                                          |+--------------------+|                                                                                                             |
380 |                                                   ||:diagtext:`instance variable`||                                                                                          ||:diagtext:`lambda`  ||                                                                                                             |
381 |                                                   |+-----------------------------+|                                                                                          |+--------------------+|                                                                                                             |
382 +---------------------------------------------------+-------------------------------+------------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+
385 -Warc-non-pod-memaccess
386 -----------------------
387 This diagnostic is enabled by default.
389 **Diagnostic text:**
391 +---------------------------+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
392 |:warning:`warning:` |nbsp| |+---------------------------+| |nbsp| :diagtext:`this` |nbsp| :placeholder:`B` |nbsp| :diagtext:`call is a pointer to ownership-qualified type` |nbsp| :placeholder:`C`|
393 |                           ||:diagtext:`destination for`||                                                                                                                                         |
394 |                           |+---------------------------+|                                                                                                                                         |
395 |                           ||:diagtext:`source of`      ||                                                                                                                                         |
396 |                           |+---------------------------+|                                                                                                                                         |
397 +---------------------------+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
400 -Warc-performSelector-leaks
401 ---------------------------
402 This diagnostic is enabled by default.
404 **Diagnostic text:**
406 +-------------------------------------------------------------------------------------------------------+
407 |:warning:`warning:` |nbsp| :diagtext:`performSelector may cause a leak because its selector is unknown`|
408 +-------------------------------------------------------------------------------------------------------+
411 -Warc-repeated-use-of-weak
412 --------------------------
413 Also controls `-Warc-maybe-repeated-use-of-weak`_.
415 **Diagnostic text:**
417 +---------------------------------------------------+-------------------------------+--------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+
418 |: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`|
419 |                                                   ||:diagtext:`variable`         ||                                                                                      ||:diagtext:`function`||                                                                                                             |
420 |                                                   |+-----------------------------+|                                                                                      |+--------------------+|                                                                                                             |
421 |                                                   ||:diagtext:`property`         ||                                                                                      ||:diagtext:`method`  ||                                                                                                             |
422 |                                                   |+-----------------------------+|                                                                                      |+--------------------+|                                                                                                             |
423 |                                                   ||:diagtext:`implicit property`||                                                                                      ||:diagtext:`block`   ||                                                                                                             |
424 |                                                   |+-----------------------------+|                                                                                      |+--------------------+|                                                                                                             |
425 |                                                   ||:diagtext:`instance variable`||                                                                                      ||:diagtext:`lambda`  ||                                                                                                             |
426 |                                                   |+-----------------------------+|                                                                                      |+--------------------+|                                                                                                             |
427 +---------------------------------------------------+-------------------------------+--------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+
430 -Warc-retain-cycles
431 -------------------
432 This diagnostic is enabled by default.
434 **Diagnostic text:**
436 +------------------------------------------------------------------------------------------------------------------------------------------------------+
437 |:warning:`warning:` |nbsp| :diagtext:`capturing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`strongly in this block is likely to lead to a retain cycle`|
438 +------------------------------------------------------------------------------------------------------------------------------------------------------+
441 -Warc-unsafe-retained-assign
442 ----------------------------
443 This diagnostic is enabled by default.
445 **Diagnostic text:**
447 +--------------------------------------------------------+---------------------------------+-------------------------------------+----------------------+------------------------------------------------------+
448 |:warning:`warning:` |nbsp| :diagtext:`assigning` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`to a weak` |nbsp| |+--------------------+|:diagtext:`; object will be released after assignment`|
449 |                                                        ||:diagtext:`array literal`      ||                                     ||:diagtext:`property`||                                                      |
450 |                                                        |+-------------------------------+|                                     |+--------------------+|                                                      |
451 |                                                        ||:diagtext:`dictionary literal` ||                                     ||:diagtext:`variable`||                                                      |
452 |                                                        |+-------------------------------+|                                     |+--------------------+|                                                      |
453 |                                                        ||:diagtext:`numeric literal`    ||                                     |                      |                                                      |
454 |                                                        |+-------------------------------+|                                     |                      |                                                      |
455 |                                                        ||:diagtext:`boxed expression`   ||                                     |                      |                                                      |
456 |                                                        |+-------------------------------+|                                     |                      |                                                      |
457 |                                                        ||:diagtext:`<should not happen>`||                                     |                      |                                                      |
458 |                                                        |+-------------------------------+|                                     |                      |                                                      |
459 |                                                        ||:diagtext:`block literal`      ||                                     |                      |                                                      |
460 |                                                        |+-------------------------------+|                                     |                      |                                                      |
461 +--------------------------------------------------------+---------------------------------+-------------------------------------+----------------------+------------------------------------------------------+
463 +---------------------------------------------------------------------------+--------------------------------+--------+----------------------+------------------------------------------------------+
464 |:warning:`warning:` |nbsp| :diagtext:`assigning retained object to` |nbsp| |+------------------------------+| |nbsp| |+--------------------+|:diagtext:`; object will be released after assignment`|
465 |                                                                           ||:diagtext:`weak`              ||        ||:diagtext:`property`||                                                      |
466 |                                                                           |+------------------------------+|        |+--------------------+|                                                      |
467 |                                                                           ||:diagtext:`unsafe\_unretained`||        ||:diagtext:`variable`||                                                      |
468 |                                                                           |+------------------------------+|        |+--------------------+|                                                      |
469 +---------------------------------------------------------------------------+--------------------------------+--------+----------------------+------------------------------------------------------+
471 +-----------------------------------------------------------------------------------------------------------------------------+
472 |:warning:`warning:` |nbsp| :diagtext:`assigning retained object to unsafe property; object will be released after assignment`|
473 +-----------------------------------------------------------------------------------------------------------------------------+
476 -Warray-bounds
477 --------------
478 This diagnostic is enabled by default.
480 **Diagnostic text:**
482 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+
483 |: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:`)`|
484 |                                                                                                                                                                                             ||             ||             |
485 |                                                                                                                                                                                             |+-------------+|             |
486 |                                                                                                                                                                                             ||:diagtext:`s`||             |
487 |                                                                                                                                                                                             |+-------------+|             |
488 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+
490 +----------------------------------------------------------------------------------------------------------------------------------+
491 |:warning:`warning:` |nbsp| :diagtext:`array index` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is before the beginning of the array`|
492 +----------------------------------------------------------------------------------------------------------------------------------+
494 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
495 |:warning:`warning:` |nbsp| :diagtext:`array argument is too small; contains` |nbsp| :placeholder:`A` |nbsp| :diagtext:`elements, callee requires at least` |nbsp| :placeholder:`B`|
496 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
498 +-----------------------------------------------------------------------------------+
499 |:warning:`warning:` |nbsp| :diagtext:`'static' has no effect on zero-length arrays`|
500 +-----------------------------------------------------------------------------------+
503 -Warray-bounds-pointer-arithmetic
504 ---------------------------------
505 **Diagnostic text:**
507 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+
508 |: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:`)`|
509 |                                                                                                                                                                                                               ||             ||             |
510 |                                                                                                                                                                                                               |+-------------+|             |
511 |                                                                                                                                                                                                               ||:diagtext:`s`||             |
512 |                                                                                                                                                                                                               |+-------------+|             |
513 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+
515 +-----------------------------------------------------------------------------------------------------------------------------------------------------+
516 |:warning:`warning:` |nbsp| :diagtext:`the pointer decremented by` |nbsp| :placeholder:`A` |nbsp| :diagtext:`refers before the beginning of the array`|
517 +-----------------------------------------------------------------------------------------------------------------------------------------------------+
520 -Wasm
521 -----
522 This diagnostic is enabled by default.
524 Controls `-Wasm-ignored-qualifier`_, `-Wasm-operand-widths`_.
527 -Wasm-ignored-qualifier
528 -----------------------
529 This diagnostic is enabled by default.
531 **Diagnostic text:**
533 +----------------------------------------------------------------------------------------------------------+
534 |:warning:`warning:` |nbsp| :diagtext:`ignored` |nbsp| :placeholder:`A` |nbsp| :diagtext:`qualifier on asm`|
535 +----------------------------------------------------------------------------------------------------------+
537 +-------------------------------------------------------------------------------------+
538 |:warning:`warning:` |nbsp| :diagtext:`meaningless 'volatile' on asm outside function`|
539 +-------------------------------------------------------------------------------------+
542 -Wasm-operand-widths
543 --------------------
544 This diagnostic is enabled by default.
546 **Diagnostic text:**
548 +-----------------------------------------------------------------------------------------------------------------------+
549 |:warning:`warning:` |nbsp| :diagtext:`value size does not match register size specified by the constraint and modifier`|
550 +-----------------------------------------------------------------------------------------------------------------------+
553 -Wassign-enum
554 -------------
555 **Diagnostic text:**
557 +---------------------------------------------------------------------------------------------------------------+
558 |:warning:`warning:` |nbsp| :diagtext:`integer constant not in range of enumerated type` |nbsp| :placeholder:`A`|
559 +---------------------------------------------------------------------------------------------------------------+
562 -Wassume
563 --------
564 This diagnostic is enabled by default.
566 **Diagnostic text:**
568 +-----------------------------------------------------------------------------------------------------------------------------------------+
569 |:warning:`warning:` |nbsp| :diagtext:`the argument to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has side effects that will be discarded`|
570 +-----------------------------------------------------------------------------------------------------------------------------------------+
573 -Wat-protocol
574 -------------
575 This diagnostic is enabled by default.
577 **Diagnostic text:**
579 +-------------------------------------------------------------------------------------------------------------------+
580 |:warning:`warning:` |nbsp| :diagtext:`@protocol is using a forward protocol declaration of` |nbsp| :placeholder:`A`|
581 +-------------------------------------------------------------------------------------------------------------------+
584 -Watomic-memory-ordering
585 ------------------------
586 This diagnostic is enabled by default.
588 **Diagnostic text:**
590 +-------------------------------------------------------------------------------------------+
591 |:warning:`warning:` |nbsp| :diagtext:`memory order argument to atomic operation is invalid`|
592 +-------------------------------------------------------------------------------------------+
595 -Watomic-properties
596 -------------------
597 Controls `-Wcustom-atomic-properties`_, `-Wimplicit-atomic-properties`_.
600 -Watomic-property-with-user-defined-accessor
601 --------------------------------------------
602 This diagnostic is enabled by default.
604 **Diagnostic text:**
606 +--------------------------------------------------------------------------------------------------------------------------------------------+--------------------+-----------------------------------------------+--------------------+
607 |:warning:`warning:` |nbsp| :diagtext:`writable atomic property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot pair a synthesized` |nbsp| |+------------------+| |nbsp| :diagtext:`with a user defined` |nbsp| |+------------------+|
608 |                                                                                                                                            ||:diagtext:`getter`||                                               ||:diagtext:`getter`||
609 |                                                                                                                                            |+------------------+|                                               |+------------------+|
610 |                                                                                                                                            ||:diagtext:`setter`||                                               ||:diagtext:`setter`||
611 |                                                                                                                                            |+------------------+|                                               |+------------------+|
612 +--------------------------------------------------------------------------------------------------------------------------------------------+--------------------+-----------------------------------------------+--------------------+
615 -Wattribute-packed-for-bitfield
616 -------------------------------
617 This diagnostic is enabled by default.
619 **Diagnostic text:**
621 +-------------------------------------------------------------------------------------------------------------------------------------------------+
622 |:warning:`warning:` |nbsp| :diagtext:`'packed' attribute was ignored on bit-fields with single-byte alignment in older versions of GCC and Clang`|
623 +-------------------------------------------------------------------------------------------------------------------------------------------------+
626 -Wattributes
627 ------------
628 This diagnostic is enabled by default.
630 Controls `-Wignored-attributes`_, `-Wunknown-attributes`_.
633 -Wauto-disable-vptr-sanitizer
634 -----------------------------
635 This diagnostic is enabled by default.
637 **Diagnostic text:**
639 +------------------------------------------------------------------------------------------------------+
640 |:warning:`warning:` |nbsp| :diagtext:`implicitly disabling vptr sanitizer because rtti wasn't enabled`|
641 +------------------------------------------------------------------------------------------------------+
644 -Wauto-import
645 -------------
646 **Diagnostic text:**
648 +-------------------------------------------------+---------------------------------+-------------------------------------------------------------------------+
649 |:warning:`warning:` |nbsp| :diagtext:`treating #`|+-------------------------------+| |nbsp| :diagtext:`as an import of module '`:placeholder:`B`:diagtext:`'`|
650 |                                                 ||:diagtext:`include`            ||                                                                         |
651 |                                                 |+-------------------------------+|                                                                         |
652 |                                                 ||:diagtext:`import`             ||                                                                         |
653 |                                                 |+-------------------------------+|                                                                         |
654 |                                                 ||:diagtext:`include\_next`      ||                                                                         |
655 |                                                 |+-------------------------------+|                                                                         |
656 |                                                 ||:diagtext:`\_\_include\_macros`||                                                                         |
657 |                                                 |+-------------------------------+|                                                                         |
658 +-------------------------------------------------+---------------------------------+-------------------------------------------------------------------------+
661 -Wauto-storage-class
662 --------------------
663 This diagnostic is enabled by default.
665 **Diagnostic text:**
667 +---------------------------------------------------------------------------------------------------------------------------------------------+
668 |:warning:`warning:` |nbsp| :diagtext:`'auto' storage class specifier is not permitted in C++11, and will not be supported in future releases`|
669 +---------------------------------------------------------------------------------------------------------------------------------------------+
672 -Wauto-var-id
673 -------------
674 This diagnostic is enabled by default.
676 **Diagnostic text:**
678 +-------------------------------------------------------------------------------------------------------+
679 |:warning:`warning:` |nbsp| :diagtext:`'auto' deduced as 'id' in declaration of` |nbsp| :placeholder:`A`|
680 +-------------------------------------------------------------------------------------------------------+
683 -Wavailability
684 --------------
685 This diagnostic is enabled by default.
687 **Diagnostic text:**
689 +--------------------------------------------------------------------------------------------------------------+
690 |:warning:`warning:` |nbsp| :diagtext:`'unavailable' availability overrides all other availability information`|
691 +--------------------------------------------------------------------------------------------------------------+
693 +------------------------------------------------------------------------------------------------------------------------+
694 |:warning:`warning:` |nbsp| :diagtext:`unknown platform` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in availability macro`|
695 +------------------------------------------------------------------------------------------------------------------------+
697 +----------------------------------------------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------------------------+------------------------+-------------------------------------------------------------------------------------+
698 |: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`|
699 |                                                                ||:diagtext:`introduced`||                                                                                                                                          ||:diagtext:`introduced`||                                                                                     |
700 |                                                                |+----------------------+|                                                                                                                                          |+----------------------+|                                                                                     |
701 |                                                                ||:diagtext:`deprecated`||                                                                                                                                          ||:diagtext:`deprecated`||                                                                                     |
702 |                                                                |+----------------------+|                                                                                                                                          |+----------------------+|                                                                                     |
703 |                                                                ||:diagtext:`obsoleted` ||                                                                                                                                          ||:diagtext:`obsoleted` ||                                                                                     |
704 |                                                                |+----------------------+|                                                                                                                                          |+----------------------+|                                                                                     |
705 +----------------------------------------------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------------------------+------------------------+-------------------------------------------------------------------------------------+
707 +---------------------------------------------------------------------------------------------------------------------------+
708 |:warning:`warning:` |nbsp| :diagtext:`use same version number separators '\_' or '.'; as in 'major\[.minor\[.subminor\]\]'`|
709 +---------------------------------------------------------------------------------------------------------------------------+
711 +---------------------------------------------------------------------------------------+
712 |:warning:`warning:` |nbsp| :diagtext:`availability does not match previous declaration`|
713 +---------------------------------------------------------------------------------------+
715 +---------------------------+--------------------------------+--------------------------+-------------------------------+--------+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
716 |:warning:`warning:` |nbsp| |+------------------------------+|:diagtext:`method` |nbsp| |+-----------------------------+| |nbsp| |+---------------------------------------------+| |nbsp| :diagtext:`on` |nbsp| :placeholder:`B` |nbsp| :diagtext:`(`:placeholder:`C` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`D`:diagtext:`)`|
717 |                           ||                              ||                          ||:diagtext:`introduced after` ||        ||:diagtext:`the protocol method it implements`||                                                                                                                                               |
718 |                           |+------------------------------+|                          |+-----------------------------+|        |+---------------------------------------------+|                                                                                                                                               |
719 |                           ||:diagtext:`overriding` |nbsp| ||                          ||:diagtext:`deprecated before`||        ||:diagtext:`overridden method`                ||                                                                                                                                               |
720 |                           |+------------------------------+|                          |+-----------------------------+|        |+---------------------------------------------+|                                                                                                                                               |
721 |                           |                                |                          ||:diagtext:`obsoleted before` ||        |                                               |                                                                                                                                               |
722 |                           |                                |                          |+-----------------------------+|        |                                               |                                                                                                                                               |
723 +---------------------------+--------------------------------+--------------------------+-------------------------------+--------+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
725 +---------------------------+--------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------+--------------------------------+
726 |:warning:`warning:` |nbsp| |+------------------------------+|:diagtext:`method cannot be unavailable on` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when` |nbsp| |+---------------------------------------------+| |nbsp| :diagtext:`is available`|
727 |                           ||                              ||                                                                                                   ||:diagtext:`the protocol method it implements`||                                |
728 |                           |+------------------------------+|                                                                                                   |+---------------------------------------------+|                                |
729 |                           ||:diagtext:`overriding` |nbsp| ||                                                                                                   ||:diagtext:`its overridden method`            ||                                |
730 |                           |+------------------------------+|                                                                                                   |+---------------------------------------------+|                                |
731 +---------------------------+--------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------+--------------------------------+
734 -Wbackend-plugin
735 ----------------
736 This diagnostic is enabled by default.
738 **Diagnostic text:**
740 The text of this diagnostic is not controlled by Clang.
743 -Wbackslash-newline-escape
744 --------------------------
745 This diagnostic is enabled by default.
747 **Diagnostic text:**
749 +-------------------------------------------------------------------------------+
750 |:warning:`warning:` |nbsp| :diagtext:`backslash and newline separated by space`|
751 +-------------------------------------------------------------------------------+
754 -Wbad-function-cast
755 -------------------
756 **Diagnostic text:**
758 +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
759 |:warning:`warning:` |nbsp| :diagtext:`cast from function call of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to non-matching type` |nbsp| :placeholder:`B`|
760 +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
763 -Wbinary-literal
764 ----------------
765 Controls `-Wc++14-binary-literal`_, `-Wc++98-c++11-compat-binary-literal`_, `-Wgnu-binary-literal`_.
768 -Wbind-to-temporary-copy
769 ------------------------
770 Also controls `-Wc++98-compat-bind-to-temporary-copy`_.
772 **Diagnostic text:**
774 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+
775 |: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| |+---------------------+|
776 |                                                                                                                                                                                              ||:diagtext:`private`  ||
777 |                                                                                                                                                                                              |+---------------------+|
778 |                                                                                                                                                                                              ||:diagtext:`protected`||
779 |                                                                                                                                                                                              |+---------------------+|
780 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+
782 +--------------------------------------------------------------------+-----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
783 |: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`|
784 |                                                                    ||:diagtext:`copying variable`           ||                                                                                                                                          |
785 |                                                                    |+---------------------------------------+|                                                                                                                                          |
786 |                                                                    ||:diagtext:`copying parameter`          ||                                                                                                                                          |
787 |                                                                    |+---------------------------------------+|                                                                                                                                          |
788 |                                                                    ||:diagtext:`returning object`           ||                                                                                                                                          |
789 |                                                                    |+---------------------------------------+|                                                                                                                                          |
790 |                                                                    ||:diagtext:`throwing object`            ||                                                                                                                                          |
791 |                                                                    |+---------------------------------------+|                                                                                                                                          |
792 |                                                                    ||:diagtext:`copying member subobject`   ||                                                                                                                                          |
793 |                                                                    |+---------------------------------------+|                                                                                                                                          |
794 |                                                                    ||:diagtext:`copying array element`      ||                                                                                                                                          |
795 |                                                                    |+---------------------------------------+|                                                                                                                                          |
796 |                                                                    ||:diagtext:`allocating object`          ||                                                                                                                                          |
797 |                                                                    |+---------------------------------------+|                                                                                                                                          |
798 |                                                                    ||:diagtext:`copying temporary`          ||                                                                                                                                          |
799 |                                                                    |+---------------------------------------+|                                                                                                                                          |
800 |                                                                    ||:diagtext:`initializing base subobject`||                                                                                                                                          |
801 |                                                                    |+---------------------------------------+|                                                                                                                                          |
802 |                                                                    ||:diagtext:`initializing vector element`||                                                                                                                                          |
803 |                                                                    |+---------------------------------------+|                                                                                                                                          |
804 |                                                                    ||:diagtext:`capturing value`            ||                                                                                                                                          |
805 |                                                                    |+---------------------------------------+|                                                                                                                                          |
806 +--------------------------------------------------------------------+-----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
809 -Wbitfield-constant-conversion
810 ------------------------------
811 This diagnostic is enabled by default.
813 **Diagnostic text:**
815 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
816 |: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`|
817 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
820 -Wbitfield-enum-conversion
821 --------------------------
822 **Diagnostic text:**
824 +------------------------------------------------------------------------------------------------------------------------------------------------------------------+
825 |:warning:`warning:` |nbsp| :diagtext:`bit-field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not wide enough to store all enumerators of` |nbsp| :placeholder:`B`|
826 +------------------------------------------------------------------------------------------------------------------------------------------------------------------+
828 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
829 |: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`|
830 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
832 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
833 |: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`|
834 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
837 -Wbitfield-width
838 ----------------
839 This diagnostic is enabled by default.
841 **Diagnostic text:**
843 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+
844 |: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`|+-------------+|
845 |                                                                                                                                                                                                                   ||             ||
846 |                                                                                                                                                                                                                   |+-------------+|
847 |                                                                                                                                                                                                                   ||:diagtext:`s`||
848 |                                                                                                                                                                                                                   |+-------------+|
849 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+
851 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+
852 |: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`|+-------------+|
853 |                                                                                                                                                                                                                                                        ||             ||
854 |                                                                                                                                                                                                                                                        |+-------------+|
855 |                                                                                                                                                                                                                                                        ||:diagtext:`s`||
856 |                                                                                                                                                                                                                                                        |+-------------+|
857 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+
860 -Wbitwise-op-parentheses
861 ------------------------
862 This diagnostic is enabled by default.
864 **Diagnostic text:**
866 +-----------------------------------------------------------------------------------------------------------+
867 |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' within '`:placeholder:`B`:diagtext:`'`|
868 +-----------------------------------------------------------------------------------------------------------+
871 -Wblock-capture-autoreleasing
872 -----------------------------
873 This diagnostic is enabled by default.
875 **Diagnostic text:**
877 +-----------------------------------------------------------------------------------------------------------------------------+
878 |:warning:`warning:` |nbsp| :diagtext:`block captures an autoreleasing out-parameter, which may result in use-after-free bugs`|
879 +-----------------------------------------------------------------------------------------------------------------------------+
882 -Wbool-conversion
883 -----------------
884 This diagnostic is enabled by default.
886 Also controls `-Wpointer-bool-conversion`_, `-Wundefined-bool-conversion`_.
888 **Diagnostic text:**
890 +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
891 |:warning:`warning:` |nbsp| :diagtext:`initialization of pointer of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to null from a constant boolean expression`|
892 +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
895 -Wbool-conversions
896 ------------------
897 Synonym for `-Wbool-conversion`_.
900 -Wbraced-scalar-init
901 --------------------
902 This diagnostic is enabled by default.
904 **Diagnostic text:**
906 +-----------------------------------------------------------------------+
907 |:warning:`warning:` |nbsp| :diagtext:`braces around scalar initializer`|
908 +-----------------------------------------------------------------------+
911 -Wbridge-cast
912 -------------
913 This diagnostic is enabled by default.
915 **Diagnostic text:**
917 +------------------------------------------------------------------------------------------------------------------------------------------+
918 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bridges to` |nbsp| :placeholder:`B`:diagtext:`, not` |nbsp| :placeholder:`C`|
919 +------------------------------------------------------------------------------------------------------------------------------------------+
921 +-------------------------------------------------------------------------------------------------------+
922 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot bridge to` |nbsp| :placeholder:`B`|
923 +-------------------------------------------------------------------------------------------------------+
926 -Wbuiltin-macro-redefined
927 -------------------------
928 This diagnostic is enabled by default.
930 **Diagnostic text:**
932 +---------------------------------------------------------------+
933 |:warning:`warning:` |nbsp| :diagtext:`redefining builtin macro`|
934 +---------------------------------------------------------------+
936 +---------------------------------------------------------------+
937 |:warning:`warning:` |nbsp| :diagtext:`undefining builtin macro`|
938 +---------------------------------------------------------------+
941 -Wbuiltin-memcpy-chk-size
942 -------------------------
943 This diagnostic is enabled by default.
945 **Diagnostic text:**
947 +------------------------------------------------------------------------------------------------------+
948 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will always overflow destination buffer`|
949 +------------------------------------------------------------------------------------------------------+
952 -Wbuiltin-requires-header
953 -------------------------
954 This diagnostic is enabled by default.
956 **Diagnostic text:**
958 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
959 |:warning:`warning:` |nbsp| :diagtext:`declaration of built-in function '`:placeholder:`B`:diagtext:`' requires inclusion of the header <`:placeholder:`A`:diagtext:`>`|
960 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
963 -Wc++-compat
964 ------------
965 **Diagnostic text:**
967 +---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+
968 |:warning:`warning:` |nbsp| |+-------------------------+|+------------------+| |nbsp| :diagtext:`has size 0 in C,` |nbsp| |+-------------------------+| |nbsp| :diagtext:`in C++`|
969 |                           ||                         |||:diagtext:`struct`||                                            ||:diagtext:`size 1`       ||                          |
970 |                           |+-------------------------+|+------------------+|                                            |+-------------------------+|                          |
971 |                           ||:diagtext:`empty` |nbsp| |||:diagtext:`union` ||                                            ||:diagtext:`non-zero size`||                          |
972 |                           |+-------------------------+|+------------------+|                                            |+-------------------------+|                          |
973 +---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+
976 -Wc++0x-compat
977 --------------
978 Synonym for `-Wc++11-compat`_.
981 -Wc++0x-extensions
982 ------------------
983 Synonym for `-Wc++11-extensions`_.
986 -Wc++0x-narrowing
987 -----------------
988 Synonym for `-Wc++11-narrowing`_.
991 -Wc++11-compat
992 --------------
993 Some of the diagnostics controlled by this flag are enabled by default.
995 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`_.
997 **Diagnostic text:**
999 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+
1000 |: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`|
1001 |                                                                                                                                                                                                                 ||:diagtext:`have type 'long long'`||                                    |
1002 |                                                                                                                                                                                                                 |+---------------------------------+|                                    |
1003 |                                                                                                                                                                                                                 ||:diagtext:`be ill-formed`        ||                                    |
1004 |                                                                                                                                                                                                                 |+---------------------------------+|                                    |
1005 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+
1007 +--------------------------------------------------------------------------------------------------------------+
1008 |:warning:`warning:` |nbsp| :diagtext:`'auto' storage class specifier is redundant and incompatible with C++11`|
1009 +--------------------------------------------------------------------------------------------------------------+
1011 +-------------------------------------------------------------------------------------------------------------------------+
1012 |:warning:`warning:` |nbsp| :diagtext:`identifier after literal will be treated as a user-defined literal suffix in C++11`|
1013 +-------------------------------------------------------------------------------------------------------------------------+
1015 +-------------------------------------------------------------------------------------------+
1016 |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is a keyword in C++11`|
1017 +-------------------------------------------------------------------------------------------+
1019 +--------------------------------------------------------------------------------------------------------------------------------+
1020 |:warning:`warning:` |nbsp| :diagtext:`use of right-shift operator ('>>') in template argument will require parentheses in C++11`|
1021 +--------------------------------------------------------------------------------------------------------------------------------+
1023 +--------------------------------------------------------------------------------+
1024 |:warning:`warning:` |nbsp| :diagtext:`explicit instantiation cannot be 'inline'`|
1025 +--------------------------------------------------------------------------------+
1027 +--------------------------------------------------------------------------------------------------------------------------------------+
1028 |:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`must occur at global scope`|
1029 +--------------------------------------------------------------------------------------------------------------------------------------+
1031 +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
1032 |:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not in a namespace enclosing` |nbsp| :placeholder:`B`|
1033 +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
1035 +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
1036 |:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`must occur in namespace` |nbsp| :placeholder:`B`|
1037 +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
1039 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+
1040 |: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`|
1041 |                                                                                                                                                                          ||:diagtext:`have type 'long long'`||                                    |
1042 |                                                                                                                                                                          |+---------------------------------+|                                    |
1043 |                                                                                                                                                                          ||:diagtext:`be ill-formed`        ||                                    |
1044 |                                                                                                                                                                          |+---------------------------------+|                                    |
1045 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+
1048 -Wc++11-compat-deprecated-writable-strings
1049 ------------------------------------------
1050 This diagnostic is enabled by default.
1052 **Diagnostic text:**
1054 +---------------------------------------------------------------------------------------------------------------------------------+
1055 |:warning:`warning:` |nbsp| :diagtext:`conversion from string literal to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated`|
1056 +---------------------------------------------------------------------------------------------------------------------------------+
1059 -Wc++11-compat-pedantic
1060 -----------------------
1061 Some of the diagnostics controlled by this flag are enabled by default.
1063 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`_.
1066 -Wc++11-compat-reserved-user-defined-literal
1067 --------------------------------------------
1068 **Diagnostic text:**
1070 +----------------------------------------------------------------------------------------------------------------------------------+
1071 |:warning:`warning:` |nbsp| :diagtext:`identifier after literal will be treated as a reserved user-defined literal suffix in C++11`|
1072 +----------------------------------------------------------------------------------------------------------------------------------+
1075 -Wc++11-extensions
1076 ------------------
1077 Some of the diagnostics controlled by this flag are enabled by default.
1079 Also controls `-Wc++11-extra-semi`_, `-Wc++11-inline-namespace`_, `-Wc++11-long-long`_.
1081 **Diagnostic text:**
1083 +-------------------------------------------------------------------------------+
1084 |:warning:`warning:` |nbsp| :diagtext:`alias declarations are a C++11 extension`|
1085 +-------------------------------------------------------------------------------+
1087 +---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+
1088 |: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`|
1089 |                                                                                                                                                   ||:diagtext:`integral`   ||                                                                                        |
1090 |                                                                                                                                                   |+-----------------------+|                                                                                        |
1091 |                                                                                                                                                   ||:diagtext:`enumeration`||                                                                                        |
1092 |                                                                                                                                                   |+-----------------------+|                                                                                        |
1093 +---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+
1095 +---------------------------------------------------------------------------------+
1096 |:warning:`warning:` |nbsp| :diagtext:`'auto' type specifier is a C++11 extension`|
1097 +---------------------------------------------------------------------------------+
1099 +-----------------------------------------------------------------------------------------------------------+
1100 |:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a C++11 extension`|
1101 +-----------------------------------------------------------------------------------------------------------+
1103 +---------------------------+-----------------------+--------------------------------------------------------------+
1104 |:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`function definitions are a C++11 extension`|
1105 |                           ||:diagtext:`defaulted`||                                                              |
1106 |                           |+---------------------+|                                                              |
1107 |                           ||:diagtext:`deleted`  ||                                                              |
1108 |                           |+---------------------+|                                                              |
1109 +---------------------------+-----------------------+--------------------------------------------------------------+
1111 +-----------------------------------------------------------------------------------------------------------------------------------+
1112 |:warning:`warning:` |nbsp| :diagtext:`befriending enumeration type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C++11 extension`|
1113 +-----------------------------------------------------------------------------------------------------------------------------------+
1115 +--------------------------------------------------------------------------------------------------+
1116 |:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C++11 extension`|
1117 +--------------------------------------------------------------------------------------------------+
1119 +------------------------------------------------------------------------------------------+
1120 |:warning:`warning:` |nbsp| :diagtext:`explicit conversion functions are a C++11 extension`|
1121 +------------------------------------------------------------------------------------------+
1123 +-----------------------------------------------------------------------------+
1124 |:warning:`warning:` |nbsp| :diagtext:`extern templates are a C++11 extension`|
1125 +-----------------------------------------------------------------------------+
1127 +--------------------------------------------------------------------------------+
1128 |:warning:`warning:` |nbsp| :diagtext:`range-based for loop is a C++11 extension`|
1129 +--------------------------------------------------------------------------------+
1131 +------------------------------------------------------------------------------------------+
1132 |:warning:`warning:` |nbsp| :diagtext:`generalized initializer lists are a C++11 extension`|
1133 +------------------------------------------------------------------------------------------+
1135 +---------------------------------------------------------------------------------------------------------+
1136 |:warning:`warning:` |nbsp| :diagtext:`use of enumeration in a nested name specifier is a C++11 extension`|
1137 +---------------------------------------------------------------------------------------------------------+
1139 +----------------------------------------------------------------------------------------------------------------------------+
1140 |:warning:`warning:` |nbsp| :diagtext:`non-class friend type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C++11 extension`|
1141 +----------------------------------------------------------------------------------------------------------------------------+
1143 +-------------------------------------------------------------------------------------------------------------+
1144 |:warning:`warning:` |nbsp| :diagtext:`in-class initialization of non-static data member is a C++11 extension`|
1145 +-------------------------------------------------------------------------------------------------------------+
1147 +--------------------------------------------------------------------------------------------------+
1148 |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' keyword is a C++11 extension`|
1149 +--------------------------------------------------------------------------------------------------+
1151 +----------------------------------------------------------------------------------------------+
1152 |:warning:`warning:` |nbsp| :diagtext:`reference qualifiers on functions are a C++11 extension`|
1153 +----------------------------------------------------------------------------------------------+
1155 +------------------------------------------------------------------------------+
1156 |:warning:`warning:` |nbsp| :diagtext:`rvalue references are a C++11 extension`|
1157 +------------------------------------------------------------------------------+
1159 +--------------------------------------------------------------------------------+
1160 |:warning:`warning:` |nbsp| :diagtext:`scoped enumerations are a C++11 extension`|
1161 +--------------------------------------------------------------------------------+
1163 +----------------------------------------------------------------------------------------------------------------------------------+
1164 |:warning:`warning:` |nbsp| :diagtext:`static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in union is a C++11 extension`|
1165 +----------------------------------------------------------------------------------------------------------------------------------+
1167 +--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------+
1168 |:warning:`warning:` |nbsp| :diagtext:`non-type template argument referring to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with internal linkage is a C++11 extension`|
1169 |                                                                                      ||:diagtext:`function`||                                                                                      |
1170 |                                                                                      |+--------------------+|                                                                                      |
1171 |                                                                                      ||:diagtext:`object`  ||                                                                                      |
1172 |                                                                                      |+--------------------+|                                                                                      |
1173 +--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------+
1175 +-------------------------------------------------------------------------------+
1176 |:warning:`warning:` |nbsp| :diagtext:`'template' keyword outside of a template`|
1177 +-------------------------------------------------------------------------------+
1179 +---------------------------------------------------------------------------------------------------------------+
1180 |:warning:`warning:` |nbsp| :diagtext:`default template arguments for a function template are a C++11 extension`|
1181 +---------------------------------------------------------------------------------------------------------------+
1183 +-------------------------------------------------------------------+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1184 |:warning:`warning:` |nbsp| :diagtext:`first declaration of` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`specialization of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`outside namespace` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is a C++11 extension`|
1185 |                                                                   ||:diagtext:`class template`           ||                                                                                                                                                                  |
1186 |                                                                   |+-------------------------------------+|                                                                                                                                                                  |
1187 |                                                                   ||:diagtext:`class template partial`   ||                                                                                                                                                                  |
1188 |                                                                   |+-------------------------------------+|                                                                                                                                                                  |
1189 |                                                                   ||:diagtext:`variable template`        ||                                                                                                                                                                  |
1190 |                                                                   |+-------------------------------------+|                                                                                                                                                                  |
1191 |                                                                   ||:diagtext:`variable template partial`||                                                                                                                                                                  |
1192 |                                                                   |+-------------------------------------+|                                                                                                                                                                  |
1193 |                                                                   ||:diagtext:`function template`        ||                                                                                                                                                                  |
1194 |                                                                   |+-------------------------------------+|                                                                                                                                                                  |
1195 |                                                                   ||:diagtext:`member function`          ||                                                                                                                                                                  |
1196 |                                                                   |+-------------------------------------+|                                                                                                                                                                  |
1197 |                                                                   ||:diagtext:`static data member`       ||                                                                                                                                                                  |
1198 |                                                                   |+-------------------------------------+|                                                                                                                                                                  |
1199 |                                                                   ||:diagtext:`member class`             ||                                                                                                                                                                  |
1200 |                                                                   |+-------------------------------------+|                                                                                                                                                                  |
1201 |                                                                   ||:diagtext:`member enumeration`       ||                                                                                                                                                                  |
1202 |                                                                   |+-------------------------------------+|                                                                                                                                                                  |
1203 +-------------------------------------------------------------------+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1205 +------------------------------------------------------------------------------+
1206 |:warning:`warning:` |nbsp| :diagtext:`'typename' occurs outside of a template`|
1207 +------------------------------------------------------------------------------+
1209 +------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------+
1210 |:warning:`warning:` |nbsp| :diagtext:`unelaborated friend declaration is a C++11 extension; specify '`|+---------------------+|:diagtext:`' to befriend` |nbsp| :placeholder:`B`|
1211 |                                                                                                      ||:diagtext:`struct`   ||                                                 |
1212 |                                                                                                      |+---------------------+|                                                 |
1213 |                                                                                                      ||:diagtext:`interface`||                                                 |
1214 |                                                                                                      |+---------------------+|                                                 |
1215 |                                                                                                      ||:diagtext:`union`    ||                                                 |
1216 |                                                                                                      |+---------------------+|                                                 |
1217 |                                                                                                      ||:diagtext:`class`    ||                                                 |
1218 |                                                                                                      |+---------------------+|                                                 |
1219 |                                                                                                      ||:diagtext:`enum`     ||                                                 |
1220 |                                                                                                      |+---------------------+|                                                 |
1221 +------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------+
1223 +-------------------------------------------------------------------------------+
1224 |:warning:`warning:` |nbsp| :diagtext:`variadic templates are a C++11 extension`|
1225 +-------------------------------------------------------------------------------+
1228 -Wc++11-extra-semi
1229 ------------------
1230 **Diagnostic text:**
1232 +-------------------------------------------------------------------------------------------+
1233 |:warning:`warning:` |nbsp| :diagtext:`extra ';' outside of a function is a C++11 extension`|
1234 +-------------------------------------------------------------------------------------------+
1237 -Wc++11-inline-namespace
1238 ------------------------
1239 This diagnostic is enabled by default.
1241 **Diagnostic text:**
1243 +----------------------------------------------------------------------------+
1244 |:warning:`warning:` |nbsp| :diagtext:`inline namespaces are a C++11 feature`|
1245 +----------------------------------------------------------------------------+
1248 -Wc++11-long-long
1249 -----------------
1250 **Diagnostic text:**
1252 +-----------------------------------------------------------------------+
1253 |:warning:`warning:` |nbsp| :diagtext:`'long long' is a C++11 extension`|
1254 +-----------------------------------------------------------------------+
1257 -Wc++11-narrowing
1258 -----------------
1259 Some of the diagnostics controlled by this flag are enabled by default.
1261 **Diagnostic text:**
1263 +-----------------------+----------------------------------------+--------+--------------------------------------------------------------------------------------------------------------------------+
1264 |:error:`error:` |nbsp| |+--------------------------------------+| |nbsp| |+------------------------------------------------------------------------------------------------------------------------+|
1265 |                       ||:diagtext:`case value`                ||        ||+--------------------------------------------------------------------------------------------------------------+        ||
1266 |                       |+--------------------------------------+|        |||:diagtext:`cannot be narrowed from type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`|        ||
1267 |                       ||:diagtext:`enumerator value`          ||        ||+--------------------------------------------------------------------------------------------------------------+        ||
1268 |                       |+--------------------------------------+|        |+------------------------------------------------------------------------------------------------------------------------+|
1269 |                       ||:diagtext:`non-type template argument`||        ||+----------------------------------------------------------------------------------------------------------------------+||
1270 |                       |+--------------------------------------+|        |||:diagtext:`evaluates to` |nbsp| :placeholder:`C`:diagtext:`, which cannot be narrowed to type` |nbsp| :placeholder:`D`|||
1271 |                       ||:diagtext:`array size`                ||        ||+----------------------------------------------------------------------------------------------------------------------+||
1272 |                       |+--------------------------------------+|        |+------------------------------------------------------------------------------------------------------------------------+|
1273 |                       ||:diagtext:`constexpr if condition`    ||        |                                                                                                                          |
1274 |                       |+--------------------------------------+|        |                                                                                                                          |
1275 +-----------------------+----------------------------------------+--------+--------------------------------------------------------------------------------------------------------------------------+
1277 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1278 |:error:`error:` |nbsp| :diagtext:`constant expression evaluates to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`which cannot be narrowed to type` |nbsp| :placeholder:`B`|
1279 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1281 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1282 |:error:`error:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be narrowed to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in initializer list`|
1283 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1285 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1286 |: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`|
1287 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1289 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1290 |: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`|
1291 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1293 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1294 |: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`|
1295 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1297 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1298 |: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`|
1299 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1302 -Wc++14-binary-literal
1303 ----------------------
1304 **Diagnostic text:**
1306 +------------------------------------------------------------------------------------+
1307 |:warning:`warning:` |nbsp| :diagtext:`binary integer literals are a C++14 extension`|
1308 +------------------------------------------------------------------------------------+
1311 -Wc++14-compat
1312 --------------
1313 Controls `-Wc++98-c++11-c++14-c++17-compat`_, `-Wc++98-c++11-c++14-compat`_.
1316 -Wc++14-compat-pedantic
1317 -----------------------
1318 Controls `-Wc++14-compat`_, `-Wc++98-c++11-c++14-c++17-compat-pedantic`_, `-Wc++98-c++11-c++14-compat-pedantic`_.
1321 -Wc++14-extensions
1322 ------------------
1323 Some of the diagnostics controlled by this flag are enabled by default.
1325 Also controls `-Wc++14-binary-literal`_.
1327 **Diagnostic text:**
1329 +-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
1330 |:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`|
1331 |                                                                                   ||:diagtext:`function`   ||                                        |
1332 |                                                                                   |+-----------------------+|                                        |
1333 |                                                                                   ||:diagtext:`constructor`||                                        |
1334 |                                                                                   |+-----------------------+|                                        |
1335 +-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
1337 +------------------------------------------------------------------------------------------------------------+
1338 |:warning:`warning:` |nbsp| :diagtext:`multiple return statements in constexpr function is a C++14 extension`|
1339 +------------------------------------------------------------------------------------------------------------+
1341 +----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
1342 |:warning:`warning:` |nbsp| :diagtext:`variable declaration in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`|
1343 |                                                                                  ||:diagtext:`function`   ||                                        |
1344 |                                                                                  |+-----------------------+|                                        |
1345 |                                                                                  ||:diagtext:`constructor`||                                        |
1346 |                                                                                  |+-----------------------+|                                        |
1347 +----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
1349 +-----------------------------------------------------------------------------+-------------------------+----------------------------------------+
1350 |:warning:`warning:` |nbsp| :diagtext:`type definition in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`|
1351 |                                                                             ||:diagtext:`function`   ||                                        |
1352 |                                                                             |+-----------------------+|                                        |
1353 |                                                                             ||:diagtext:`constructor`||                                        |
1354 |                                                                             |+-----------------------+|                                        |
1355 +-----------------------------------------------------------------------------+-------------------------+----------------------------------------+
1357 +---------------------------------------------------------------------------------------------------------------------------+
1358 |:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++14 extension`|
1359 +---------------------------------------------------------------------------------------------------------------------------+
1361 +-------------------------------------------------------------------------------------------+
1362 |:warning:`warning:` |nbsp| :diagtext:`'decltype(auto)' type specifier is a C++14 extension`|
1363 +-------------------------------------------------------------------------------------------+
1365 +----------------------------------------------------------------------------------------+
1366 |:warning:`warning:` |nbsp| :diagtext:`initialized lambda captures are a C++14 extension`|
1367 +----------------------------------------------------------------------------------------+
1369 +-------------------------------------------------------------------------------+
1370 |:warning:`warning:` |nbsp| :diagtext:`variable templates are a C++14 extension`|
1371 +-------------------------------------------------------------------------------+
1374 -Wc++17-compat
1375 --------------
1376 Some of the diagnostics controlled by this flag are enabled by default.
1378 Controls `-Wc++17-compat-mangling`_, `-Wc++98-c++11-c++14-c++17-compat`_, `-Wdeprecated-increment-bool`_, `-Wdeprecated-register`_.
1381 -Wc++17-compat-mangling
1382 -----------------------
1383 This diagnostic is enabled by default.
1385 **Diagnostic text:**
1387 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1388 |: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`|
1389 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1392 -Wc++17-compat-pedantic
1393 -----------------------
1394 Some of the diagnostics controlled by this flag are enabled by default.
1396 Controls `-Wc++17-compat`_, `-Wc++98-c++11-c++14-c++17-compat-pedantic`_.
1399 -Wc++17-extensions
1400 ------------------
1401 Some of the diagnostics controlled by this flag are enabled by default.
1403 **Diagnostic text:**
1405 +------------------------------------------------------------------------+
1406 |:warning:`warning:` |nbsp| :diagtext:`constexpr if is a C++17 extension`|
1407 +------------------------------------------------------------------------+
1409 +---------------------------------------------------------------------------------------------+
1410 |:warning:`warning:` |nbsp| :diagtext:`'constexpr' on lambda expressions is a C++17 extension`|
1411 +---------------------------------------------------------------------------------------------+
1413 +---------------------------------------------------------------------------------------------------------------------------+
1414 |:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++17 extension`|
1415 +---------------------------------------------------------------------------------------------------------------------------+
1417 +---------------------------------------------------------------------------------------+
1418 |:warning:`warning:` |nbsp| :diagtext:`decomposition declarations are a C++17 extension`|
1419 +---------------------------------------------------------------------------------------+
1421 +--------------------------------------------------------------------------------+
1422 |:warning:`warning:` |nbsp| :diagtext:`pack fold expression is a C++17 extension`|
1423 +--------------------------------------------------------------------------------+
1425 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1426 |:warning:`warning:` |nbsp| :diagtext:`'begin' and 'end' returning different types (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`) is a C++17 extension`|
1427 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1429 +----------------------------------------------------------------------------------------+
1430 |:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are a C++17 feature`|
1431 +----------------------------------------------------------------------------------------+
1433 +----------------------------------------+--------------------+-------------------------------------------------------------+
1434 |:warning:`warning:` |nbsp| :diagtext:`'`|+------------------+|:diagtext:`' initialization statements are a C++17 extension`|
1435 |                                        ||:diagtext:`if`    ||                                                             |
1436 |                                        |+------------------+|                                                             |
1437 |                                        ||:diagtext:`switch`||                                                             |
1438 |                                        |+------------------+|                                                             |
1439 +----------------------------------------+--------------------+-------------------------------------------------------------+
1441 +-----------------------------------------------------------------------------+
1442 |:warning:`warning:` |nbsp| :diagtext:`inline variables are a C++17 extension`|
1443 +-----------------------------------------------------------------------------+
1445 +---------------------------------------------------------------------------------------------------------------------+
1446 |:warning:`warning:` |nbsp| :diagtext:`use of multiple declarators in a single using declaration is a C++17 extension`|
1447 +---------------------------------------------------------------------------------------------------------------------+
1449 +-------------------------------------------------------------------------------------------------------------------------+
1450 |:warning:`warning:` |nbsp| :diagtext:`nested namespace definition is a C++17 extension; define each namespace separately`|
1451 +-------------------------------------------------------------------------------------------------------------------------+
1453 +------------------------------------------------------------+---------------------------+-----------------------------------------------------+
1454 |:warning:`warning:` |nbsp| :diagtext:`attributes on` |nbsp| |+-------------------------+| |nbsp| :diagtext:`declaration are a C++17 extension`|
1455 |                                                            ||:diagtext:`a namespace`  ||                                                     |
1456 |                                                            |+-------------------------+|                                                     |
1457 |                                                            ||:diagtext:`an enumerator`||                                                     |
1458 |                                                            |+-------------------------+|                                                     |
1459 +------------------------------------------------------------+---------------------------+-----------------------------------------------------+
1461 +---------------------------------------------------------------------------------------+
1462 |:warning:`warning:` |nbsp| :diagtext:`capture of '\*this' by copy is a C++17 extension`|
1463 +---------------------------------------------------------------------------------------+
1465 +------------------------------------------------------------------------------------------+
1466 |:warning:`warning:` |nbsp| :diagtext:`static\_assert with no message is a C++17 extension`|
1467 +------------------------------------------------------------------------------------------+
1469 +--------------------------------------------------------------------------------------------------------+
1470 |:warning:`warning:` |nbsp| :diagtext:`template template parameter using 'typename' is a C++17 extension`|
1471 +--------------------------------------------------------------------------------------------------------+
1473 +--------------------------------------------------------------------------------------------------+
1474 |:warning:`warning:` |nbsp| :diagtext:`default scope specifier for attributes is a C++17 extension`|
1475 +--------------------------------------------------------------------------------------------------+
1477 +-----------------------------------------------------------------------------------------------+
1478 |:warning:`warning:` |nbsp| :diagtext:`pack expansion of using declaration is a C++17 extension`|
1479 +-----------------------------------------------------------------------------------------------+
1482 -Wc++1y-extensions
1483 ------------------
1484 Synonym for `-Wc++14-extensions`_.
1487 -Wc++1z-compat
1488 --------------
1489 Synonym for `-Wc++17-compat`_.
1492 -Wc++1z-compat-mangling
1493 -----------------------
1494 Synonym for `-Wc++17-compat-mangling`_.
1497 -Wc++1z-extensions
1498 ------------------
1499 Synonym for `-Wc++17-extensions`_.
1502 -Wc++2a-compat
1503 --------------
1504 **Diagnostic text:**
1506 +-------------------------------------------------------------------------------------------+
1507 |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is a keyword in C++2a`|
1508 +-------------------------------------------------------------------------------------------+
1511 -Wc++2a-compat-pedantic
1512 -----------------------
1513 Synonym for `-Wc++2a-compat`_.
1516 -Wc++2a-extensions
1517 ------------------
1518 Some of the diagnostics controlled by this flag are enabled by default.
1520 **Diagnostic text:**
1522 +----------------------------------------------------------------------------------------------------+
1523 |:warning:`warning:` |nbsp| :diagtext:`default member initializer for bit-field is a C++2a extension`|
1524 +----------------------------------------------------------------------------------------------------+
1526 +--------------------------------------------------------------------------------------------------------------------+
1527 |:warning:`warning:` |nbsp| :diagtext:`explicit capture of 'this' with a capture default of '=' is a C++2a extension`|
1528 +--------------------------------------------------------------------------------------------------------------------+
1530 +--------------------------------------------------------------------------------------------------------------------------+
1531 |:warning:`warning:` |nbsp| :diagtext:`invoking a pointer to a 'const &' member function on an rvalue is a C++2a extension`|
1532 +--------------------------------------------------------------------------------------------------------------------------+
1535 -Wc++98-c++11-c++14-c++17-compat
1536 --------------------------------
1537 **Diagnostic text:**
1539 +-------------------------------------------------------------------------------------------------------------------------------+
1540 |:warning:`warning:` |nbsp| :diagtext:`default member initializer for bit-field is incompatible with C++ standards before C++2a`|
1541 +-------------------------------------------------------------------------------------------------------------------------------+
1543 +-----------------------------------------------------------------------------------------------------------------------------------------------+
1544 |:warning:`warning:` |nbsp| :diagtext:`explicit capture of 'this' with a capture default of '=' is incompatible with C++ standards before C++2a`|
1545 +-----------------------------------------------------------------------------------------------------------------------------------------------+
1548 -Wc++98-c++11-c++14-c++17-compat-pedantic
1549 -----------------------------------------
1550 Also controls `-Wc++98-c++11-c++14-c++17-compat`_.
1552 **Diagnostic text:**
1554 +-----------------------------------------------------------------------------------------------------------------------------------------------------+
1555 |:warning:`warning:` |nbsp| :diagtext:`invoking a pointer to a 'const &' member function on an rvalue is incompatible with C++ standards before C++2a`|
1556 +-----------------------------------------------------------------------------------------------------------------------------------------------------+
1559 -Wc++98-c++11-c++14-compat
1560 --------------------------
1561 **Diagnostic text:**
1563 +---------------------------------------------------------------------------------------------------+
1564 |:warning:`warning:` |nbsp| :diagtext:`constexpr if is incompatible with C++ standards before C++17`|
1565 +---------------------------------------------------------------------------------------------------+
1567 +----------------------------------------------------------------------------------------------------------------------+
1568 |:warning:`warning:` |nbsp| :diagtext:`constexpr on lambda expressions is incompatible with C++ standards before C++17`|
1569 +----------------------------------------------------------------------------------------------------------------------+
1571 +------------------------------------------------------------------------------------------------------------------+
1572 |:warning:`warning:` |nbsp| :diagtext:`decomposition declarations are incompatible with C++ standards before C++17`|
1573 +------------------------------------------------------------------------------------------------------------------+
1575 +-----------------------------------------------------------------------------------------------------------+
1576 |:warning:`warning:` |nbsp| :diagtext:`pack fold expression is incompatible with C++ standards before C++17`|
1577 +-----------------------------------------------------------------------------------------------------------+
1579 +---------------------------+--------------------+----------------------------------------------------------------------------------------------+
1580 |:warning:`warning:` |nbsp| |+------------------+| |nbsp| :diagtext:`initialization statements are incompatible with C++ standards before C++17`|
1581 |                           ||:diagtext:`if`    ||                                                                                              |
1582 |                           |+------------------+|                                                                                              |
1583 |                           ||:diagtext:`switch`||                                                                                              |
1584 |                           |+------------------+|                                                                                              |
1585 +---------------------------+--------------------+----------------------------------------------------------------------------------------------+
1587 +--------------------------------------------------------------------------------------------------------+
1588 |:warning:`warning:` |nbsp| :diagtext:`inline variables are incompatible with C++ standards before C++17`|
1589 +--------------------------------------------------------------------------------------------------------+
1591 +------------------------------------------------------------------------------------------------------------------+
1592 |:warning:`warning:` |nbsp| :diagtext:`nested namespace definition is incompatible with C++ standards before C++17`|
1593 +------------------------------------------------------------------------------------------------------------------+
1595 +-------------------------------------------------------------------------------------------------------------------+
1596 |:warning:`warning:` |nbsp| :diagtext:`by value capture of '\*this' is incompatible with C++ standards before C++17`|
1597 +-------------------------------------------------------------------------------------------------------------------+
1599 +---------------------------------------------------------------------------------------------------------------------+
1600 |:warning:`warning:` |nbsp| :diagtext:`static\_assert with no message is incompatible with C++ standards before C++17`|
1601 +---------------------------------------------------------------------------------------------------------------------+
1603 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1604 |:warning:`warning:` |nbsp| :diagtext:`non-type template parameters declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`are incompatible with C++ standards before C++17`|
1605 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1607 +-----------------------------------------------------------------------------------------------------------------------------------+
1608 |:warning:`warning:` |nbsp| :diagtext:`template template parameter using 'typename' is incompatible with C++ standards before C++17`|
1609 +-----------------------------------------------------------------------------------------------------------------------------------+
1611 +--------------------------------------------------------------------------------------------------------+
1612 |:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C++ standards before C++17`|
1613 +--------------------------------------------------------------------------------------------------------+
1615 +-----------------------------------------------------------------------------------------------------------------------------+
1616 |:warning:`warning:` |nbsp| :diagtext:`default scope specifier for attributes is incompatible with C++ standards before C++17`|
1617 +-----------------------------------------------------------------------------------------------------------------------------+
1619 +------------------------------------------------------------------------------------------------------------------------------------------------+
1620 |:warning:`warning:` |nbsp| :diagtext:`use of multiple declarators in a single using declaration is incompatible with C++ standards before C++17`|
1621 +------------------------------------------------------------------------------------------------------------------------------------------------+
1623 +-----------------------------------------------------------------------------------------------------------------------+
1624 |:warning:`warning:` |nbsp| :diagtext:`pack expansion using declaration is incompatible with C++ standards before C++17`|
1625 +-----------------------------------------------------------------------------------------------------------------------+
1627 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1628 |: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`|
1629 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1632 -Wc++98-c++11-c++14-compat-pedantic
1633 -----------------------------------
1634 Also controls `-Wc++98-c++11-c++14-compat`_.
1636 **Diagnostic text:**
1638 +------------------------------------------------------------+---------------------------+--------------------------------------------------------------------------------+
1639 |:warning:`warning:` |nbsp| :diagtext:`attributes on` |nbsp| |+-------------------------+| |nbsp| :diagtext:`declaration are incompatible with C++ standards before C++17`|
1640 |                                                            ||:diagtext:`a namespace`  ||                                                                                |
1641 |                                                            |+-------------------------+|                                                                                |
1642 |                                                            ||:diagtext:`an enumerator`||                                                                                |
1643 |                                                            |+-------------------------+|                                                                                |
1644 +------------------------------------------------------------+---------------------------+--------------------------------------------------------------------------------+
1646 +---------------------------------------------------------------------------------------------------------------------+
1647 |:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are incompatible with C++ standards before C++17`|
1648 +---------------------------------------------------------------------------------------------------------------------+
1651 -Wc++98-c++11-compat
1652 --------------------
1653 **Diagnostic text:**
1655 +-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1656 |:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`|
1657 |                                                                                   ||:diagtext:`function`   ||                                                                   |
1658 |                                                                                   |+-----------------------+|                                                                   |
1659 |                                                                                   ||:diagtext:`constructor`||                                                                   |
1660 |                                                                                   |+-----------------------+|                                                                   |
1661 +-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1663 +---------------------------------------------------------------------------------------------------------------------------------------+
1664 |:warning:`warning:` |nbsp| :diagtext:`multiple return statements in constexpr function is incompatible with C++ standards before C++14`|
1665 +---------------------------------------------------------------------------------------------------------------------------------------+
1667 +-----------------------------------------------------------------------------------------------------------------------------------+
1668 |:warning:`warning:` |nbsp| :diagtext:`constexpr function with no return statements is incompatible with C++ standards before C++14`|
1669 +-----------------------------------------------------------------------------------------------------------------------------------+
1671 +----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1672 |:warning:`warning:` |nbsp| :diagtext:`variable declaration in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`|
1673 |                                                                                  ||:diagtext:`function`   ||                                                                   |
1674 |                                                                                  |+-----------------------+|                                                                   |
1675 |                                                                                  ||:diagtext:`constructor`||                                                                   |
1676 |                                                                                  |+-----------------------+|                                                                   |
1677 +----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1679 +-----------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1680 |:warning:`warning:` |nbsp| :diagtext:`type definition in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`|
1681 |                                                                             ||:diagtext:`function`   ||                                                                   |
1682 |                                                                             |+-----------------------+|                                                                   |
1683 |                                                                             ||:diagtext:`constructor`||                                                                   |
1684 |                                                                             |+-----------------------+|                                                                   |
1685 +-----------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1687 +----------------------------------------------------------------------------------------------------------------------+
1688 |:warning:`warning:` |nbsp| :diagtext:`'decltype(auto)' type specifier is incompatible with C++ standards before C++14`|
1689 +----------------------------------------------------------------------------------------------------------------------+
1691 +--------------------------------------------------------------------------------------------------------+
1692 |:warning:`warning:` |nbsp| :diagtext:`digit separators are incompatible with C++ standards before C++14`|
1693 +--------------------------------------------------------------------------------------------------------+
1695 +-------------------------------------------------------------------------------------------------------------------+
1696 |:warning:`warning:` |nbsp| :diagtext:`initialized lambda captures are incompatible with C++ standards before C++14`|
1697 +-------------------------------------------------------------------------------------------------------------------+
1699 +----------------------------------------------------------------------------------------------------------+
1700 |:warning:`warning:` |nbsp| :diagtext:`variable templates are incompatible with C++ standards before C++14`|
1701 +----------------------------------------------------------------------------------------------------------+
1704 -Wc++98-c++11-compat-binary-literal
1705 -----------------------------------
1706 **Diagnostic text:**
1708 +---------------------------------------------------------------------------------------------------------------+
1709 |:warning:`warning:` |nbsp| :diagtext:`binary integer literals are incompatible with C++ standards before C++14`|
1710 +---------------------------------------------------------------------------------------------------------------+
1713 -Wc++98-c++11-compat-pedantic
1714 -----------------------------
1715 Controls `-Wc++98-c++11-compat`_, `-Wc++98-c++11-compat-binary-literal`_.
1718 -Wc++98-compat
1719 --------------
1720 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`_.
1722 **Diagnostic text:**
1724 +-------------------------------------------------------------------------------------+
1725 |:warning:`warning:` |nbsp| :diagtext:`alias declarations are incompatible with C++98`|
1726 +-------------------------------------------------------------------------------------+
1728 +---------------------------------------------------------------------------+
1729 |:warning:`warning:` |nbsp| :diagtext:`'alignas' is incompatible with C++98`|
1730 +---------------------------------------------------------------------------+
1732 +--------------------------------------------------------------------------------------+
1733 |:warning:`warning:` |nbsp| :diagtext:`alignof expressions are incompatible with C++98`|
1734 +--------------------------------------------------------------------------------------+
1736 +----------------------------------------------------------------------------------------+
1737 |:warning:`warning:` |nbsp| :diagtext:`C++11 attribute syntax is incompatible with C++98`|
1738 +----------------------------------------------------------------------------------------+
1740 +---------------------------------------------------------------------------------------+
1741 |:warning:`warning:` |nbsp| :diagtext:`'auto' type specifier is incompatible with C++98`|
1742 +---------------------------------------------------------------------------------------+
1744 +---------------------------------------------------------------------------------------+
1745 |:warning:`warning:` |nbsp| :diagtext:`'constexpr' specifier is incompatible with C++98`|
1746 +---------------------------------------------------------------------------------------+
1748 +--------------------------------------------------------------------------------------------------------+
1749 |:warning:`warning:` |nbsp| :diagtext:`constructor call from initializer list is incompatible with C++98`|
1750 +--------------------------------------------------------------------------------------------------------+
1752 +-------------------------------------------------------------------------------------------+
1753 |:warning:`warning:` |nbsp| :diagtext:`'decltype' type specifier is incompatible with C++98`|
1754 +-------------------------------------------------------------------------------------------+
1756 +---------------------------+-----------------------+--------------------------------------------------------------------+
1757 |:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`function definitions are incompatible with C++98`|
1758 |                           ||:diagtext:`defaulted`||                                                                    |
1759 |                           |+---------------------+|                                                                    |
1760 |                           ||:diagtext:`deleted`  ||                                                                    |
1761 |                           |+---------------------+|                                                                    |
1762 +---------------------------+-----------------------+--------------------------------------------------------------------+
1764 +------------------------------------------------------------------------------------------+
1765 |:warning:`warning:` |nbsp| :diagtext:`delegating constructors are incompatible with C++98`|
1766 +------------------------------------------------------------------------------------------+
1768 +----------------------------------------------------------------------------------------------------------------+
1769 |:warning:`warning:` |nbsp| :diagtext:`scalar initialized from empty initializer list is incompatible with C++98`|
1770 +----------------------------------------------------------------------------------------------------------------+
1772 +-----------------------------------------------------------------------------------------------------------------+
1773 |:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are incompatible with C++98`|
1774 +-----------------------------------------------------------------------------------------------------------------+
1776 +-----------------------------------------------------------------------------------------------------------------------------------------+
1777 |:warning:`warning:` |nbsp| :diagtext:`befriending enumeration type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with C++98`|
1778 +-----------------------------------------------------------------------------------------------------------------------------------------+
1780 +-----------------------------------------------------------------------------------------------------------+
1781 |:warning:`warning:` |nbsp| :diagtext:`enumeration type in nested name specifier is incompatible with C++98`|
1782 +-----------------------------------------------------------------------------------------------------------+
1784 +------------------------------------------------------------------------------------------------+
1785 |:warning:`warning:` |nbsp| :diagtext:`explicit conversion functions are incompatible with C++98`|
1786 +------------------------------------------------------------------------------------------------+
1788 +--------------------------------------------------------------------------------------+
1789 |:warning:`warning:` |nbsp| :diagtext:`range-based for loop is incompatible with C++98`|
1790 +--------------------------------------------------------------------------------------+
1792 +---------------------------------------------------------------------------------------------------------------------------+
1793 |:warning:`warning:` |nbsp| :diagtext:`friend declaration naming a member of the declaring class is incompatible with C++98`|
1794 +---------------------------------------------------------------------------------------------------------------------------+
1796 +------------------------------------------------------------------------------------------------+
1797 |:warning:`warning:` |nbsp| :diagtext:`generalized initializer lists are incompatible with C++98`|
1798 +------------------------------------------------------------------------------------------------+
1800 +------------------------------------------------------------------------------------------------------------+
1801 |:warning:`warning:` |nbsp| :diagtext:`jump from this goto statement to its label is incompatible with C++98`|
1802 +------------------------------------------------------------------------------------------------------------+
1804 +---------------------------------------------------------------------------------------------------------------------------------------+
1805 |:warning:`warning:` |nbsp| :diagtext:`jump from this indirect goto statement to one of its possible targets is incompatible with C++98`|
1806 +---------------------------------------------------------------------------------------------------------------------------------------+
1808 +------------------------------------------------------------------------------------------------------------+
1809 |:warning:`warning:` |nbsp| :diagtext:`initialization of initializer\_list object is incompatible with C++98`|
1810 +------------------------------------------------------------------------------------------------------------+
1812 +------------------------------------------------------------------------------------+
1813 |:warning:`warning:` |nbsp| :diagtext:`inline namespaces are incompatible with C++98`|
1814 +------------------------------------------------------------------------------------+
1816 +-------------------------------------------------------------------------------------+
1817 |:warning:`warning:` |nbsp| :diagtext:`lambda expressions are incompatible with C++98`|
1818 +-------------------------------------------------------------------------------------+
1820 +-----------------------------------------------------------------------------------------------------------+
1821 |:warning:`warning:` |nbsp| :diagtext:`'<::' is treated as digraph '<:' (aka '\[') followed by ':' in C++98`|
1822 +-----------------------------------------------------------------------------------------------------------+
1824 +------------------------------------------------------------------------------------+
1825 |:warning:`warning:` |nbsp| :diagtext:`literal operators are incompatible with C++98`|
1826 +------------------------------------------------------------------------------------+
1828 +---------------------------------------------------------------------------------------------------------------------------+
1829 |:warning:`warning:` |nbsp| :diagtext:`universal character name referring to a control character is incompatible with C++98`|
1830 +---------------------------------------------------------------------------------------------------------------------------+
1832 +-----------------------------------------------------------------------------------------------------------------------------------------------------+
1833 |:warning:`warning:` |nbsp| :diagtext:`specifying character '`:placeholder:`A`:diagtext:`' with a universal character name is incompatible with C++98`|
1834 +-----------------------------------------------------------------------------------------------------------------------------------------------------+
1836 +------------------------------------------------------------------------------------------+
1837 |:warning:`warning:` |nbsp| :diagtext:`noexcept specifications are incompatible with C++98`|
1838 +------------------------------------------------------------------------------------------+
1840 +---------------------------------------------------------------------------------------+
1841 |:warning:`warning:` |nbsp| :diagtext:`noexcept expressions are incompatible with C++98`|
1842 +---------------------------------------------------------------------------------------+
1844 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1845 |:warning:`warning:` |nbsp| :diagtext:`use of non-static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in an unevaluated context is incompatible with C++98`|
1846 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1848 +----------------------------------------------------------------------------------------------------------------------------------+
1849 |:warning:`warning:` |nbsp| :diagtext:`non-class friend type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with C++98`|
1850 +----------------------------------------------------------------------------------------------------------------------------------+
1852 +--------------------------------------------------------------------------------------------------------------------+
1853 |:warning:`warning:` |nbsp| :diagtext:`in-class initialization of non-static data members is incompatible with C++98`|
1854 +--------------------------------------------------------------------------------------------------------------------+
1856 +---------------------------+------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+----------------------------------------------+
1857 |:warning:`warning:` |nbsp| |+----------------------------+| |nbsp| :diagtext:`member` |nbsp| :placeholder:`B` |nbsp| :diagtext:`with a non-trivial` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`is incompatible with C++98`|
1858 |                           ||:diagtext:`anonymous struct`||                                                                                                ||:diagtext:`constructor`             ||                                              |
1859 |                           |+----------------------------+|                                                                                                |+------------------------------------+|                                              |
1860 |                           ||:diagtext:`union`           ||                                                                                                ||:diagtext:`copy constructor`        ||                                              |
1861 |                           |+----------------------------+|                                                                                                |+------------------------------------+|                                              |
1862 |                           |                              |                                                                                                ||:diagtext:`move constructor`        ||                                              |
1863 |                           |                              |                                                                                                |+------------------------------------+|                                              |
1864 |                           |                              |                                                                                                ||:diagtext:`copy assignment operator`||                                              |
1865 |                           |                              |                                                                                                |+------------------------------------+|                                              |
1866 |                           |                              |                                                                                                ||:diagtext:`move assignment operator`||                                              |
1867 |                           |                              |                                                                                                |+------------------------------------+|                                              |
1868 |                           |                              |                                                                                                ||:diagtext:`destructor`              ||                                              |
1869 |                           |                              |                                                                                                |+------------------------------------+|                                              |
1870 +---------------------------+------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+----------------------------------------------+
1872 +---------------------------------------------------------------------------+
1873 |:warning:`warning:` |nbsp| :diagtext:`'nullptr' is incompatible with C++98`|
1874 +---------------------------------------------------------------------------+
1876 +--------------------------------------------------------------------------------------------------------+
1877 |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' keyword is incompatible with C++98`|
1878 +--------------------------------------------------------------------------------------------------------+
1880 +-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+
1881 |: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`|
1882 |                                                                                                                                                     ||:diagtext:`function`   ||                                              |
1883 |                                                                                                                                                     |+-----------------------+|                                              |
1884 |                                                                                                                                                     ||:diagtext:`block`      ||                                              |
1885 |                                                                                                                                                     |+-----------------------+|                                              |
1886 |                                                                                                                                                     ||:diagtext:`method`     ||                                              |
1887 |                                                                                                                                                     |+-----------------------+|                                              |
1888 |                                                                                                                                                     ||:diagtext:`constructor`||                                              |
1889 |                                                                                                                                                     |+-----------------------+|                                              |
1890 +-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+
1892 +--------------------------------------------------------------------------------------+
1893 |:warning:`warning:` |nbsp| :diagtext:`raw string literals are incompatible with C++98`|
1894 +--------------------------------------------------------------------------------------+
1896 +----------------------------------------------------------------------------------------------------+
1897 |:warning:`warning:` |nbsp| :diagtext:`reference qualifiers on functions are incompatible with C++98`|
1898 +----------------------------------------------------------------------------------------------------+
1900 +-------------------------------------------------------------------------------------------------------------+
1901 |:warning:`warning:` |nbsp| :diagtext:`reference initialized from initializer list is incompatible with C++98`|
1902 +-------------------------------------------------------------------------------------------------------------+
1904 +------------------------------------------------------------------------------------+
1905 |:warning:`warning:` |nbsp| :diagtext:`rvalue references are incompatible with C++98`|
1906 +------------------------------------------------------------------------------------+
1908 +--------------------------------------------------------------------------------------+
1909 |:warning:`warning:` |nbsp| :diagtext:`scoped enumerations are incompatible with C++98`|
1910 +--------------------------------------------------------------------------------------+
1912 +------------------------------------------------------------------------------------------------------------+
1913 |:warning:`warning:` |nbsp| :diagtext:`substitution failure due to access control is incompatible with C++98`|
1914 +------------------------------------------------------------------------------------------------------------+
1916 +----------------------------------------------------------------------------------------------+
1917 |:warning:`warning:` |nbsp| :diagtext:`static\_assert declarations are incompatible with C++98`|
1918 +----------------------------------------------------------------------------------------------+
1920 +----------------------------------------------------------------------------------------------------------------------------------------+
1921 |:warning:`warning:` |nbsp| :diagtext:`static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in union is incompatible with C++98`|
1922 +----------------------------------------------------------------------------------------------------------------------------------------+
1924 +---------------------------------------------------------------------------------------------------------------+
1925 |:warning:`warning:` |nbsp| :diagtext:`jump from switch statement to this case label is incompatible with C++98`|
1926 +---------------------------------------------------------------------------------------------------------------+
1928 +---------------------------------------------------------------------------------------------------------------------------------------+
1929 |:warning:`warning:` |nbsp| :diagtext:`redundant parentheses surrounding address non-type template argument are incompatible with C++98`|
1930 +---------------------------------------------------------------------------------------------------------------------------------------+
1932 +-------------------------------------------------------------------------------------------------------------------+
1933 |:warning:`warning:` |nbsp| :diagtext:`use of null pointer as non-type template argument is incompatible with C++98`|
1934 +-------------------------------------------------------------------------------------------------------------------+
1936 +--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+
1937 |:warning:`warning:` |nbsp| :diagtext:`non-type template argument referring to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with internal linkage is incompatible with C++98`|
1938 |                                                                                      ||:diagtext:`function`||                                                                                            |
1939 |                                                                                      |+--------------------+|                                                                                            |
1940 |                                                                                      ||:diagtext:`object`  ||                                                                                            |
1941 |                                                                                      |+--------------------+|                                                                                            |
1942 +--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+
1944 +-----------------------------------------------------------------------------------------------------------------+
1945 |:warning:`warning:` |nbsp| :diagtext:`use of 'template' keyword outside of a template is incompatible with C++98`|
1946 +-----------------------------------------------------------------------------------------------------------------+
1948 +---------------------------------------------------------------------------------------------------------------------+
1949 |:warning:`warning:` |nbsp| :diagtext:`default template arguments for a function template are incompatible with C++98`|
1950 +---------------------------------------------------------------------------------------------------------------------+
1952 +---------------------------+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1953 |:warning:`warning:` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`specialization of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`outside namespace` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is incompatible with C++98`|
1954 |                           ||:diagtext:`class template`           ||                                                                                                                                                                        |
1955 |                           |+-------------------------------------+|                                                                                                                                                                        |
1956 |                           ||:diagtext:`class template partial`   ||                                                                                                                                                                        |
1957 |                           |+-------------------------------------+|                                                                                                                                                                        |
1958 |                           ||:diagtext:`variable template`        ||                                                                                                                                                                        |
1959 |                           |+-------------------------------------+|                                                                                                                                                                        |
1960 |                           ||:diagtext:`variable template partial`||                                                                                                                                                                        |
1961 |                           |+-------------------------------------+|                                                                                                                                                                        |
1962 |                           ||:diagtext:`function template`        ||                                                                                                                                                                        |
1963 |                           |+-------------------------------------+|                                                                                                                                                                        |
1964 |                           ||:diagtext:`member function`          ||                                                                                                                                                                        |
1965 |                           |+-------------------------------------+|                                                                                                                                                                        |
1966 |                           ||:diagtext:`static data member`       ||                                                                                                                                                                        |
1967 |                           |+-------------------------------------+|                                                                                                                                                                        |
1968 |                           ||:diagtext:`member class`             ||                                                                                                                                                                        |
1969 |                           |+-------------------------------------+|                                                                                                                                                                        |
1970 |                           ||:diagtext:`member enumeration`       ||                                                                                                                                                                        |
1971 |                           |+-------------------------------------+|                                                                                                                                                                        |
1972 +---------------------------+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1974 +----------------------------------------------------------------------------------------+
1975 |:warning:`warning:` |nbsp| :diagtext:`trailing return types are incompatible with C++98`|
1976 +----------------------------------------------------------------------------------------+
1978 +---------------------------------------------------------------------------------------------------------------+
1979 |:warning:`warning:` |nbsp| :diagtext:`consecutive right angle brackets are incompatible with C++98 (use '> >')`|
1980 +---------------------------------------------------------------------------------------------------------------+
1982 +---------------------------------------------------------------------------------------------------------+
1983 |:warning:`warning:` |nbsp| :diagtext:`use of 'typename' outside of a template is incompatible with C++98`|
1984 +---------------------------------------------------------------------------------------------------------+
1986 +-------------------------------------------------------------------------------------------------------+-----------------------+------------------------------------------------+
1987 |:warning:`warning:` |nbsp| :diagtext:`befriending` |nbsp| :placeholder:`B` |nbsp| :diagtext:`without '`|+---------------------+|:diagtext:`' keyword is incompatible with C++98`|
1988 |                                                                                                       ||:diagtext:`struct`   ||                                                |
1989 |                                                                                                       |+---------------------+|                                                |
1990 |                                                                                                       ||:diagtext:`interface`||                                                |
1991 |                                                                                                       |+---------------------+|                                                |
1992 |                                                                                                       ||:diagtext:`union`    ||                                                |
1993 |                                                                                                       |+---------------------+|                                                |
1994 |                                                                                                       ||:diagtext:`class`    ||                                                |
1995 |                                                                                                       |+---------------------+|                                                |
1996 |                                                                                                       ||:diagtext:`enum`     ||                                                |
1997 |                                                                                                       |+---------------------+|                                                |
1998 +-------------------------------------------------------------------------------------------------------+-----------------------+------------------------------------------------+
2000 +-------------------------------------------------------------------------------------------------------+
2001 |:warning:`warning:` |nbsp| :diagtext:`using this character in an identifier is incompatible with C++98`|
2002 +-------------------------------------------------------------------------------------------------------+
2004 +-----------------------------------------------------------------------------------+
2005 |:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C++98`|
2006 +-----------------------------------------------------------------------------------+
2008 +---------------------------------------------------------------------------------------------------------------+
2009 |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' type specifier is incompatible with C++98`|
2010 +---------------------------------------------------------------------------------------------------------------+
2012 +------------------------------------------------------------------------------------------+
2013 |:warning:`warning:` |nbsp| :diagtext:`inheriting constructors are incompatible with C++98`|
2014 +------------------------------------------------------------------------------------------+
2016 +-------------------------------------------------------------------------------------+
2017 |:warning:`warning:` |nbsp| :diagtext:`variadic templates are incompatible with C++98`|
2018 +-------------------------------------------------------------------------------------+
2021 -Wc++98-compat-bind-to-temporary-copy
2022 -------------------------------------
2023 **Diagnostic text:**
2025 +---------------------------+-----------------------------------------+----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------+----------------------------+
2026 |: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`|
2027 |                           ||:diagtext:`copying variable`           ||                                                                                                                            ||:diagtext:`invoke an inaccessible constructor`||                            |
2028 |                           |+---------------------------------------+|                                                                                                                            |+----------------------------------------------+|                            |
2029 |                           ||:diagtext:`copying parameter`          ||                                                                                                                            ||:diagtext:`find no viable constructor`        ||                            |
2030 |                           |+---------------------------------------+|                                                                                                                            |+----------------------------------------------+|                            |
2031 |                           ||:diagtext:`returning object`           ||                                                                                                                            ||:diagtext:`find ambiguous constructors`       ||                            |
2032 |                           |+---------------------------------------+|                                                                                                                            |+----------------------------------------------+|                            |
2033 |                           ||:diagtext:`throwing object`            ||                                                                                                                            ||:diagtext:`invoke a deleted constructor`      ||                            |
2034 |                           |+---------------------------------------+|                                                                                                                            |+----------------------------------------------+|                            |
2035 |                           ||:diagtext:`copying member subobject`   ||                                                                                                                            |                                                |                            |
2036 |                           |+---------------------------------------+|                                                                                                                            |                                                |                            |
2037 |                           ||:diagtext:`copying array element`      ||                                                                                                                            |                                                |                            |
2038 |                           |+---------------------------------------+|                                                                                                                            |                                                |                            |
2039 |                           ||:diagtext:`allocating object`          ||                                                                                                                            |                                                |                            |
2040 |                           |+---------------------------------------+|                                                                                                                            |                                                |                            |
2041 |                           ||:diagtext:`copying temporary`          ||                                                                                                                            |                                                |                            |
2042 |                           |+---------------------------------------+|                                                                                                                            |                                                |                            |
2043 |                           ||:diagtext:`initializing base subobject`||                                                                                                                            |                                                |                            |
2044 |                           |+---------------------------------------+|                                                                                                                            |                                                |                            |
2045 |                           ||:diagtext:`initializing vector element`||                                                                                                                            |                                                |                            |
2046 |                           |+---------------------------------------+|                                                                                                                            |                                                |                            |
2047 +---------------------------+-----------------------------------------+----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------+----------------------------+
2050 -Wc++98-compat-local-type-template-args
2051 ---------------------------------------
2052 **Diagnostic text:**
2054 +--------------------------------------------------------------------------------------------------------------------------------------------+
2055 |:warning:`warning:` |nbsp| :diagtext:`local type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as template argument is incompatible with C++98`|
2056 +--------------------------------------------------------------------------------------------------------------------------------------------+
2059 -Wc++98-compat-pedantic
2060 -----------------------
2061 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`_.
2063 **Diagnostic text:**
2065 +---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------------+
2066 |: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`|
2067 |                                                                                                                                                   ||:diagtext:`integral`   ||                                                                                              |
2068 |                                                                                                                                                   |+-----------------------+|                                                                                              |
2069 |                                                                                                                                                   ||:diagtext:`enumeration`||                                                                                              |
2070 |                                                                                                                                                   |+-----------------------+|                                                                                              |
2071 +---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------------+
2073 +------------------------------------------------------------------------------------------------------------------------+
2074 |:warning:`warning:` |nbsp| :diagtext:`cast between pointer-to-function and pointer-to-object is incompatible with C++98`|
2075 +------------------------------------------------------------------------------------------------------------------------+
2077 +----------------------------------------------------------------------------------------+
2078 |:warning:`warning:` |nbsp| :diagtext:`empty macro arguments are incompatible with C++98`|
2079 +----------------------------------------------------------------------------------------+
2081 +--------------------------------------------------------------------------------------------------------+
2082 |:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are incompatible with C++98`|
2083 +--------------------------------------------------------------------------------------------------------+
2085 +-----------------------------------------------------------------------------------+
2086 |:warning:`warning:` |nbsp| :diagtext:`extern templates are incompatible with C++98`|
2087 +-----------------------------------------------------------------------------------+
2089 +-----------------------------------------------------------------------------+
2090 |:warning:`warning:` |nbsp| :diagtext:`'long long' is incompatible with C++98`|
2091 +-----------------------------------------------------------------------------+
2093 +----------------------------------------------------------------------------+
2094 |:warning:`warning:` |nbsp| :diagtext:`C++98 requires newline at end of file`|
2095 +----------------------------------------------------------------------------+
2097 +-------------------------------------------------------------------------------------------------+
2098 |:warning:`warning:` |nbsp| :diagtext:`#line number greater than 32767 is incompatible with C++98`|
2099 +-------------------------------------------------------------------------------------------------+
2101 +-------------------------------------------------------------------------------------------------+
2102 |:warning:`warning:` |nbsp| :diagtext:`extra ';' outside of a function is incompatible with C++98`|
2103 +-------------------------------------------------------------------------------------------------+
2105 +----------------------------------------------------------------------------------+
2106 |:warning:`warning:` |nbsp| :diagtext:`variadic macros are incompatible with C++98`|
2107 +----------------------------------------------------------------------------------+
2110 -Wc++98-compat-unnamed-type-template-args
2111 -----------------------------------------
2112 **Diagnostic text:**
2114 +---------------------------------------------------------------------------------------------------+
2115 |:warning:`warning:` |nbsp| :diagtext:`unnamed type as template argument is incompatible with C++98`|
2116 +---------------------------------------------------------------------------------------------------+
2119 -Wc11-extensions
2120 ----------------
2121 **Diagnostic text:**
2123 +---------------------------------------------------------------------------+
2124 |:warning:`warning:` |nbsp| :diagtext:`anonymous unions are a C11 extension`|
2125 +---------------------------------------------------------------------------+
2127 +----------------------------------------------------------------------------------------+
2128 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C11-specific feature`|
2129 +----------------------------------------------------------------------------------------+
2131 +----------------------------------------------------------------------------+
2132 |:warning:`warning:` |nbsp| :diagtext:`anonymous structs are a C11 extension`|
2133 +----------------------------------------------------------------------------+
2135 +------------------------------------------------------------------------------------+
2136 |:warning:`warning:` |nbsp| :diagtext:`generic selections are a C11-specific feature`|
2137 +------------------------------------------------------------------------------------+
2139 +--------------------------------------------------------------------------------------+
2140 |:warning:`warning:` |nbsp| :diagtext:`\_Noreturn functions are a C11-specific feature`|
2141 +--------------------------------------------------------------------------------------+
2143 +---------------------------------------------------------------------------------+
2144 |:warning:`warning:` |nbsp| :diagtext:`\_Static\_assert is a C11-specific feature`|
2145 +---------------------------------------------------------------------------------+
2148 -Wc99-compat
2149 ------------
2150 Some of the diagnostics controlled by this flag are enabled by default.
2152 **Diagnostic text:**
2154 +---------------------------+--------------------------------------------------------+--------------------------------------------+
2155 |:warning:`warning:` |nbsp| |+------------------------------------------------------+| |nbsp| :diagtext:`is incompatible with C99`|
2156 |                           ||:diagtext:`using this character in an identifier`     ||                                            |
2157 |                           |+------------------------------------------------------+|                                            |
2158 |                           ||:diagtext:`starting an identifier with this character`||                                            |
2159 |                           |+------------------------------------------------------+|                                            |
2160 +---------------------------+--------------------------------------------------------+--------------------------------------------+
2162 +---------------------------------------------------------------------------------+
2163 |:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C99`|
2164 +---------------------------------------------------------------------------------+
2166 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+----------------------------------+
2167 |: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`|
2168 |                                                                                                                                                                        ||:diagtext:`have type 'long long'`||                                  |
2169 |                                                                                                                                                                        |+---------------------------------+|                                  |
2170 |                                                                                                                                                                        ||:diagtext:`be ill-formed`        ||                                  |
2171 |                                                                                                                                                                        |+---------------------------------+|                                  |
2172 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+----------------------------------+
2175 -Wc99-extensions
2176 ----------------
2177 Some of the diagnostics controlled by this flag are enabled by default.
2179 **Diagnostic text:**
2181 +-----------------------------------------------------------------------------------------------+
2182 |:warning:`warning:` |nbsp| :diagtext:`initializer for aggregate is not a compile-time constant`|
2183 +-----------------------------------------------------------------------------------------------+
2185 +---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+
2186 |:warning:`warning:` |nbsp| |+--------------------------------+|:diagtext:`array size` |nbsp| |+---------------------+|:diagtext:`is a C99 feature`|
2187 |                           ||:diagtext:`qualifier in` |nbsp| ||                              ||                     ||                            |
2188 |                           |+--------------------------------+|                              |+---------------------+|                            |
2189 |                           ||:diagtext:`static` |nbsp|       ||                              ||                     ||                            |
2190 |                           |+--------------------------------+|                              |+---------------------+|                            |
2191 |                           ||                                ||                              ||:diagtext:`'\[\*\] '`||                            |
2192 |                           |+--------------------------------+|                              |+---------------------+|                            |
2193 +---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+
2195 +-----------------------------------------------------------------------------------+
2196 |:warning:`warning:` |nbsp| :diagtext:`compound literals are a C99-specific feature`|
2197 +-----------------------------------------------------------------------------------+
2199 +-------------------------------------------------------------------------------+
2200 |:warning:`warning:` |nbsp| :diagtext:`flexible array members are a C99 feature`|
2201 +-------------------------------------------------------------------------------+
2203 +-------------------------------------------------------------------------------------------------+
2204 |:warning:`warning:` |nbsp| :diagtext:`variable declaration in for loop is a C99-specific feature`|
2205 +-------------------------------------------------------------------------------------------------+
2207 +---------------------------------------------------------------------------------------+
2208 |:warning:`warning:` |nbsp| :diagtext:`ISO C99 requires whitespace after the macro name`|
2209 +---------------------------------------------------------------------------------------+
2211 +--------------------------------------------------------------------------------+
2212 |:warning:`warning:` |nbsp| :diagtext:`designated initializers are a C99 feature`|
2213 +--------------------------------------------------------------------------------+
2215 +------------------------------------------------------------------------------+
2216 |:warning:`warning:` |nbsp| :diagtext:`empty macro arguments are a C99 feature`|
2217 +------------------------------------------------------------------------------+
2219 +-------------------------------------------------------------------------------------------------------+
2220 |:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C99-specific feature`|
2221 +-------------------------------------------------------------------------------------------------------+
2223 +---------------------------------------------------------------------------------------+
2224 |:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating constants are a C99 feature`|
2225 +---------------------------------------------------------------------------------------+
2228 -Wcast-align
2229 ------------
2230 **Diagnostic text:**
2232 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2233 |: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`|
2234 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2237 -Wcast-calling-convention
2238 -------------------------
2239 This diagnostic is enabled by default.
2241 **Diagnostic text:**
2243 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2244 |:warning:`warning:` |nbsp| :diagtext:`cast between incompatible calling conventions '`:placeholder:`A`:diagtext:`' and '`:placeholder:`B`:diagtext:`'; calls through this pointer may abort at runtime`|
2245 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2248 -Wcast-of-sel-type
2249 ------------------
2250 This diagnostic is enabled by default.
2252 **Diagnostic text:**
2254 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2255 |:warning:`warning:` |nbsp| :diagtext:`cast of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is deprecated; use sel\_getName instead`|
2256 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2259 -Wcast-qual
2260 -----------
2261 **Diagnostic text:**
2263 +-------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------+
2264 |:warning:`warning:` |nbsp| :diagtext:`cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`drops` |nbsp| |+-----------------------------------------+|
2265 |                                                                                                                                                       ||:diagtext:`const and volatile qualifiers`||
2266 |                                                                                                                                                       |+-----------------------------------------+|
2267 |                                                                                                                                                       ||:diagtext:`const qualifier`              ||
2268 |                                                                                                                                                       |+-----------------------------------------+|
2269 |                                                                                                                                                       ||:diagtext:`volatile qualifier`           ||
2270 |                                                                                                                                                       |+-----------------------------------------+|
2271 +-------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------+
2273 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2274 |: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`|
2275 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2278 -Wchar-align
2279 ------------
2280 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
2282 -Wchar-subscripts
2283 -----------------
2284 **Diagnostic text:**
2286 +------------------------------------------------------------+-------------------------+-------------------------------------+
2287 |:warning:`warning:` |nbsp| :diagtext:`array section` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is of type 'char'`|
2288 |                                                            ||:diagtext:`lower bound`||                                     |
2289 |                                                            |+-----------------------+|                                     |
2290 |                                                            ||:diagtext:`length`     ||                                     |
2291 |                                                            |+-----------------------+|                                     |
2292 +------------------------------------------------------------+-------------------------+-------------------------------------+
2294 +------------------------------------------------------------------------+
2295 |:warning:`warning:` |nbsp| :diagtext:`array subscript is of type 'char'`|
2296 +------------------------------------------------------------------------+
2299 -Wclang-cl-pch
2300 --------------
2301 This diagnostic is enabled by default.
2303 **Diagnostic text:**
2305 +-------------------------------------------------------------------------------------------------------------------------+
2306 |:warning:`warning:` |nbsp| :diagtext:`support for '/Yc' with more than one source file not implemented yet; flag ignored`|
2307 +-------------------------------------------------------------------------------------------------------------------------+
2309 +------------------------------------------------------------------------------------------------------------------------------+
2310 |:warning:`warning:` |nbsp| :diagtext:`support for '/Yc' and '/Yu' with different filenames not implemented yet; flags ignored`|
2311 +------------------------------------------------------------------------------------------------------------------------------+
2313 +--------------------------------------------------------------------------------------------------------------------------------------+
2314 |:warning:`warning:` |nbsp| :diagtext:`support for '`:placeholder:`A`:diagtext:`' without a filename not implemented yet; flag ignored`|
2315 +--------------------------------------------------------------------------------------------------------------------------------------+
2317 +----------------------------------------------------------------------------------------------------------------------------------------------------+
2318 |:warning:`warning:` |nbsp| :diagtext:`support for '`:placeholder:`A`:diagtext:`' without a corresponding /FI flag not implemented yet; flag ignored`|
2319 +----------------------------------------------------------------------------------------------------------------------------------------------------+
2322 -Wclass-varargs
2323 ---------------
2324 Some of the diagnostics controlled by this flag are enabled by default.
2326 Also controls `-Wnon-pod-varargs`_.
2328 **Diagnostic text:**
2330 +---------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------+
2331 |:warning:`warning:` |nbsp| :diagtext:`passing object of class type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`through variadic` |nbsp| |+-----------------------+|+--------------------------------------------------------------------+|
2332 |                                                                                                                                       ||:diagtext:`function`   |||                                                                    ||
2333 |                                                                                                                                       |+-----------------------+|+--------------------------------------------------------------------+|
2334 |                                                                                                                                       ||:diagtext:`block`      |||+------------------------------------------------------------------+||
2335 |                                                                                                                                       |+-----------------------+|||:diagtext:`; did you mean to call '`:placeholder:`D`:diagtext:`'?`|||
2336 |                                                                                                                                       ||:diagtext:`method`     |||+------------------------------------------------------------------+||
2337 |                                                                                                                                       |+-----------------------+|+--------------------------------------------------------------------+|
2338 |                                                                                                                                       ||:diagtext:`constructor`||                                                                      |
2339 |                                                                                                                                       |+-----------------------+|                                                                      |
2340 +---------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------+
2343 -Wcomma
2344 -------
2345 **Diagnostic text:**
2347 +-----------------------------------------------------------------------------+
2348 |:warning:`warning:` |nbsp| :diagtext:`possible misuse of comma operator here`|
2349 +-----------------------------------------------------------------------------+
2352 -Wcomment
2353 ---------
2354 Some of the diagnostics controlled by this flag are enabled by default.
2356 **Diagnostic text:**
2358 +--------------------------------------------------------------------------------------------------+
2359 |:warning:`warning:` |nbsp| :diagtext:`escaped newline between \*/ characters at block comment end`|
2360 +--------------------------------------------------------------------------------------------------+
2362 +-----------------------------------------------------------------------------------+
2363 |:warning:`warning:` |nbsp| :diagtext:`// comments are not allowed in this language`|
2364 +-----------------------------------------------------------------------------------+
2366 +------------------------------------------------------------+
2367 |:warning:`warning:` |nbsp| :diagtext:`multi-line // comment`|
2368 +------------------------------------------------------------+
2370 +-----------------------------------------------------------------+
2371 |:warning:`warning:` |nbsp| :diagtext:`'/\*' within block comment`|
2372 +-----------------------------------------------------------------+
2375 -Wcomments
2376 ----------
2377 Synonym for `-Wcomment`_.
2380 -Wcompare-distinct-pointer-types
2381 --------------------------------
2382 This diagnostic is enabled by default.
2384 **Diagnostic text:**
2386 +---------------------------------------------------------------------------+
2387 |:warning:`warning:` |nbsp| :diagtext:`comparison of distinct pointer types`|
2388 +---------------------------------------------------------------------------+
2391 -Wcomplex-component-init
2392 ------------------------
2393 **Diagnostic text:**
2395 +----------------------------------------------------------------------------------------------------------------------+
2396 |:warning:`warning:` |nbsp| :diagtext:`complex initialization specifying real and imaginary components is an extension`|
2397 +----------------------------------------------------------------------------------------------------------------------+
2400 -Wconditional-type-mismatch
2401 ---------------------------
2402 This diagnostic is enabled by default.
2404 **Diagnostic text:**
2406 +----------------------------------------------------------------------------------------------+
2407 |:warning:`warning:` |nbsp| :diagtext:`pointer/integer type mismatch in conditional expression`|
2408 +----------------------------------------------------------------------------------------------+
2411 -Wconditional-uninitialized
2412 ---------------------------
2413 **Diagnostic text:**
2415 +----------------------------------------------------------------------------------------------------------------------------+-------------------------------+
2416 |:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be uninitialized when` |nbsp| |+-----------------------------+|
2417 |                                                                                                                            ||:diagtext:`used here`        ||
2418 |                                                                                                                            |+-----------------------------+|
2419 |                                                                                                                            ||:diagtext:`captured by block`||
2420 |                                                                                                                            |+-----------------------------+|
2421 +----------------------------------------------------------------------------------------------------------------------------+-------------------------------+
2424 -Wconfig-macros
2425 ---------------
2426 This diagnostic is enabled by default.
2428 **Diagnostic text:**
2430 +---------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+---------------------------------------------------------+
2431 |: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`|
2432 |                           ||:diagtext:`definition`||                                                                                                                                               ||+----------------------------------------------+||                                                         |
2433 |                           |+----------------------+|                                                                                                                                               |||:diagtext:`-D`:placeholder:`B`:diagtext:`=...`|||                                                         |
2434 |                           ||:diagtext:`#undef`    ||                                                                                                                                               ||+----------------------------------------------+||                                                         |
2435 |                           |+----------------------+|                                                                                                                                               |+------------------------------------------------+|                                                         |
2436 |                           |                        |                                                                                                                                               ||+------------------------------+                ||                                                         |
2437 |                           |                        |                                                                                                                                               |||:diagtext:`-U`:placeholder:`B`|                ||                                                         |
2438 |                           |                        |                                                                                                                                               ||+------------------------------+                ||                                                         |
2439 |                           |                        |                                                                                                                                               |+------------------------------------------------+|                                                         |
2440 +---------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+---------------------------------------------------------+
2443 -Wconstant-conversion
2444 ---------------------
2445 This diagnostic is enabled by default.
2447 Also controls `-Wbitfield-constant-conversion`_.
2449 **Diagnostic text:**
2451 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2452 |: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`|
2453 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2456 -Wconstant-logical-operand
2457 --------------------------
2458 This diagnostic is enabled by default.
2460 **Diagnostic text:**
2462 +----------------------------------------------------------------------------------------------------------+
2463 |:warning:`warning:` |nbsp| :diagtext:`use of logical '`:placeholder:`A`:diagtext:`' with constant operand`|
2464 +----------------------------------------------------------------------------------------------------------+
2467 -Wconstexpr-not-const
2468 ---------------------
2469 This diagnostic is enabled by default.
2471 **Diagnostic text:**
2473 +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
2474 |: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`|
2475 +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
2478 -Wconsumed
2479 ----------
2480 **Diagnostic text:**
2482 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
2483 |:warning:`warning:` |nbsp| :diagtext:`consumed analysis attribute is attached to member of class '`:placeholder:`A`:diagtext:`' which isn't marked as consumable`|
2484 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
2486 +--------------------------------------------------------------------------------------------------------------------------------+
2487 |:warning:`warning:` |nbsp| :diagtext:`state of variable '`:placeholder:`A`:diagtext:`' must match at the entry and exit of loop`|
2488 +--------------------------------------------------------------------------------------------------------------------------------+
2490 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2491 |:warning:`warning:` |nbsp| :diagtext:`parameter '`:placeholder:`A`:diagtext:`' not in expected state when the function returns: expected '`:placeholder:`B`:diagtext:`', observed '`:placeholder:`C`:diagtext:`'`|
2492 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2494 +-------------------------------------------------------------------------------------------------------------------------------------------------------+
2495 |:warning:`warning:` |nbsp| :diagtext:`argument not in expected state; expected '`:placeholder:`A`:diagtext:`', observed '`:placeholder:`B`:diagtext:`'`|
2496 +-------------------------------------------------------------------------------------------------------------------------------------------------------+
2498 +---------------------------------------------------------------------------------------------------------------+
2499 |:warning:`warning:` |nbsp| :diagtext:`return state set for an unconsumable type '`:placeholder:`A`:diagtext:`'`|
2500 +---------------------------------------------------------------------------------------------------------------+
2502 +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
2503 |:warning:`warning:` |nbsp| :diagtext:`return value not in expected state; expected '`:placeholder:`A`:diagtext:`', observed '`:placeholder:`B`:diagtext:`'`|
2504 +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
2506 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2507 |: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`|
2508 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2510 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2511 |:warning:`warning:` |nbsp| :diagtext:`invalid invocation of method '`:placeholder:`A`:diagtext:`' on a temporary object while it is in the '`:placeholder:`B`:diagtext:`' state`|
2512 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2515 -Wconversion
2516 ------------
2517 Some of the diagnostics controlled by this flag are enabled by default.
2519 Also controls `-Wbitfield-enum-conversion`_, `-Wbool-conversion`_, `-Wconstant-conversion`_, `-Wenum-conversion`_, `-Wfloat-conversion`_, `-Wint-conversion`_, `-Wliteral-conversion`_, `-Wnon-literal-null-conversion`_, `-Wnull-conversion`_, `-Wobjc-literal-conversion`_, `-Wshorten-64-to-32`_, `-Wsign-conversion`_, `-Wstring-conversion`_.
2521 **Diagnostic text:**
2523 +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
2524 |:warning:`warning:` |nbsp| :diagtext:`implicit conversion discards imaginary component:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
2525 +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
2527 +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
2528 |:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses floating-point precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
2529 +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
2531 +---------------------------------------------------------------------------------------------------------------------------------------------------------+
2532 |:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses integer precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
2533 +---------------------------------------------------------------------------------------------------------------------------------------------------------+
2535 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
2536 |:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns vector to scalar:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
2537 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
2539 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2540 |: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`|
2541 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2543 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2544 |: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`|
2545 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2548 -Wconversion-null
2549 -----------------
2550 Synonym for `-Wnull-conversion`_.
2553 -Wcoroutine
2554 -----------
2555 Synonym for `-Wcoroutine-missing-unhandled-exception`_.
2558 -Wcoroutine-missing-unhandled-exception
2559 ---------------------------------------
2560 This diagnostic is enabled by default.
2562 **Diagnostic text:**
2564 +-----------------------------------------------------------------------------------------------------------------------------------------------------+
2565 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is required to declare the member 'unhandled\_exception()' when exceptions are enabled`|
2566 +-----------------------------------------------------------------------------------------------------------------------------------------------------+
2569 -Wcovered-switch-default
2570 ------------------------
2571 **Diagnostic text:**
2573 +--------------------------------------------------------------------------------------------------+
2574 |:warning:`warning:` |nbsp| :diagtext:`default label in switch which covers all enumeration values`|
2575 +--------------------------------------------------------------------------------------------------+
2578 -Wcpp
2579 -----
2580 Synonym for `-W#warnings`_.
2583 -Wcstring-format-directive
2584 --------------------------
2585 **Diagnostic text:**
2587 +------------------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+------------------------+
2588 |: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| |+----------------------+|
2589 |                                                                                                            ||:diagtext:`NSString`||                                                                                            ||:diagtext:`method`    ||
2590 |                                                                                                            |+--------------------+|                                                                                            |+----------------------+|
2591 |                                                                                                            ||:diagtext:`CFString`||                                                                                            ||:diagtext:`CFfunction`||
2592 |                                                                                                            |+--------------------+|                                                                                            |+----------------------+|
2593 +------------------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+------------------------+
2596 -Wctor-dtor-privacy
2597 -------------------
2598 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
2600 -Wcuda-compat
2601 -------------
2602 Some of the diagnostics controlled by this flag are enabled by default.
2604 **Diagnostic text:**
2606 +-------------------------------------------------------------------------------------------------------------------------------------------------------------+
2607 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute parameter` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is negative and will be ignored`|
2608 +-------------------------------------------------------------------------------------------------------------------------------------------------------------+
2610 +---------------------------------------------------------------------------------------------------------------------------------+
2611 |:warning:`warning:` |nbsp| :diagtext:`nvcc does not allow '\_\_`:placeholder:`A`:diagtext:`\_\_' to appear after '()' in lambdas`|
2612 +---------------------------------------------------------------------------------------------------------------------------------+
2614 +------------------------------------------------------------------------------------------------------------+
2615 |:warning:`warning:` |nbsp| :diagtext:`ignored 'inline' attribute on kernel function` |nbsp| :placeholder:`A`|
2616 +------------------------------------------------------------------------------------------------------------+
2618 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
2619 |:warning:`warning:` |nbsp| :diagtext:`kernel function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a member function; this may not be accepted by nvcc`|
2620 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
2622 +--------------------------------------------------------------------------------------------------------------+
2623 |:warning:`warning:` |nbsp| :diagtext:`argument to '#pragma unroll' should not be in parentheses in CUDA C/C++`|
2624 +--------------------------------------------------------------------------------------------------------------+
2627 -Wcustom-atomic-properties
2628 --------------------------
2629 **Diagnostic text:**
2631 +---------------------------------------------------------------------------------------------------------------------------------------+--------------------+----------------------------------------------------------------------------+
2632 |: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)`|
2633 |                                                                                                                                       ||:diagtext:`getter`||                                                                            |
2634 |                                                                                                                                       |+------------------+|                                                                            |
2635 |                                                                                                                                       ||:diagtext:`setter`||                                                                            |
2636 |                                                                                                                                       |+------------------+|                                                                            |
2637 +---------------------------------------------------------------------------------------------------------------------------------------+--------------------+----------------------------------------------------------------------------+
2640 -Wdangling-else
2641 ---------------
2642 This diagnostic is enabled by default.
2644 **Diagnostic text:**
2646 +---------------------------------------------------------------------------------+
2647 |:warning:`warning:` |nbsp| :diagtext:`add explicit braces to avoid dangling else`|
2648 +---------------------------------------------------------------------------------+
2651 -Wdangling-field
2652 ----------------
2653 This diagnostic is enabled by default.
2655 **Diagnostic text:**
2657 +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
2658 |:warning:`warning:` |nbsp| :diagtext:`binding reference member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to stack allocated parameter` |nbsp| :placeholder:`B`|
2659 +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
2661 +----------------------------------------------------------------+----------------------------------+----------------------------------------------------------------------------------+
2662 |:warning:`warning:` |nbsp| :diagtext:`binding reference` |nbsp| |+--------------------------------+|:diagtext:`member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to a temporary value`|
2663 |                                                                ||                                ||                                                                                  |
2664 |                                                                |+--------------------------------+|                                                                                  |
2665 |                                                                ||:diagtext:`subobject of` |nbsp| ||                                                                                  |
2666 |                                                                |+--------------------------------+|                                                                                  |
2667 +----------------------------------------------------------------+----------------------------------+----------------------------------------------------------------------------------+
2669 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2670 |:warning:`warning:` |nbsp| :diagtext:`initializing pointer member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with the stack address of parameter` |nbsp| :placeholder:`B`|
2671 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2674 -Wdangling-initializer-list
2675 ---------------------------
2676 This diagnostic is enabled by default.
2678 **Diagnostic text:**
2680 +-----------------------------------------------------------------------------------------------------------------+---------------------------------+
2681 |:warning:`warning:` |nbsp| :diagtext:`array backing the initializer list will be destroyed at the end of` |nbsp| |+-------------------------------+|
2682 |                                                                                                                 ||:diagtext:`the full-expression`||
2683 |                                                                                                                 |+-------------------------------+|
2684 |                                                                                                                 ||:diagtext:`the constructor`    ||
2685 |                                                                                                                 |+-------------------------------+|
2686 +-----------------------------------------------------------------------------------------------------------------+---------------------------------+
2689 -Wdate-time
2690 -----------
2691 **Diagnostic text:**
2693 +------------------------------------------------------------------------------------------+
2694 |:warning:`warning:` |nbsp| :diagtext:`expansion of date or time macro is not reproducible`|
2695 +------------------------------------------------------------------------------------------+
2698 -Wdealloc-in-category
2699 ---------------------
2700 This diagnostic is enabled by default.
2702 **Diagnostic text:**
2704 +---------------------------------------------------------------------------------+
2705 |:warning:`warning:` |nbsp| :diagtext:`-dealloc is being overridden in a category`|
2706 +---------------------------------------------------------------------------------+
2709 -Wdebug-compression-unavailable
2710 -------------------------------
2711 This diagnostic is enabled by default.
2713 **Diagnostic text:**
2715 +------------------------------------------------------------------------------------------+
2716 |:warning:`warning:` |nbsp| :diagtext:`cannot compress debug sections (zlib not installed)`|
2717 +------------------------------------------------------------------------------------------+
2720 -Wdeclaration-after-statement
2721 -----------------------------
2722 **Diagnostic text:**
2724 +-----------------------------------------------------------------------------------+
2725 |:warning:`warning:` |nbsp| :diagtext:`ISO C90 forbids mixing declarations and code`|
2726 +-----------------------------------------------------------------------------------+
2729 -Wdelegating-ctor-cycles
2730 ------------------------
2731 This diagnostic is an error by default, but the flag ``-Wno-delegating-ctor-cycles`` can be used to disable the error.
2733 **Diagnostic text:**
2735 +------------------------------------------------------------------------------------------------------------------------+
2736 |:error:`error:` |nbsp| :diagtext:`constructor for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`creates a delegation cycle`|
2737 +------------------------------------------------------------------------------------------------------------------------+
2740 -Wdelete-incomplete
2741 -------------------
2742 This diagnostic is enabled by default.
2744 **Diagnostic text:**
2746 +-------------------------------------------------------------------------------------------------------------------+
2747 |:warning:`warning:` |nbsp| :diagtext:`cannot delete expression with pointer-to-'void' type` |nbsp| :placeholder:`A`|
2748 +-------------------------------------------------------------------------------------------------------------------+
2750 +--------------------------------------------------------------------------------------------------------------------------------------------------+
2751 |:warning:`warning:` |nbsp| :diagtext:`deleting pointer to incomplete type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may cause undefined behavior`|
2752 +--------------------------------------------------------------------------------------------------------------------------------------------------+
2755 -Wdelete-non-virtual-dtor
2756 -------------------------
2757 Some of the diagnostics controlled by this flag are enabled by default.
2759 **Diagnostic text:**
2761 +---------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------+
2762 |:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`called on` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that is abstract but has non-virtual destructor`|
2763 |                           ||:diagtext:`delete`    ||                                                                                                                        |
2764 |                           |+----------------------+|                                                                                                                        |
2765 |                           ||:diagtext:`destructor`||                                                                                                                        |
2766 |                           |+----------------------+|                                                                                                                        |
2767 +---------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------+
2769 +---------------------------+------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
2770 |:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`called on non-final` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that has virtual functions but non-virtual destructor`|
2771 |                           ||:diagtext:`delete`    ||                                                                                                                                        |
2772 |                           |+----------------------+|                                                                                                                                        |
2773 |                           ||:diagtext:`destructor`||                                                                                                                                        |
2774 |                           |+----------------------+|                                                                                                                                        |
2775 +---------------------------+------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
2778 -Wdeprecated
2779 ------------
2780 Some of the diagnostics controlled by this flag are enabled by default.
2782 Also controls `-Wdeprecated-attributes`_, `-Wdeprecated-declarations`_, `-Wdeprecated-dynamic-exception-spec`_, `-Wdeprecated-increment-bool`_, `-Wdeprecated-register`_, `-Wdeprecated-writable-strings`_.
2784 **Diagnostic text:**
2786 +---------------------------------------------------------------+
2787 |:warning:`warning:` |nbsp| :diagtext:`-O4 is equivalent to -O3`|
2788 +---------------------------------------------------------------+
2790 +---------------------------------------------------------------------------------------------------------+
2791 |:warning:`warning:` |nbsp| :diagtext:`access declarations are deprecated; use using declarations instead`|
2792 +---------------------------------------------------------------------------------------------------------+
2794 +--------------------------------------------------------------------------+---------------------------------+-----------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------+
2795 |:warning:`warning:` |nbsp| :diagtext:`definition of implicit copy` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated because it has a user-declared` |nbsp| |+------------------------------------------------------------+|
2796 |                                                                          ||:diagtext:`constructor`        ||                                                                                                                       ||+------------------------+---------------------------------+||
2797 |                                                                          |+-------------------------------+|                                                                                                                       |||:diagtext:`copy` |nbsp| |+-------------------------------+|||
2798 |                                                                          ||:diagtext:`assignment operator`||                                                                                                                       |||                        ||:diagtext:`assignment operator`||||
2799 |                                                                          |+-------------------------------+|                                                                                                                       |||                        |+-------------------------------+|||
2800 |                                                                          |                                 |                                                                                                                       |||                        ||:diagtext:`constructor`        ||||
2801 |                                                                          |                                 |                                                                                                                       |||                        |+-------------------------------+|||
2802 |                                                                          |                                 |                                                                                                                       ||+------------------------+---------------------------------+||
2803 |                                                                          |                                 |                                                                                                                       |+------------------------------------------------------------+|
2804 |                                                                          |                                 |                                                                                                                       ||:diagtext:`destructor`                                      ||
2805 |                                                                          |                                 |                                                                                                                       |+------------------------------------------------------------+|
2806 +--------------------------------------------------------------------------+---------------------------------+-----------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------+
2808 +-------------------------------------------------------------------------------------------------------------------------------------+
2809 |:warning:`warning:` |nbsp| :diagtext:`out-of-line definition of constexpr static data member is redundant in C++17 and is deprecated`|
2810 +-------------------------------------------------------------------------------------------------------------------------------------+
2812 +----------------------------------------------------------------------------------------------------------------------------------------+
2813 |:warning:`warning:` |nbsp| :diagtext:`argument '`:placeholder:`A`:diagtext:`' is deprecated, use '`:placeholder:`B`:diagtext:`' instead`|
2814 +----------------------------------------------------------------------------------------------------------------------------------------+
2816 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2817 |:warning:`warning:` |nbsp| :diagtext:`treating '`:placeholder:`A`:diagtext:`' input as '`:placeholder:`B`:diagtext:`' when in C++ mode, this behavior is deprecated`|
2818 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2820 +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
2821 |:warning:`warning:` |nbsp| :diagtext:`OpenCL version` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not support the option '`:placeholder:`B`:diagtext:`'`|
2822 +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
2824 +------------------------------------------------------------------------------------+
2825 |:warning:`warning:` |nbsp| :diagtext:`Use of 'long' with '\_\_vector' is deprecated`|
2826 +------------------------------------------------------------------------------------+
2829 -Wdeprecated-attributes
2830 -----------------------
2831 This diagnostic is enabled by default.
2833 **Diagnostic text:**
2835 +------------------------------------------------------------------------------------------------------------------------------------------------+
2836 |:warning:`warning:` |nbsp| :diagtext:`specifying vector types with the 'mode' attribute is deprecated; use the 'vector\_size' attribute instead`|
2837 +------------------------------------------------------------------------------------------------------------------------------------------------+
2840 -Wdeprecated-declarations
2841 -------------------------
2842 This diagnostic is enabled by default.
2844 **Diagnostic text:**
2846 +--------------------------------------------------------------------------------------------------------------------+
2847 |:warning:`warning:` |nbsp| :diagtext:`specifying 'uuid' as an ATL attribute is deprecated; use \_\_declspec instead`|
2848 +--------------------------------------------------------------------------------------------------------------------+
2850 +-----------------------------------------------------------------------------------------------------------------+
2851 |:warning:`warning:` |nbsp| :diagtext:`use of C-style parameters in Objective-C method declarations is deprecated`|
2852 +-----------------------------------------------------------------------------------------------------------------+
2854 +----------------------------------------------------------------------------+
2855 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated`|
2856 +----------------------------------------------------------------------------+
2858 +---------------------------------------------------------------------------------------------------------------------+
2859 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be deprecated because the receiver type is unknown`|
2860 +---------------------------------------------------------------------------------------------------------------------+
2862 +-----------------------------------------------------------------------------------------------------+
2863 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated:` |nbsp| :placeholder:`B`|
2864 +-----------------------------------------------------------------------------------------------------+
2866 +-------------------------------------------------------------------------------------------------------------------------------------+
2867 |:warning:`warning:` |nbsp| :diagtext:`property access is using` |nbsp| :placeholder:`A` |nbsp| :diagtext:`method which is deprecated`|
2868 +-------------------------------------------------------------------------------------------------------------------------------------+
2871 -Wdeprecated-dynamic-exception-spec
2872 -----------------------------------
2873 **Diagnostic text:**
2875 +--------------------------------------------------------------------------------------+
2876 |:warning:`warning:` |nbsp| :diagtext:`dynamic exception specifications are deprecated`|
2877 +--------------------------------------------------------------------------------------+
2880 -Wdeprecated-implementations
2881 ----------------------------
2882 **Diagnostic text:**
2884 +----------------------------------------------------------------------+----------------------+
2885 |:warning:`warning:` |nbsp| :diagtext:`implementing deprecated` |nbsp| |+--------------------+|
2886 |                                                                      ||:diagtext:`method`  ||
2887 |                                                                      |+--------------------+|
2888 |                                                                      ||:diagtext:`class`   ||
2889 |                                                                      |+--------------------+|
2890 |                                                                      ||:diagtext:`category`||
2891 |                                                                      |+--------------------+|
2892 +----------------------------------------------------------------------+----------------------+
2894 +----------------------------------------------------------------------+
2895 |:warning:`warning:` |nbsp| :diagtext:`implementing unavailable method`|
2896 +----------------------------------------------------------------------+
2899 -Wdeprecated-increment-bool
2900 ---------------------------
2901 This diagnostic is enabled by default.
2903 **Diagnostic text:**
2905 +---------------------------------------------------------------------------------------------------------------------+
2906 |:warning:`warning:` |nbsp| :diagtext:`incrementing expression of type bool is deprecated and incompatible with C++17`|
2907 +---------------------------------------------------------------------------------------------------------------------+
2910 -Wdeprecated-objc-isa-usage
2911 ---------------------------
2912 This diagnostic is enabled by default.
2914 **Diagnostic text:**
2916 +-------------------------------------------------------------------------------------------------------------------+
2917 |:warning:`warning:` |nbsp| :diagtext:`assignment to Objective-C's isa is deprecated in favor of object\_setClass()`|
2918 +-------------------------------------------------------------------------------------------------------------------+
2920 +----------------------------------------------------------------------------------------------------------------------+
2921 |:warning:`warning:` |nbsp| :diagtext:`direct access to Objective-C's isa is deprecated in favor of object\_getClass()`|
2922 +----------------------------------------------------------------------------------------------------------------------+
2925 -Wdeprecated-objc-pointer-introspection
2926 ---------------------------------------
2927 This diagnostic is enabled by default.
2929 Also controls `-Wdeprecated-objc-pointer-introspection-performSelector`_.
2931 **Diagnostic text:**
2933 +--------------------------------------------------------------------------------------------------------------------------+
2934 |:warning:`warning:` |nbsp| :diagtext:`bitmasking for introspection of Objective-C object pointers is strongly discouraged`|
2935 +--------------------------------------------------------------------------------------------------------------------------+
2938 -Wdeprecated-objc-pointer-introspection-performSelector
2939 -------------------------------------------------------
2940 This diagnostic is enabled by default.
2942 **Diagnostic text:**
2944 +--------------------------------------------------------------------------------------------------------------------------+
2945 |:warning:`warning:` |nbsp| :diagtext:`bitmasking for introspection of Objective-C object pointers is strongly discouraged`|
2946 +--------------------------------------------------------------------------------------------------------------------------+
2949 -Wdeprecated-register
2950 ---------------------
2951 This diagnostic is enabled by default.
2953 **Diagnostic text:**
2955 +-------------------------------------------------------------------------------------------------------------------+
2956 |:warning:`warning:` |nbsp| :diagtext:`'register' storage class specifier is deprecated and incompatible with C++17`|
2957 +-------------------------------------------------------------------------------------------------------------------+
2960 -Wdeprecated-writable-strings
2961 -----------------------------
2962 Synonym for `-Wc++11-compat-deprecated-writable-strings`_.
2965 -Wdirect-ivar-access
2966 --------------------
2967 **Diagnostic text:**
2969 +------------------------------------------------------------------------------------------------------------------------------+
2970 |:warning:`warning:` |nbsp| :diagtext:`instance variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is being directly accessed`|
2971 +------------------------------------------------------------------------------------------------------------------------------+
2974 -Wdisabled-macro-expansion
2975 --------------------------
2976 **Diagnostic text:**
2978 +----------------------------------------------------------------------------+
2979 |:warning:`warning:` |nbsp| :diagtext:`disabled expansion of recursive macro`|
2980 +----------------------------------------------------------------------------+
2983 -Wdisabled-optimization
2984 -----------------------
2985 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
2987 -Wdiscard-qual
2988 --------------
2989 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
2991 -Wdistributed-object-modifiers
2992 ------------------------------
2993 This diagnostic is enabled by default.
2995 **Diagnostic text:**
2997 +----------------------------------------------------------------------------------------------------------------------------------------------+
2998 |:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on parameter type in implementation of` |nbsp| :placeholder:`A`|
2999 +----------------------------------------------------------------------------------------------------------------------------------------------+
3001 +-------------------------------------------------------------------------------------------------------------------------------------------+
3002 |:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on return type in implementation of` |nbsp| :placeholder:`A`|
3003 +-------------------------------------------------------------------------------------------------------------------------------------------+
3006 -Wdiv-by-zero
3007 -------------
3008 Synonym for `-Wdivision-by-zero`_.
3011 -Wdivision-by-zero
3012 ------------------
3013 This diagnostic is enabled by default.
3015 **Diagnostic text:**
3017 +---------------------------+-----------------------+----------------------------------------+
3018 |:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`by zero is undefined`|
3019 |                           ||:diagtext:`remainder`||                                        |
3020 |                           |+---------------------+|                                        |
3021 |                           ||:diagtext:`division` ||                                        |
3022 |                           |+---------------------+|                                        |
3023 +---------------------------+-----------------------+----------------------------------------+
3026 -Wdll-attribute-on-redeclaration
3027 --------------------------------
3028 This diagnostic is enabled by default.
3030 **Diagnostic text:**
3032 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3033 |:warning:`warning:` |nbsp| :diagtext:`redeclaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not add` |nbsp| :placeholder:`B` |nbsp| :diagtext:`attribute`|
3034 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3037 -Wdllexport-explicit-instantiation-decl
3038 ---------------------------------------
3039 This diagnostic is enabled by default.
3041 **Diagnostic text:**
3043 +---------------------------------------------------------------------------------------------------+
3044 |:warning:`warning:` |nbsp| :diagtext:`explicit instantiation declaration should not be 'dllexport'`|
3045 +---------------------------------------------------------------------------------------------------+
3048 -Wdllimport-static-field-def
3049 ----------------------------
3050 This diagnostic is enabled by default.
3052 **Diagnostic text:**
3054 +---------------------------------------------------------------------------+
3055 |:warning:`warning:` |nbsp| :diagtext:`definition of dllimport static field`|
3056 +---------------------------------------------------------------------------+
3059 -Wdocumentation
3060 ---------------
3061 Also controls `-Wdocumentation-deprecated-sync`_, `-Wdocumentation-html`_.
3063 **Diagnostic text:**
3065 +----------------------------------------+----------------+-----------------------+------------------------------------------------------------------------+-----------------------+-------------------------------+
3066 |:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+---------------------+|:diagtext:`' command should not be used in a comment attached to a non-`|+---------------------+| |nbsp| :diagtext:`declaration`|
3067 |                                        ||:diagtext:`\\`|||:diagtext:`class`    ||                                                                        ||:diagtext:`class`    ||                               |
3068 |                                        |+--------------+|+---------------------+|                                                                        |+---------------------+|                               |
3069 |                                        ||:diagtext:`@` |||:diagtext:`interface`||                                                                        ||:diagtext:`interface`||                               |
3070 |                                        |+--------------+|+---------------------+|                                                                        |+---------------------+|                               |
3071 |                                        |                ||:diagtext:`protocol` ||                                                                        ||:diagtext:`protocol` ||                               |
3072 |                                        |                |+---------------------+|                                                                        |+---------------------+|                               |
3073 |                                        |                ||:diagtext:`struct`   ||                                                                        ||:diagtext:`struct`   ||                               |
3074 |                                        |                |+---------------------+|                                                                        |+---------------------+|                               |
3075 |                                        |                ||:diagtext:`union`    ||                                                                        ||:diagtext:`union`    ||                               |
3076 |                                        |                |+---------------------+|                                                                        |+---------------------+|                               |
3077 +----------------------------------------+----------------+-----------------------+------------------------------------------------------------------------+-----------------------+-------------------------------+
3079 +-----------------------------------------------------------+----------------+-----------------------------+
3080 |:warning:`warning:` |nbsp| :diagtext:`duplicated command '`|+--------------+|:placeholder:`B`:diagtext:`'`|
3081 |                                                           ||:diagtext:`\\`||                             |
3082 |                                                           |+--------------+|                             |
3083 |                                                           ||:diagtext:`@` ||                             |
3084 |                                                           |+--------------+|                             |
3085 +-----------------------------------------------------------+----------------+-----------------------------+
3087 +------------------------------------------------------------------+----------------+-------------------------------------+
3088 |:warning:`warning:` |nbsp| :diagtext:`empty paragraph passed to '`|+--------------+|:placeholder:`B`:diagtext:`' command`|
3089 |                                                                  ||:diagtext:`\\`||                                     |
3090 |                                                                  |+--------------+|                                     |
3091 |                                                                  ||:diagtext:`@` ||                                     |
3092 |                                                                  |+--------------+|                                     |
3093 +------------------------------------------------------------------+----------------+-------------------------------------+
3095 +----------------------------------------+----------------+--------------------------+---------------------------------------------------------------------------------------------+
3096 |:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+------------------------+|:diagtext:`' command should not be used in a comment attached to a non-container declaration`|
3097 |                                        ||:diagtext:`\\`|||:diagtext:`classdesign` ||                                                                                             |
3098 |                                        |+--------------+|+------------------------+|                                                                                             |
3099 |                                        ||:diagtext:`@` |||:diagtext:`coclass`     ||                                                                                             |
3100 |                                        |+--------------+|+------------------------+|                                                                                             |
3101 |                                        |                ||:diagtext:`dependency`  ||                                                                                             |
3102 |                                        |                |+------------------------+|                                                                                             |
3103 |                                        |                ||:diagtext:`helper`      ||                                                                                             |
3104 |                                        |                |+------------------------+|                                                                                             |
3105 |                                        |                ||:diagtext:`helperclass` ||                                                                                             |
3106 |                                        |                |+------------------------+|                                                                                             |
3107 |                                        |                ||:diagtext:`helps`       ||                                                                                             |
3108 |                                        |                |+------------------------+|                                                                                             |
3109 |                                        |                ||:diagtext:`instancesize`||                                                                                             |
3110 |                                        |                |+------------------------+|                                                                                             |
3111 |                                        |                ||:diagtext:`ownership`   ||                                                                                             |
3112 |                                        |                |+------------------------+|                                                                                             |
3113 |                                        |                ||:diagtext:`performance` ||                                                                                             |
3114 |                                        |                |+------------------------+|                                                                                             |
3115 |                                        |                ||:diagtext:`security`    ||                                                                                             |
3116 |                                        |                |+------------------------+|                                                                                             |
3117 |                                        |                ||:diagtext:`superclass`  ||                                                                                             |
3118 |                                        |                |+------------------------+|                                                                                             |
3119 +----------------------------------------+----------------+--------------------------+---------------------------------------------------------------------------------------------+
3121 +----------------------------------------+----------------+---------------------------+---------------------------------------------------------------------+-----------------------------------+-------------------------------+
3122 |:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+-------------------------+|:diagtext:`' command should be used in a comment attached to` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`declaration`|
3123 |                                        ||:diagtext:`\\`|||:diagtext:`function`     ||                                                                     ||:diagtext:`a function`           ||                               |
3124 |                                        |+--------------+|+-------------------------+|                                                                     |+---------------------------------+|                               |
3125 |                                        ||:diagtext:`@` |||:diagtext:`functiongroup`||                                                                     ||:diagtext:`a function`           ||                               |
3126 |                                        |+--------------+|+-------------------------+|                                                                     |+---------------------------------+|                               |
3127 |                                        |                ||:diagtext:`method`       ||                                                                     ||:diagtext:`an Objective-C method`||                               |
3128 |                                        |                |+-------------------------+|                                                                     |+---------------------------------+|                               |
3129 |                                        |                ||:diagtext:`methodgroup`  ||                                                                     ||:diagtext:`an Objective-C method`||                               |
3130 |                                        |                |+-------------------------+|                                                                     |+---------------------------------+|                               |
3131 |                                        |                ||:diagtext:`callback`     ||                                                                     ||:diagtext:`a pointer to function`||                               |
3132 |                                        |                |+-------------------------+|                                                                     |+---------------------------------+|                               |
3133 +----------------------------------------+----------------+---------------------------+---------------------------------------------------------------------+-----------------------------------+-------------------------------+
3135 +-------------------------------------------------------------------------------------------------------+
3136 |:warning:`warning:` |nbsp| :diagtext:`HTML start tag prematurely ended, expected attribute name or '>'`|
3137 +-------------------------------------------------------------------------------------------------------+
3139 +-------------------------------------------------------------------------------+
3140 |:warning:`warning:` |nbsp| :diagtext:`expected quoted string after equals sign`|
3141 +-------------------------------------------------------------------------------+
3143 +-----------------------------------------------------------------------------------------------------+
3144 |:warning:`warning:` |nbsp| :diagtext:`parameter '`:placeholder:`A`:diagtext:`' is already documented`|
3145 +-----------------------------------------------------------------------------------------------------+
3147 +------------------------------------------------------------------------------------------------------------------------------------------+
3148 |:warning:`warning:` |nbsp| :diagtext:`unrecognized parameter passing direction, valid directions are '\[in\]', '\[out\]' and '\[in,out\]'`|
3149 +------------------------------------------------------------------------------------------------------------------------------------------+
3151 +----------------------------------------+----------------+-------------------------------------------------------------------------------------------+
3152 |:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:diagtext:`param' command used in a comment that is not attached to a function declaration`|
3153 |                                        ||:diagtext:`\\`||                                                                                           |
3154 |                                        |+--------------+|                                                                                           |
3155 |                                        ||:diagtext:`@` ||                                                                                           |
3156 |                                        |+--------------+|                                                                                           |
3157 +----------------------------------------+----------------+-------------------------------------------------------------------------------------------+
3159 +---------------------------------------------------------------------------------------------------------------------+
3160 |:warning:`warning:` |nbsp| :diagtext:`parameter '`:placeholder:`A`:diagtext:`' not found in the function declaration`|
3161 +---------------------------------------------------------------------------------------------------------------------+
3163 +----------------------------------------+----------------+-------------------------------------------------------------------------------------+-------------------------------------+
3164 |:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command used in a comment that is attached to a` |nbsp| |+-----------------------------------+|
3165 |                                        ||:diagtext:`\\`||                                                                                     ||:diagtext:`function returning void`||
3166 |                                        |+--------------+|                                                                                     |+-----------------------------------+|
3167 |                                        ||:diagtext:`@` ||                                                                                     ||:diagtext:`constructor`            ||
3168 |                                        |+--------------+|                                                                                     |+-----------------------------------+|
3169 |                                        |                |                                                                                     ||:diagtext:`destructor`             ||
3170 |                                        |                |                                                                                     |+-----------------------------------+|
3171 |                                        |                |                                                                                     ||:diagtext:`method returning void`  ||
3172 |                                        |                |                                                                                     |+-----------------------------------+|
3173 +----------------------------------------+----------------+-------------------------------------------------------------------------------------+-------------------------------------+
3175 +----------------------------------------+----------------+----------------------------------------------------------------------------------------------------------------+
3176 |:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command used in a comment that is not attached to a function or method declaration`|
3177 |                                        ||:diagtext:`\\`||                                                                                                                |
3178 |                                        |+--------------+|                                                                                                                |
3179 |                                        ||:diagtext:`@` ||                                                                                                                |
3180 |                                        |+--------------+|                                                                                                                |
3181 +----------------------------------------+----------------+----------------------------------------------------------------------------------------------------------------+
3183 +--------------------------------------------------------------------------------------------------------------+
3184 |:warning:`warning:` |nbsp| :diagtext:`template parameter '`:placeholder:`A`:diagtext:`' is already documented`|
3185 +--------------------------------------------------------------------------------------------------------------+
3187 +----------------------------------------+----------------+--------------------------------------------------------------------------------------------+
3188 |:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:diagtext:`tparam' command used in a comment that is not attached to a template declaration`|
3189 |                                        ||:diagtext:`\\`||                                                                                            |
3190 |                                        |+--------------+|                                                                                            |
3191 |                                        ||:diagtext:`@` ||                                                                                            |
3192 |                                        |+--------------+|                                                                                            |
3193 +----------------------------------------+----------------+--------------------------------------------------------------------------------------------+
3195 +------------------------------------------------------------------------------------------------------------------------------+
3196 |:warning:`warning:` |nbsp| :diagtext:`template parameter '`:placeholder:`A`:diagtext:`' not found in the template declaration`|
3197 +------------------------------------------------------------------------------------------------------------------------------+
3199 +---------------------------------------------------------------------+
3200 |:warning:`warning:` |nbsp| :diagtext:`not a Doxygen trailing comment`|
3201 +---------------------------------------------------------------------+
3203 +----------------------------------------+----------------+------------------------------------------------------------------------------+
3204 |:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command does not terminate a verbatim text block`|
3205 |                                        ||:diagtext:`\\`||                                                                              |
3206 |                                        |+--------------+|                                                                              |
3207 |                                        ||:diagtext:`@` ||                                                                              |
3208 |                                        |+--------------+|                                                                              |
3209 +----------------------------------------+----------------+------------------------------------------------------------------------------+
3212 -Wdocumentation-deprecated-sync
3213 -------------------------------
3214 **Diagnostic text:**
3216 +----------------------------------------------------------------------------------------------------------------------------------+
3217 |:warning:`warning:` |nbsp| :diagtext:`declaration is marked with '\\deprecated' command but does not have a deprecation attribute`|
3218 +----------------------------------------------------------------------------------------------------------------------------------+
3221 -Wdocumentation-html
3222 --------------------
3223 **Diagnostic text:**
3225 +-----------------------------------------------------------------------------------------------+
3226 |:warning:`warning:` |nbsp| :diagtext:`HTML end tag '`:placeholder:`A`:diagtext:`' is forbidden`|
3227 +-----------------------------------------------------------------------------------------------+
3229 +--------------------------------------------------------------------------------+
3230 |:warning:`warning:` |nbsp| :diagtext:`HTML end tag does not match any start tag`|
3231 +--------------------------------------------------------------------------------+
3233 +--------------------------------------------------------------------------------------------------+
3234 |:warning:`warning:` |nbsp| :diagtext:`HTML tag '`:placeholder:`A`:diagtext:`' requires an end tag`|
3235 +--------------------------------------------------------------------------------------------------+
3237 +-----------------------------------------------------------------------------------------------------------------------------+
3238 |:warning:`warning:` |nbsp| :diagtext:`HTML start tag '`:placeholder:`A`:diagtext:`' closed by '`:placeholder:`B`:diagtext:`'`|
3239 +-----------------------------------------------------------------------------------------------------------------------------+
3242 -Wdocumentation-pedantic
3243 ------------------------
3244 Also controls `-Wdocumentation-unknown-command`_.
3246 **Diagnostic text:**
3248 +-----------------------------------------------------------------------------------------------+
3249 |:warning:`warning:` |nbsp| :diagtext:`whitespace is not allowed in parameter passing direction`|
3250 +-----------------------------------------------------------------------------------------------+
3253 -Wdocumentation-unknown-command
3254 -------------------------------
3255 **Diagnostic text:**
3257 +--------------------------------------------------------------------------------------------------------------------------------------------+
3258 |:warning:`warning:` |nbsp| :diagtext:`unknown command tag name '`:placeholder:`A`:diagtext:`'; did you mean '`:placeholder:`B`:diagtext:`'?`|
3259 +--------------------------------------------------------------------------------------------------------------------------------------------+
3261 +---------------------------------------------------------------+
3262 |:warning:`warning:` |nbsp| :diagtext:`unknown command tag name`|
3263 +---------------------------------------------------------------+
3266 -Wdollar-in-identifier-extension
3267 --------------------------------
3268 **Diagnostic text:**
3270 +--------------------------------------------------------+
3271 |:warning:`warning:` |nbsp| :diagtext:`'$' in identifier`|
3272 +--------------------------------------------------------+
3275 -Wdouble-promotion
3276 ------------------
3277 **Diagnostic text:**
3279 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3280 |:warning:`warning:` |nbsp| :diagtext:`implicit conversion increases floating-point precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
3281 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3284 -Wduplicate-decl-specifier
3285 --------------------------
3286 This diagnostic is enabled by default.
3288 **Diagnostic text:**
3290 +-----------------------------------------------------------------------------------------------------+
3291 |:warning:`warning:` |nbsp| :diagtext:`duplicate '`:placeholder:`A`:diagtext:`' declaration specifier`|
3292 +-----------------------------------------------------------------------------------------------------+
3294 +-----------------------------------------------------------------------------------------------------+
3295 |:warning:`warning:` |nbsp| :diagtext:`duplicate '`:placeholder:`A`:diagtext:`' declaration specifier`|
3296 +-----------------------------------------------------------------------------------------------------+
3299 -Wduplicate-enum
3300 ----------------
3301 **Diagnostic text:**
3303 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3304 |: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`|
3305 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3308 -Wduplicate-method-arg
3309 ----------------------
3310 **Diagnostic text:**
3312 +------------------------------------------------------------------------------------------------+
3313 |:warning:`warning:` |nbsp| :diagtext:`redeclaration of method parameter` |nbsp| :placeholder:`A`|
3314 +------------------------------------------------------------------------------------------------+
3317 -Wduplicate-method-match
3318 ------------------------
3319 **Diagnostic text:**
3321 +-----------------------------------------------------------------------------------------------------------------------------------+
3322 |:warning:`warning:` |nbsp| :diagtext:`multiple declarations of method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found and ignored`|
3323 +-----------------------------------------------------------------------------------------------------------------------------------+
3326 -Wduplicate-protocol
3327 --------------------
3328 This diagnostic is enabled by default.
3330 **Diagnostic text:**
3332 +-----------------------------------------------------------------------------------------------------------------------------+
3333 |:warning:`warning:` |nbsp| :diagtext:`duplicate protocol definition of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is ignored`|
3334 +-----------------------------------------------------------------------------------------------------------------------------+
3337 -Wdynamic-class-memaccess
3338 -------------------------
3339 This diagnostic is enabled by default.
3341 **Diagnostic text:**
3343 +---------------------------+-------------------------------+------------------------------------------------------------------------------------------------+----------------------------------------+---------------------------------------------------------------------------------------------+-------------------------+
3344 |: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| |+-----------------------+|
3345 |                           ||:diagtext:`destination for`  ||                                                                                                ||                                      ||                                                                                             ||:diagtext:`overwritten`||
3346 |                           |+-----------------------------+|                                                                                                |+--------------------------------------+|                                                                                             |+-----------------------+|
3347 |                           ||:diagtext:`source of`        ||                                                                                                ||:diagtext:`class containing a` |nbsp| ||                                                                                             ||:diagtext:`copied`     ||
3348 |                           |+-----------------------------+|                                                                                                |+--------------------------------------+|                                                                                             |+-----------------------+|
3349 |                           ||:diagtext:`first operand of` ||                                                                                                |                                        |                                                                                             ||:diagtext:`moved`      ||
3350 |                           |+-----------------------------+|                                                                                                |                                        |                                                                                             |+-----------------------+|
3351 |                           ||:diagtext:`second operand of`||                                                                                                |                                        |                                                                                             ||:diagtext:`compared`   ||
3352 |                           |+-----------------------------+|                                                                                                |                                        |                                                                                             |+-----------------------+|
3353 +---------------------------+-------------------------------+------------------------------------------------------------------------------------------------+----------------------------------------+---------------------------------------------------------------------------------------------+-------------------------+
3356 -Wdynamic-exception-spec
3357 ------------------------
3358 Some of the diagnostics controlled by this flag are enabled by default.
3360 Also controls `-Wdeprecated-dynamic-exception-spec`_.
3362 **Diagnostic text:**
3364 +--------------------------------------------------------------------------------------------+
3365 |:error:`error:` |nbsp| :diagtext:`ISO C++17 does not allow dynamic exception specifications`|
3366 +--------------------------------------------------------------------------------------------+
3369 -Weffc++
3370 --------
3371 Synonym for `-Wnon-virtual-dtor`_.
3374 -Wembedded-directive
3375 --------------------
3376 **Diagnostic text:**
3378 +----------------------------------------------------------------------------------------------------------+
3379 |:warning:`warning:` |nbsp| :diagtext:`embedding a directive within macro arguments has undefined behavior`|
3380 +----------------------------------------------------------------------------------------------------------+
3383 -Wempty-body
3384 ------------
3385 This diagnostic is enabled by default.
3387 **Diagnostic text:**
3389 +--------------------------------------------------------------+
3390 |:warning:`warning:` |nbsp| :diagtext:`for loop has empty body`|
3391 +--------------------------------------------------------------+
3393 +------------------------------------------------------------------+
3394 |:warning:`warning:` |nbsp| :diagtext:`if statement has empty body`|
3395 +------------------------------------------------------------------+
3397 +--------------------------------------------------------------------------+
3398 |:warning:`warning:` |nbsp| :diagtext:`range-based for loop has empty body`|
3399 +--------------------------------------------------------------------------+
3401 +----------------------------------------------------------------------+
3402 |:warning:`warning:` |nbsp| :diagtext:`switch statement has empty body`|
3403 +----------------------------------------------------------------------+
3405 +----------------------------------------------------------------+
3406 |:warning:`warning:` |nbsp| :diagtext:`while loop has empty body`|
3407 +----------------------------------------------------------------+
3410 -Wempty-decomposition
3411 ---------------------
3412 This diagnostic is enabled by default.
3414 **Diagnostic text:**
3416 +-------------------------------------------------------------------------------------------------+
3417 |:warning:`warning:` |nbsp| :diagtext:`ISO C++17 does not allow a decomposition group to be empty`|
3418 +-------------------------------------------------------------------------------------------------+
3421 -Wempty-translation-unit
3422 ------------------------
3423 **Diagnostic text:**
3425 +------------------------------------------------------------------------------------------------------------+
3426 |:warning:`warning:` |nbsp| :diagtext:`ISO C requires a translation unit to contain at least one declaration`|
3427 +------------------------------------------------------------------------------------------------------------+
3430 -Wencode-type
3431 -------------
3432 This diagnostic is enabled by default.
3434 **Diagnostic text:**
3436 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3437 |:warning:`warning:` |nbsp| :diagtext:`encoding of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`type is incomplete because` |nbsp| :placeholder:`B` |nbsp| :diagtext:`component has unknown encoding`|
3438 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3441 -Wendif-labels
3442 --------------
3443 Synonym for `-Wextra-tokens`_.
3446 -Wenum-compare
3447 --------------
3448 This diagnostic is enabled by default.
3450 Also controls `-Wenum-compare-switch`_.
3452 **Diagnostic text:**
3454 +------------------------------------------------------------------------------------------------+
3455 |:warning:`warning:` |nbsp| :diagtext:`comparison of two values with different enumeration types`|
3456 +------------------------------------------------------------------------------------------------+
3459 -Wenum-compare-switch
3460 ---------------------
3461 This diagnostic is enabled by default.
3463 **Diagnostic text:**
3465 +--------------------------------------------------------------------------------------------------------------------+
3466 |:warning:`warning:` |nbsp| :diagtext:`comparison of two values with different enumeration types in switch statement`|
3467 +--------------------------------------------------------------------------------------------------------------------+
3470 -Wenum-conversion
3471 -----------------
3472 This diagnostic is enabled by default.
3474 **Diagnostic text:**
3476 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3477 |:warning:`warning:` |nbsp| :diagtext:`implicit conversion from enumeration type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to different enumeration type` |nbsp| :placeholder:`B`|
3478 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3481 -Wenum-too-large
3482 ----------------
3483 This diagnostic is enabled by default.
3485 **Diagnostic text:**
3487 +-----------------------------------------------------------------------------------------+
3488 |:warning:`warning:` |nbsp| :diagtext:`enumeration values exceed range of largest integer`|
3489 +-----------------------------------------------------------------------------------------+
3491 +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
3492 |:warning:`warning:` |nbsp| :diagtext:`incremented enumerator value` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not representable in the largest integer type`|
3493 +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
3496 -Wexceptions
3497 ------------
3498 This diagnostic is enabled by default.
3500 **Diagnostic text:**
3502 +--------------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------+
3503 |:warning:`warning:` |nbsp| :diagtext:`cannot refer to a non-static member from the handler of a` |nbsp| |+-----------------------+| |nbsp| :diagtext:`function try block`|
3504 |                                                                                                        ||:diagtext:`constructor`||                                      |
3505 |                                                                                                        |+-----------------------+|                                      |
3506 |                                                                                                        ||:diagtext:`destructor` ||                                      |
3507 |                                                                                                        |+-----------------------+|                                      |
3508 +--------------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------+
3510 +-------------------------------------------------------------------------------------------------------------------------------------+
3511 |:warning:`warning:` |nbsp| :diagtext:`exception of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will be caught by earlier handler`|
3512 +-------------------------------------------------------------------------------------------------------------------------------------+
3514 +-----------------------------------------------------------------------------------------------------------------------------+
3515 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has a non-throwing exception specification but can still throw`|
3516 +-----------------------------------------------------------------------------------------------------------------------------+
3519 -Wexit-time-destructors
3520 -----------------------
3521 **Diagnostic text:**
3523 +-----------------------------------------------------------------------------------+
3524 |:warning:`warning:` |nbsp| :diagtext:`declaration requires an exit-time destructor`|
3525 +-----------------------------------------------------------------------------------+
3528 -Wexpansion-to-defined
3529 ----------------------
3530 Some of the diagnostics controlled by this flag are enabled by default.
3532 **Diagnostic text:**
3534 +-------------------------------------------------------------------------------------------------+
3535 |:warning:`warning:` |nbsp| :diagtext:`macro expansion producing 'defined' has undefined behavior`|
3536 +-------------------------------------------------------------------------------------------------+
3538 +-------------------------------------------------------------------------------------------------+
3539 |:warning:`warning:` |nbsp| :diagtext:`macro expansion producing 'defined' has undefined behavior`|
3540 +-------------------------------------------------------------------------------------------------+
3543 -Wexplicit-initialize-call
3544 --------------------------
3545 This diagnostic is enabled by default.
3547 **Diagnostic text:**
3549 +------------------------------------------------------------------------------------------------------------+
3550 |:warning:`warning:` |nbsp| :diagtext:`explicit call to +initialize results in duplicate call to +initialize`|
3551 +------------------------------------------------------------------------------------------------------------+
3553 +----------------------------------------------------------------------------------------------------------------------------+
3554 |:warning:`warning:` |nbsp| :diagtext:`explicit call to \[super initialize\] should only be in implementation of +initialize`|
3555 +----------------------------------------------------------------------------------------------------------------------------+
3558 -Wexplicit-ownership-type
3559 -------------------------
3560 **Diagnostic text:**
3562 +-------------------------------------------------------------------------------------------------------------------------------------+
3563 |:warning:`warning:` |nbsp| :diagtext:`method parameter of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with no explicit ownership`|
3564 +-------------------------------------------------------------------------------------------------------------------------------------+
3567 -Wextended-offsetof
3568 -------------------
3569 **Diagnostic text:**
3571 +--------------------------------------------------------------------------------------+
3572 |:warning:`warning:` |nbsp| :diagtext:`using extended field designator is an extension`|
3573 +--------------------------------------------------------------------------------------+
3576 -Wextern-c-compat
3577 -----------------
3578 This diagnostic is enabled by default.
3580 **Diagnostic text:**
3582 +---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+
3583 |:warning:`warning:` |nbsp| |+-------------------------+|+------------------+| |nbsp| :diagtext:`has size 0 in C,` |nbsp| |+-------------------------+| |nbsp| :diagtext:`in C++`|
3584 |                           ||                         |||:diagtext:`struct`||                                            ||:diagtext:`size 1`       ||                          |
3585 |                           |+-------------------------+|+------------------+|                                            |+-------------------------+|                          |
3586 |                           ||:diagtext:`empty` |nbsp| |||:diagtext:`union` ||                                            ||:diagtext:`non-zero size`||                          |
3587 |                           |+-------------------------+|+------------------+|                                            |+-------------------------+|                          |
3588 +---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+
3591 -Wextern-initializer
3592 --------------------
3593 This diagnostic is enabled by default.
3595 **Diagnostic text:**
3597 +---------------------------------------------------------------------------+
3598 |:warning:`warning:` |nbsp| :diagtext:`'extern' variable has an initializer`|
3599 +---------------------------------------------------------------------------+
3602 -Wextra
3603 -------
3604 Some of the diagnostics controlled by this flag are enabled by default.
3606 Also controls `-Wignored-qualifiers`_, `-Winitializer-overrides`_, `-Wmissing-field-initializers`_, `-Wmissing-method-return-type`_, `-Wnull-pointer-arithmetic`_, `-Wsemicolon-before-method-body`_, `-Wsign-compare`_, `-Wunused-parameter`_.
3608 **Diagnostic text:**
3610 +-----------------------------------------------------------------------------------------------------------------------------+
3611 |:warning:`warning:` |nbsp| :diagtext:`call to function without interrupt attribute could clobber interruptee's VFP registers`|
3612 +-----------------------------------------------------------------------------------------------------------------------------+
3615 -Wextra-qualification
3616 ---------------------
3617 This diagnostic is enabled by default.
3619 **Diagnostic text:**
3621 +--------------------------------------------------------------------------------------------+
3622 |:warning:`warning:` |nbsp| :diagtext:`extra qualification on member` |nbsp| :placeholder:`A`|
3623 +--------------------------------------------------------------------------------------------+
3626 -Wextra-semi
3627 ------------
3628 Also controls `-Wc++11-extra-semi`_.
3630 **Diagnostic text:**
3632 +--------------------------------------------------------+------------------------------------------------+
3633 |:warning:`warning:` |nbsp| :diagtext:`extra ';'` |nbsp| |+----------------------------------------------+|
3634 |                                                        ||:diagtext:`outside of a function`             ||
3635 |                                                        |+----------------------------------------------+|
3636 |                                                        ||+--------------------------------------------+||
3637 |                                                        |||:diagtext:`inside a` |nbsp| :placeholder:`B`|||
3638 |                                                        ||+--------------------------------------------+||
3639 |                                                        |+----------------------------------------------+|
3640 |                                                        ||:diagtext:`inside instance variable list`     ||
3641 |                                                        |+----------------------------------------------+|
3642 |                                                        ||:diagtext:`after member function definition`  ||
3643 |                                                        |+----------------------------------------------+|
3644 +--------------------------------------------------------+------------------------------------------------+
3646 +---------------------------------------------------------------------------------+
3647 |:warning:`warning:` |nbsp| :diagtext:`extra ';' after member function definition`|
3648 +---------------------------------------------------------------------------------+
3651 -Wextra-tokens
3652 --------------
3653 This diagnostic is enabled by default.
3655 **Diagnostic text:**
3657 +------------------------------------------------------------------------------------------------------------+
3658 |:warning:`warning:` |nbsp| :diagtext:`extra tokens at end of #`:placeholder:`A` |nbsp| :diagtext:`directive`|
3659 +------------------------------------------------------------------------------------------------------------+
3661 +-------------------------------------------------------------------------------------------------------------------------------+
3662 |:warning:`warning:` |nbsp| :diagtext:`extra tokens at the end of '#pragma omp` |nbsp| :placeholder:`A`:diagtext:`' are ignored`|
3663 +-------------------------------------------------------------------------------------------------------------------------------+
3666 -Wfallback
3667 ----------
3668 This diagnostic is enabled by default.
3670 **Diagnostic text:**
3672 +------------------------------------------------------------------------------+
3673 |:warning:`warning:` |nbsp| :diagtext:`falling back to` |nbsp| :placeholder:`A`|
3674 +------------------------------------------------------------------------------+
3677 -Wflag-enum
3678 -----------
3679 This diagnostic is enabled by default.
3681 **Diagnostic text:**
3683 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3684 |:warning:`warning:` |nbsp| :diagtext:`enumeration value` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is out of range of flags in enumeration type` |nbsp| :placeholder:`B`|
3685 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3688 -Wflexible-array-extensions
3689 ---------------------------
3690 **Diagnostic text:**
3692 +-------------------------------------------------------------------------------------------------------------------------------+
3693 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may not be used as an array element due to flexible array member`|
3694 +-------------------------------------------------------------------------------------------------------------------------------+
3696 +-------------------------------------------------------------------------------------------------------------------------+
3697 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may not be nested in a struct due to flexible array member`|
3698 +-------------------------------------------------------------------------------------------------------------------------+
3701 -Wfloat-conversion
3702 ------------------
3703 Also controls `-Wfloat-overflow-conversion`_, `-Wfloat-zero-conversion`_.
3705 **Diagnostic text:**
3707 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3708 |:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns floating-point number into integer:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
3709 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3712 -Wfloat-equal
3713 -------------
3714 **Diagnostic text:**
3716 +---------------------------------------------------------------------------------------+
3717 |:warning:`warning:` |nbsp| :diagtext:`comparing floating point with == or != is unsafe`|
3718 +---------------------------------------------------------------------------------------+
3721 -Wfloat-overflow-conversion
3722 ---------------------------
3723 **Diagnostic text:**
3725 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3726 |:warning:`warning:` |nbsp| :diagtext:`implicit conversion of out of range value from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`changes value from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`|
3727 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3730 -Wfloat-zero-conversion
3731 -----------------------
3732 **Diagnostic text:**
3734 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3735 |: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`|
3736 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3739 -Wfor-loop-analysis
3740 -------------------
3741 **Diagnostic text:**
3743 +-----------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------+
3744 |:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is` |nbsp| |+-----------------------+| |nbsp| :diagtext:`both in the loop header and in the loop body`|
3745 |                                                                                                     ||:diagtext:`decremented`||                                                                |
3746 |                                                                                                     |+-----------------------+|                                                                |
3747 |                                                                                                     ||:diagtext:`incremented`||                                                                |
3748 |                                                                                                     |+-----------------------+|                                                                |
3749 +-----------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------+
3751 +-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+
3752 |:warning:`warning:` |nbsp| :diagtext:`variable`|+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |nbsp| :diagtext:`used in loop condition not modified in loop body`|
3753 |                                               ||:diagtext:`s`                                                                                                                                             ||                                                                    |
3754 |                                               |+----------------------------------------------------------------------------------------------------------------------------------------------------------+|                                                                    |
3755 |                                               ||+------------------------+                                                                                                                                ||                                                                    |
3756 |                                               ||| |nbsp| :placeholder:`B`|                                                                                                                                ||                                                                    |
3757 |                                               ||+------------------------+                                                                                                                                ||                                                                    |
3758 |                                               |+----------------------------------------------------------------------------------------------------------------------------------------------------------+|                                                                    |
3759 |                                               ||+------------------------------------------------------------------------------------+                                                                    ||                                                                    |
3760 |                                               |||:diagtext:`s` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C`|                                                                    ||                                                                    |
3761 |                                               ||+------------------------------------------------------------------------------------+                                                                    ||                                                                    |
3762 |                                               |+----------------------------------------------------------------------------------------------------------------------------------------------------------+|                                                                    |
3763 |                                               ||+-------------------------------------------------------------------------------------------------------------------+                                     ||                                                                    |
3764 |                                               |||:diagtext:`s` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D`|                                     ||                                                                    |
3765 |                                               ||+-------------------------------------------------------------------------------------------------------------------+                                     ||                                                                    |
3766 |                                               |+----------------------------------------------------------------------------------------------------------------------------------------------------------+|                                                                    |
3767 |                                               ||+--------------------------------------------------------------------------------------------------------------------------------------------------------+||                                                                    |
3768 |                                               |||:diagtext:`s` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`, and` |nbsp| :placeholder:`E`|||                                                                    |
3769 |                                               ||+--------------------------------------------------------------------------------------------------------------------------------------------------------+||                                                                    |
3770 |                                               |+----------------------------------------------------------------------------------------------------------------------------------------------------------+|                                                                    |
3771 +-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+
3774 -Wformat
3775 --------
3776 This diagnostic is enabled by default.
3778 Also controls `-Wformat-extra-args`_, `-Wformat-invalid-specifier`_, `-Wformat-security`_, `-Wformat-y2k`_, `-Wformat-zero-length`_, `-Wnonnull`_.
3780 **Diagnostic text:**
3782 +-------------------------------------------------------------------------------------+
3783 |:warning:`warning:` |nbsp| :diagtext:`using '%%P' format specifier without precision`|
3784 +-------------------------------------------------------------------------------------+
3786 +---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3787 |: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`|
3788 |                           ||:diagtext:`values of type`                  ||                                                                                                                                                                     |
3789 |                           |+--------------------------------------------+|                                                                                                                                                                     |
3790 |                           ||:diagtext:`enum values with underlying type`||                                                                                                                                                                     |
3791 |                           |+--------------------------------------------+|                                                                                                                                                                     |
3792 +---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3794 +------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
3795 |:warning:`warning:` |nbsp| :diagtext:`format specifies type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`but the argument has` |nbsp| |+---------------------------+| |nbsp| :placeholder:`B`|
3796 |                                                                                                                                    ||:diagtext:`type`           ||                        |
3797 |                                                                                                                                    |+---------------------------+|                        |
3798 |                                                                                                                                    ||:diagtext:`underlying type`||                        |
3799 |                                                                                                                                    |+---------------------------+|                        |
3800 +------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
3802 +----------------------------------------------------------------------------------------------------------------------------------------+
3803 |:warning:`warning:` |nbsp| :diagtext:`using '`:placeholder:`A`:diagtext:`' format specifier annotation outside of os\_log()/os\_trace()`|
3804 +----------------------------------------------------------------------------------------------------------------------------------------+
3806 +-----------------------------------------------------------------------------+-----------------------------+
3807 |:warning:`warning:` |nbsp| :diagtext:`invalid position specified for` |nbsp| |+---------------------------+|
3808 |                                                                             ||:diagtext:`field width`    ||
3809 |                                                                             |+---------------------------+|
3810 |                                                                             ||:diagtext:`field precision`||
3811 |                                                                             |+---------------------------+|
3812 +-----------------------------------------------------------------------------+-----------------------------+
3814 +----------------------------------------------------------------------------------------------------------+
3815 |:warning:`warning:` |nbsp| :diagtext:`cannot mix positional and non-positional arguments in format string`|
3816 +----------------------------------------------------------------------------------------------------------+
3818 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3819 |:warning:`warning:` |nbsp| :diagtext:`length modifier '`:placeholder:`A`:diagtext:`' results in undefined behavior or no effect with '`:placeholder:`B`:diagtext:`' conversion specifier`|
3820 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3822 +--------------------------------------------------------------------------------+
3823 |:warning:`warning:` |nbsp| :diagtext:`format string should not be a wide string`|
3824 +--------------------------------------------------------------------------------+
3826 +-------------------------------------------------------------------------------------------------------+
3827 |:warning:`warning:` |nbsp| :diagtext:`position arguments in format strings start counting at 1 (not 0)`|
3828 +-------------------------------------------------------------------------------------------------------+
3830 +------------------------------------------------------------+
3831 |:warning:`warning:` |nbsp| :diagtext:`format string missing`|
3832 +------------------------------------------------------------+
3834 +----------------------------------------------------------------------------------------------------------------------------------+
3835 |:warning:`warning:` |nbsp| :diagtext:`object format flags cannot be used with '`:placeholder:`A`:diagtext:`' conversion specifier`|
3836 +----------------------------------------------------------------------------------------------------------------------------------+
3838 +----------------------------------------+-----------------+-------------------------------------+-----------------------+--------------------------------------------------------+
3839 |:warning:`warning:` |nbsp| :diagtext:`'`|+---------------+|:diagtext:`' specified field` |nbsp| |+---------------------+| |nbsp| :diagtext:`is missing a matching 'int' argument`|
3840 |                                        ||:diagtext:`\*` ||                                     ||:diagtext:`width`    ||                                                        |
3841 |                                        |+---------------+|                                     |+---------------------+|                                                        |
3842 |                                        ||:diagtext:`.\*`||                                     ||:diagtext:`precision`||                                                        |
3843 |                                        |+---------------+|                                     |+---------------------+|                                                        |
3844 +----------------------------------------+-----------------+-------------------------------------+-----------------------+--------------------------------------------------------+
3846 +----------------------------------------------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------+
3847 |:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| |+---------------------+| |nbsp| :diagtext:`should have type` |nbsp| :placeholder:`B`:diagtext:`, but argument has type` |nbsp| :placeholder:`C`|
3848 |                                                    ||:diagtext:`width`    ||                                                                                                                       |
3849 |                                                    |+---------------------+|                                                                                                                       |
3850 |                                                    ||:diagtext:`precision`||                                                                                                                       |
3851 |                                                    |+---------------------+|                                                                                                                       |
3852 +----------------------------------------------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------+
3854 +-----------------------------------------------------------------+
3855 |:warning:`warning:` |nbsp| :diagtext:`missing object format flag`|
3856 +-----------------------------------------------------------------+
3858 +------------------------------------------------------------------------------------------+
3859 |:warning:`warning:` |nbsp| :diagtext:`format string contains '\\0' within the string body`|
3860 +------------------------------------------------------------------------------------------+
3862 +---------------------------------------------------------------------------+
3863 |:warning:`warning:` |nbsp| :diagtext:`format string is not null-terminated`|
3864 +---------------------------------------------------------------------------+
3866 +-----------------------------------------------------------------------------------------------------------------------------------------+
3867 |:warning:`warning:` |nbsp| :diagtext:`flag '`:placeholder:`A`:diagtext:`' is ignored when flag '`:placeholder:`B`:diagtext:`' is present`|
3868 +-----------------------------------------------------------------------------------------------------------------------------------------+
3870 +------------------------------------------------------------------+
3871 |:warning:`warning:` |nbsp| :diagtext:`incomplete format specifier`|
3872 +------------------------------------------------------------------+
3874 +--------------------------------------------------------------------------------+
3875 |:warning:`warning:` |nbsp| :diagtext:`more '%%' conversions than data arguments`|
3876 +--------------------------------------------------------------------------------+
3878 +-------------------------------------------------------------------------------------------------------+
3879 |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is not a valid object format flag`|
3880 +-------------------------------------------------------------------------------------------------------+
3882 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
3883 |:warning:`warning:` |nbsp| :diagtext:`flag '`:placeholder:`A`:diagtext:`' results in undefined behavior with '`:placeholder:`B`:diagtext:`' conversion specifier`|
3884 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
3886 +---------------------------+-------------------------+------------------------------------------------------------------------------------------------------------------+
3887 |:warning:`warning:` |nbsp| |+-----------------------+| |nbsp| :diagtext:`used with '`:placeholder:`B`:diagtext:`' conversion specifier, resulting in undefined behavior`|
3888 |                           ||:diagtext:`field width`||                                                                                                                  |
3889 |                           |+-----------------------+|                                                                                                                  |
3890 |                           ||:diagtext:`precision`  ||                                                                                                                  |
3891 |                           |+-----------------------+|                                                                                                                  |
3892 +---------------------------+-------------------------+------------------------------------------------------------------------------------------------------------------+
3894 +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
3895 |:warning:`warning:` |nbsp| :diagtext:`data argument position '`:placeholder:`A`:diagtext:`' exceeds the number of data arguments (`:placeholder:`B`:diagtext:`)`|
3896 +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
3898 +----------------------------------------------------------------------------------------+
3899 |:warning:`warning:` |nbsp| :diagtext:`zero field width in scanf format string is unused`|
3900 +----------------------------------------------------------------------------------------+
3902 +----------------------------------------------------------------------------------------+
3903 |:warning:`warning:` |nbsp| :diagtext:`no closing '\]' for '%%\[' in scanf format string`|
3904 +----------------------------------------------------------------------------------------+
3907 -Wformat-extra-args
3908 -------------------
3909 This diagnostic is enabled by default.
3911 **Diagnostic text:**
3913 +------------------------------------------------------------------------------+
3914 |:warning:`warning:` |nbsp| :diagtext:`data argument not used by format string`|
3915 +------------------------------------------------------------------------------+
3918 -Wformat-invalid-specifier
3919 --------------------------
3920 This diagnostic is enabled by default.
3922 **Diagnostic text:**
3924 +--------------------------------------------------------------------------------------------------+
3925 |:warning:`warning:` |nbsp| :diagtext:`invalid conversion specifier '`:placeholder:`A`:diagtext:`'`|
3926 +--------------------------------------------------------------------------------------------------+
3929 -Wformat-non-iso
3930 ----------------
3931 **Diagnostic text:**
3933 +-----------------------------------------------------------------------------+----------------------------------+---------------------------------------------+
3934 |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`'` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`is not supported by ISO C`|
3935 |                                                                             ||:diagtext:`length modifier`     ||                                             |
3936 |                                                                             |+--------------------------------+|                                             |
3937 |                                                                             ||:diagtext:`conversion specifier`||                                             |
3938 |                                                                             |+--------------------------------+|                                             |
3939 +-----------------------------------------------------------------------------+----------------------------------+---------------------------------------------+
3941 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3942 |:warning:`warning:` |nbsp| :diagtext:`using length modifier '`:placeholder:`A`:diagtext:`' with conversion specifier '`:placeholder:`B`:diagtext:`' is not supported by ISO C`|
3943 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3945 +--------------------------------------------------------------------------------------+
3946 |:warning:`warning:` |nbsp| :diagtext:`positional arguments are not supported by ISO C`|
3947 +--------------------------------------------------------------------------------------+
3950 -Wformat-nonliteral
3951 -------------------
3952 **Diagnostic text:**
3954 +----------------------------------------------------------------------------+
3955 |:warning:`warning:` |nbsp| :diagtext:`format string is not a string literal`|
3956 +----------------------------------------------------------------------------+
3959 -Wformat-pedantic
3960 -----------------
3961 **Diagnostic text:**
3963 +------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
3964 |:warning:`warning:` |nbsp| :diagtext:`format specifies type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`but the argument has` |nbsp| |+---------------------------+| |nbsp| :placeholder:`B`|
3965 |                                                                                                                                    ||:diagtext:`type`           ||                        |
3966 |                                                                                                                                    |+---------------------------+|                        |
3967 |                                                                                                                                    ||:diagtext:`underlying type`||                        |
3968 |                                                                                                                                    |+---------------------------+|                        |
3969 +------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
3972 -Wformat-security
3973 -----------------
3974 This diagnostic is enabled by default.
3976 **Diagnostic text:**
3978 +---------------------------------------------------------------------------------------------------+
3979 |:warning:`warning:` |nbsp| :diagtext:`format string is not a string literal (potentially insecure)`|
3980 +---------------------------------------------------------------------------------------------------+
3983 -Wformat-y2k
3984 ------------
3985 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
3987 -Wformat-zero-length
3988 --------------------
3989 This diagnostic is enabled by default.
3991 **Diagnostic text:**
3993 +-------------------------------------------------------------+
3994 |:warning:`warning:` |nbsp| :diagtext:`format string is empty`|
3995 +-------------------------------------------------------------+
3998 -Wformat=2
3999 ----------
4000 Some of the diagnostics controlled by this flag are enabled by default.
4002 Controls `-Wformat-nonliteral`_, `-Wformat-security`_, `-Wformat-y2k`_.
4005 -Wfour-char-constants
4006 ---------------------
4007 **Diagnostic text:**
4009 +-------------------------------------------------------------------------+
4010 |:warning:`warning:` |nbsp| :diagtext:`multi-character character constant`|
4011 +-------------------------------------------------------------------------+
4014 -Wframe-larger-than=
4015 --------------------
4016 This diagnostic is enabled by default.
4018 **Diagnostic text:**
4020 The text of this diagnostic is not controlled by Clang.
4022 +--------------------------------------------------------------------------------------------------------------------------------------+
4023 |:warning:`warning:` |nbsp| :diagtext:`stack frame size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bytes in` |nbsp| :placeholder:`B`|
4024 +--------------------------------------------------------------------------------------------------------------------------------------+
4027 -Wfunction-def-in-objc-container
4028 --------------------------------
4029 This diagnostic is enabled by default.
4031 **Diagnostic text:**
4033 +--------------------------------------------------------------------------------------------------------+
4034 |:warning:`warning:` |nbsp| :diagtext:`function definition inside an Objective-C container is deprecated`|
4035 +--------------------------------------------------------------------------------------------------------+
4038 -Wfuture-compat
4039 ---------------
4040 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
4042 -Wgcc-compat
4043 ------------
4044 Some of the diagnostics controlled by this flag are enabled by default.
4046 **Diagnostic text:**
4048 +--------------------------------------------------------------------------+
4049 |:warning:`warning:` |nbsp| :diagtext:`'diagnose\_if' is a clang extension`|
4050 +--------------------------------------------------------------------------+
4052 +------------------------------------------------------------------------+
4053 |:warning:`warning:` |nbsp| :diagtext:`'enable\_if' is a clang extension`|
4054 +------------------------------------------------------------------------+
4056 +-----------------------------------------------------------------------------------------------+
4057 |:warning:`warning:` |nbsp| :diagtext:`\_\_final is a GNU extension, consider using C++11 final`|
4058 +-----------------------------------------------------------------------------------------------+
4060 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
4061 |:warning:`warning:` |nbsp| :diagtext:`GCC does not allow` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute in this position on a function definition`|
4062 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
4064 +---------------------------------------------------------------------------------------+
4065 |:warning:`warning:` |nbsp| :diagtext:`'break' is bound to loop, GCC binds it to switch`|
4066 +---------------------------------------------------------------------------------------+
4068 +----------------------------------------------------------------------------------------------------------------------------------------+
4069 |:warning:`warning:` |nbsp| :diagtext:`GCC does not allow the 'cleanup' attribute argument to be anything other than a simple identifier`|
4070 +----------------------------------------------------------------------------------------------------------------------------------------+
4072 +-----------------------------------------------------------------------------------------------------------------+
4073 |:warning:`warning:` |nbsp| :diagtext:`GCC does not allow an attribute in this position on a function declaration`|
4074 +-----------------------------------------------------------------------------------------------------------------+
4076 +----------------------------------------------------------------------------------------------------------------------------------+
4077 |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is bound to current loop, GCC binds it to the enclosing loop`|
4078 +----------------------------------------------------------------------------------------------------------------------------------+
4081 -Wglobal-constructors
4082 ---------------------
4083 **Diagnostic text:**
4085 +--------------------------------------------------------------------------------+
4086 |:warning:`warning:` |nbsp| :diagtext:`declaration requires a global constructor`|
4087 +--------------------------------------------------------------------------------+
4089 +-------------------------------------------------------------------------------+
4090 |:warning:`warning:` |nbsp| :diagtext:`declaration requires a global destructor`|
4091 +-------------------------------------------------------------------------------+
4094 -Wgnu
4095 -----
4096 Some of the diagnostics controlled by this flag are enabled by default.
4098 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`_.
4101 -Wgnu-alignof-expression
4102 ------------------------
4103 This diagnostic is enabled by default.
4105 **Diagnostic text:**
4107 +----------------------------------------------------------------------------------------------------------+
4108 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`applied to an expression is a GNU extension`|
4109 +----------------------------------------------------------------------------------------------------------+
4112 -Wgnu-anonymous-struct
4113 ----------------------
4114 **Diagnostic text:**
4116 +----------------------------------------------------------------------------+
4117 |:warning:`warning:` |nbsp| :diagtext:`anonymous structs are a GNU extension`|
4118 +----------------------------------------------------------------------------+
4121 -Wgnu-array-member-paren-init
4122 -----------------------------
4123 This diagnostic is an error by default, but the flag ``-Wno-gnu-array-member-paren-init`` can be used to disable the error.
4125 **Diagnostic text:**
4127 +----------------------------------------------------------------------------------------------------+
4128 |:error:`error:` |nbsp| :diagtext:`parenthesized initialization of a member array is a GNU extension`|
4129 +----------------------------------------------------------------------------------------------------+
4132 -Wgnu-auto-type
4133 ---------------
4134 **Diagnostic text:**
4136 +--------------------------------------------------------------------------+
4137 |:warning:`warning:` |nbsp| :diagtext:`'\_\_auto\_type' is a GNU extension`|
4138 +--------------------------------------------------------------------------+
4141 -Wgnu-binary-literal
4142 --------------------
4143 **Diagnostic text:**
4145 +----------------------------------------------------------------------------------+
4146 |:warning:`warning:` |nbsp| :diagtext:`binary integer literals are a GNU extension`|
4147 +----------------------------------------------------------------------------------+
4150 -Wgnu-case-range
4151 ----------------
4152 **Diagnostic text:**
4154 +----------------------------------------------------------------------+
4155 |:warning:`warning:` |nbsp| :diagtext:`use of GNU case range extension`|
4156 +----------------------------------------------------------------------+
4159 -Wgnu-complex-integer
4160 ---------------------
4161 **Diagnostic text:**
4163 +--------------------------------------------------------------------------------+
4164 |:warning:`warning:` |nbsp| :diagtext:`complex integer types are a GNU extension`|
4165 +--------------------------------------------------------------------------------+
4168 -Wgnu-compound-literal-initializer
4169 ----------------------------------
4170 **Diagnostic text:**
4172 +--------------------------------------------------------------------------------------------------------------------------------------------------+
4173 |:warning:`warning:` |nbsp| :diagtext:`initialization of an array` |nbsp| :diagtext:`from a compound literal` |nbsp| :diagtext:`is a GNU extension`|
4174 +--------------------------------------------------------------------------------------------------------------------------------------------------+
4177 -Wgnu-conditional-omitted-operand
4178 ---------------------------------
4179 **Diagnostic text:**
4181 +--------------------------------------------------------------------------------------------------------------+
4182 |:warning:`warning:` |nbsp| :diagtext:`use of GNU ?: conditional expression extension, omitting middle operand`|
4183 +--------------------------------------------------------------------------------------------------------------+
4186 -Wgnu-designator
4187 ----------------
4188 Some of the diagnostics controlled by this flag are enabled by default.
4190 **Diagnostic text:**
4192 +-----------------------------------------------------------------------+
4193 |:warning:`warning:` |nbsp| :diagtext:`use of GNU array range extension`|
4194 +-----------------------------------------------------------------------+
4196 +-------------------------------------------------------------------------------------+
4197 |:warning:`warning:` |nbsp| :diagtext:`use of GNU 'missing =' extension in designator`|
4198 +-------------------------------------------------------------------------------------+
4200 +--------------------------------------------------------------------------------------+
4201 |:warning:`warning:` |nbsp| :diagtext:`use of GNU old-style field designator extension`|
4202 +--------------------------------------------------------------------------------------+
4205 -Wgnu-empty-initializer
4206 -----------------------
4207 **Diagnostic text:**
4209 +-----------------------------------------------------------------------------+
4210 |:warning:`warning:` |nbsp| :diagtext:`use of GNU empty initializer extension`|
4211 +-----------------------------------------------------------------------------+
4214 -Wgnu-empty-struct
4215 ------------------
4216 **Diagnostic text:**
4218 +----------------------------------------------------+--------------------+--------------------------------------+
4219 |:warning:`warning:` |nbsp| :diagtext:`empty` |nbsp| |+------------------+| |nbsp| :diagtext:`is a GNU extension`|
4220 |                                                    ||:diagtext:`struct`||                                      |
4221 |                                                    |+------------------+|                                      |
4222 |                                                    ||:diagtext:`union` ||                                      |
4223 |                                                    |+------------------+|                                      |
4224 +----------------------------------------------------+--------------------+--------------------------------------+
4226 +----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------+
4227 |:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in otherwise empty` |nbsp| |+---------------------+| |nbsp| :diagtext:`is a GNU extension`|
4228 |                                                                                                                                  ||:diagtext:`struct`   ||                                      |
4229 |                                                                                                                                  |+---------------------+|                                      |
4230 |                                                                                                                                  ||:diagtext:`interface`||                                      |
4231 |                                                                                                                                  |+---------------------+|                                      |
4232 |                                                                                                                                  ||:diagtext:`union`    ||                                      |
4233 |                                                                                                                                  |+---------------------+|                                      |
4234 |                                                                                                                                  ||:diagtext:`class`    ||                                      |
4235 |                                                                                                                                  |+---------------------+|                                      |
4236 |                                                                                                                                  ||:diagtext:`enum`     ||                                      |
4237 |                                                                                                                                  |+---------------------+|                                      |
4238 +----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------+
4240 +---------------------------+--------------------+------------------------------------------------------------+
4241 |:warning:`warning:` |nbsp| |+------------------+| |nbsp| :diagtext:`without named members is a GNU extension`|
4242 |                           ||:diagtext:`struct`||                                                            |
4243 |                           |+------------------+|                                                            |
4244 |                           ||:diagtext:`union` ||                                                            |
4245 |                           |+------------------+|                                                            |
4246 +---------------------------+--------------------+------------------------------------------------------------+
4249 -Wgnu-flexible-array-initializer
4250 --------------------------------
4251 **Diagnostic text:**
4253 +---------------------------------------------------------------------------------------+
4254 |:warning:`warning:` |nbsp| :diagtext:`flexible array initialization is a GNU extension`|
4255 +---------------------------------------------------------------------------------------+
4258 -Wgnu-flexible-array-union-member
4259 ---------------------------------
4260 **Diagnostic text:**
4262 +-------------------------------------------------------------------------------------------------------------------------------------+
4263 |:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in a union is a GNU extension`|
4264 +-------------------------------------------------------------------------------------------------------------------------------------+
4267 -Wgnu-folding-constant
4268 ----------------------
4269 **Diagnostic text:**
4271 +-------------------------------------------------------------------+----------------------+------------------------------------------------------------------------------------+
4272 |:warning:`warning:` |nbsp| :diagtext:`expression is not an` |nbsp| |+--------------------+| |nbsp| :diagtext:`constant expression; folding it to a constant is a GNU extension`|
4273 |                                                                   ||:diagtext:`integer` ||                                                                                    |
4274 |                                                                   |+--------------------+|                                                                                    |
4275 |                                                                   ||:diagtext:`integral`||                                                                                    |
4276 |                                                                   |+--------------------+|                                                                                    |
4277 +-------------------------------------------------------------------+----------------------+------------------------------------------------------------------------------------+
4279 +------------------------------------------------------------------------------------------------------------------------------------------------------------+
4280 |: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`|
4281 +------------------------------------------------------------------------------------------------------------------------------------------------------------+
4283 +-----------------------------------------------------------------------------------------------------+
4284 |:warning:`warning:` |nbsp| :diagtext:`variable length array folded to constant array as an extension`|
4285 +-----------------------------------------------------------------------------------------------------+
4288 -Wgnu-imaginary-constant
4289 ------------------------
4290 **Diagnostic text:**
4292 +------------------------------------------------------------------------------+
4293 |:warning:`warning:` |nbsp| :diagtext:`imaginary constants are a GNU extension`|
4294 +------------------------------------------------------------------------------+
4297 -Wgnu-include-next
4298 ------------------
4299 **Diagnostic text:**
4301 +-----------------------------------------------------------------------------+
4302 |:warning:`warning:` |nbsp| :diagtext:`#include\_next is a language extension`|
4303 +-----------------------------------------------------------------------------+
4306 -Wgnu-label-as-value
4307 --------------------
4308 **Diagnostic text:**
4310 +----------------------------------------------------------------------------+
4311 |:warning:`warning:` |nbsp| :diagtext:`use of GNU address-of-label extension`|
4312 +----------------------------------------------------------------------------+
4314 +-------------------------------------------------------------------------+
4315 |:warning:`warning:` |nbsp| :diagtext:`use of GNU indirect-goto extension`|
4316 +-------------------------------------------------------------------------+
4319 -Wgnu-redeclared-enum
4320 ---------------------
4321 **Diagnostic text:**
4323 +------------------------------------------------------------------------------------------------------------------------------------------+
4324 |:warning:`warning:` |nbsp| :diagtext:`redeclaration of already-defined enum` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a GNU extension`|
4325 +------------------------------------------------------------------------------------------------------------------------------------------+
4328 -Wgnu-statement-expression
4329 --------------------------
4330 **Diagnostic text:**
4332 +--------------------------------------------------------------------------------+
4333 |:warning:`warning:` |nbsp| :diagtext:`use of GNU statement expression extension`|
4334 +--------------------------------------------------------------------------------+
4337 -Wgnu-static-float-init
4338 -----------------------
4339 This diagnostic is enabled by default.
4341 **Diagnostic text:**
4343 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
4344 |:warning:`warning:` |nbsp| :diagtext:`in-class initializer for static data member of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a GNU extension`|
4345 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
4348 -Wgnu-string-literal-operator-template
4349 --------------------------------------
4350 This diagnostic is enabled by default.
4352 **Diagnostic text:**
4354 +--------------------------------------------------------------------------------------------+
4355 |:warning:`warning:` |nbsp| :diagtext:`string literal operator templates are a GNU extension`|
4356 +--------------------------------------------------------------------------------------------+
4359 -Wgnu-union-cast
4360 ----------------
4361 **Diagnostic text:**
4363 +----------------------------------------------------------------------------+
4364 |:warning:`warning:` |nbsp| :diagtext:`cast to union type is a GNU extension`|
4365 +----------------------------------------------------------------------------+
4368 -Wgnu-variable-sized-type-not-at-end
4369 ------------------------------------
4370 This diagnostic is enabled by default.
4372 **Diagnostic text:**
4374 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4375 |: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`|
4376 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4379 -Wgnu-zero-line-directive
4380 -------------------------
4381 **Diagnostic text:**
4383 +--------------------------------------------------------------------------------------------+
4384 |:warning:`warning:` |nbsp| :diagtext:`#line directive with zero argument is a GNU extension`|
4385 +--------------------------------------------------------------------------------------------+
4388 -Wgnu-zero-variadic-macro-arguments
4389 -----------------------------------
4390 **Diagnostic text:**
4392 +---------------------------------------------------------------------------------------------------------------+
4393 |:warning:`warning:` |nbsp| :diagtext:`must specify at least one argument for '...' parameter of variadic macro`|
4394 +---------------------------------------------------------------------------------------------------------------+
4396 +---------------------------------------------------------------------------------------------------+
4397 |:warning:`warning:` |nbsp| :diagtext:`token pasting of ',' and \_\_VA\_ARGS\_\_ is a GNU extension`|
4398 +---------------------------------------------------------------------------------------------------+
4401 -Wheader-guard
4402 --------------
4403 This diagnostic is enabled by default.
4405 **Diagnostic text:**
4407 +---------------------------------------------------------------------------------------------------------------------------------------+
4408 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is used as a header guard here, followed by #define of a different macro`|
4409 +---------------------------------------------------------------------------------------------------------------------------------------+
4412 -Wheader-hygiene
4413 ----------------
4414 **Diagnostic text:**
4416 +--------------------------------------------------------------------------------------------+
4417 |:warning:`warning:` |nbsp| :diagtext:`using namespace directive in global context in header`|
4418 +--------------------------------------------------------------------------------------------+
4421 -Widiomatic-parentheses
4422 -----------------------
4423 **Diagnostic text:**
4425 +-----------------------------------------------------------------------------------------------------------+
4426 |:warning:`warning:` |nbsp| :diagtext:`using the result of an assignment as a condition without parentheses`|
4427 +-----------------------------------------------------------------------------------------------------------+
4430 -Wignored-attributes
4431 --------------------
4432 This diagnostic is enabled by default.
4434 **Diagnostic text:**
4436 +---------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4437 |: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`|
4438 |                           ||:diagtext:`alias`||                                                                                                                                                                         |
4439 |                           |+-----------------+|                                                                                                                                                                         |
4440 |                           ||:diagtext:`ifunc`||                                                                                                                                                                         |
4441 |                           |+-----------------+|                                                                                                                                                                         |
4442 +---------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4444 +---------------------------+-------------------+----------------------------------------------------------------------------------------------------------------+----------------------+
4445 |:warning:`warning:` |nbsp| |+-----------------+| |nbsp| :diagtext:`will not be in section '`:placeholder:`A`:diagtext:`' but in the same section as the` |nbsp| |+--------------------+|
4446 |                           ||:diagtext:`alias`||                                                                                                                ||:diagtext:`aliasee` ||
4447 |                           |+-----------------+|                                                                                                                |+--------------------+|
4448 |                           ||:diagtext:`ifunc`||                                                                                                                ||:diagtext:`resolver`||
4449 |                           |+-----------------+|                                                                                                                |+--------------------+|
4450 +---------------------------+-------------------+----------------------------------------------------------------------------------------------------------------+----------------------+
4452 +----------------------------------------------------------------------+------------------------+-------------------------------------+
4453 |:warning:`warning:` |nbsp| :diagtext:`'abi\_tag' attribute on` |nbsp| |+----------------------+| |nbsp| :diagtext:`namespace ignored`|
4454 |                                                                      ||:diagtext:`non-inline`||                                     |
4455 |                                                                      |+----------------------+|                                     |
4456 |                                                                      ||:diagtext:`anonymous` ||                                     |
4457 |                                                                      |+----------------------+|                                     |
4458 +----------------------------------------------------------------------+------------------------+-------------------------------------+
4460 +-----------------------------------------------------------------------------------------------------------------------+
4461 |:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`after definition is ignored`|
4462 +-----------------------------------------------------------------------------------------------------------------------+
4464 +--------------------------------------------------------------------------------------------------------------------------------+
4465 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute can only be applied to instance variables or properties`|
4466 +--------------------------------------------------------------------------------------------------------------------------------+
4468 +--------------------------------------------------------------------------------+
4469 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored`|
4470 +--------------------------------------------------------------------------------+
4472 +--------------------------------------------------------------------------------------------------------------------------+
4473 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored for field of type` |nbsp| :placeholder:`B`|
4474 +--------------------------------------------------------------------------------------------------------------------------+
4476 +---------------------------------------------------------------------------------------------------+
4477 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored on inline function`|
4478 +---------------------------------------------------------------------------------------------------+
4480 +-------------------------------------------------------------------------------------------------------------------+
4481 |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' attribute cannot be specified on a definition`|
4482 +-------------------------------------------------------------------------------------------------------------------+
4484 +------------------------------------------------------------------------------------------------------------------------------------------------+
4485 |:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it is not attached to a declaration`|
4486 +------------------------------------------------------------------------------------------------------------------------------------------------+
4488 +--------------------------------------------------------------------------------------------------------+
4489 |:warning:`warning:` |nbsp| :diagtext:`'nonnull' attribute applied to function with no pointer arguments`|
4490 +--------------------------------------------------------------------------------------------------------+
4492 +-----------------------------------------------------------------------------------------------------+
4493 |:warning:`warning:` |nbsp| :diagtext:`'nonnull' attribute when used on parameters takes no arguments`|
4494 +-----------------------------------------------------------------------------------------------------+
4496 +--------------------------------------------------------------------------------------------------+
4497 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored when parsing type`|
4498 +--------------------------------------------------------------------------------------------------+
4500 +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
4501 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to a pointer or reference (`:placeholder:`B` |nbsp| :diagtext:`is invalid)`|
4502 +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
4504 +----------------------------------------------------------------------------------------+------------------------------+-------------------------------------+
4505 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to`|+----------------------------+| |nbsp| :diagtext:`pointer arguments`|
4506 |                                                                                        ||                            ||                                     |
4507 |                                                                                        |+----------------------------+|                                     |
4508 |                                                                                        || |nbsp| :diagtext:`constant`||                                     |
4509 |                                                                                        |+----------------------------+|                                     |
4510 +----------------------------------------------------------------------------------------+------------------------------+-------------------------------------+
4512 +------------------------------------------------------------------------------------+
4513 |:warning:`warning:` |nbsp| :diagtext:`attribute declaration must precede definition`|
4514 +------------------------------------------------------------------------------------+
4516 +------------------------------------------------------------------------------------------------------------------------+
4517 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to return values that are pointers`|
4518 +------------------------------------------------------------------------------------------------------------------------+
4520 +--------------------------------------------------------------------------------------------------------------------------------------+
4521 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to return values that are pointers or references`|
4522 +--------------------------------------------------------------------------------------------------------------------------------------+
4524 +------------------------------------------------------------------------------------+
4525 |:warning:`warning:` |nbsp| :diagtext:`'sentinel' attribute requires named arguments`|
4526 +------------------------------------------------------------------------------------+
4528 +-----------------------------------------------------------------------------------------------+-----------------------+
4529 |:warning:`warning:` |nbsp| :diagtext:`'sentinel' attribute only supported for variadic` |nbsp| |+---------------------+|
4530 |                                                                                               ||:diagtext:`functions`||
4531 |                                                                                               |+---------------------+|
4532 |                                                                                               ||:diagtext:`blocks`   ||
4533 |                                                                                               |+---------------------+|
4534 +-----------------------------------------------------------------------------------------------+-----------------------+
4536 +------------------------------------------------------------------------------------------------------------------------+
4537 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute argument not supported:` |nbsp| :placeholder:`B`|
4538 +------------------------------------------------------------------------------------------------------------------------+
4540 +---------------------------------------------------------------------------------+
4541 |:warning:`warning:` |nbsp| :diagtext:`unknown visibility` |nbsp| :placeholder:`A`|
4542 +---------------------------------------------------------------------------------+
4544 +------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------+
4545 |:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be applied to` |nbsp| |+------------------------------+| |nbsp| :diagtext:`without return value`|
4546 |                                                                                                                        ||:diagtext:`functions`         ||                                        |
4547 |                                                                                                                        |+------------------------------+|                                        |
4548 |                                                                                                                        ||:diagtext:`Objective-C method`||                                        |
4549 |                                                                                                                        |+------------------------------+|                                        |
4550 +------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------+
4552 +----------------------------------------------------------------------------------------------------+
4553 |:warning:`warning:` |nbsp| :diagtext:`\_\_weak attribute cannot be specified on a field declaration`|
4554 +----------------------------------------------------------------------------------------------------+
4556 +------------------------------------------------------------------------------------------------------------------------------+
4557 |:warning:`warning:` |nbsp| :diagtext:`\_\_weak attribute cannot be specified on an automatic variable when ARC is not enabled`|
4558 +------------------------------------------------------------------------------------------------------------------------------+
4560 +------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------+
4561 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+----------------------------------------------------------------------------------------------------------------+|
4562 |                                                                                                ||:diagtext:`functions`                                                                                           ||
4563 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4564 |                                                                                                ||:diagtext:`unions`                                                                                              ||
4565 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4566 |                                                                                                ||:diagtext:`variables and functions`                                                                             ||
4567 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4568 |                                                                                                ||:diagtext:`functions and global variables`                                                                      ||
4569 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4570 |                                                                                                ||:diagtext:`functions, variables, and Objective-C interfaces`                                                    ||
4571 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4572 |                                                                                                ||:diagtext:`functions and methods`                                                                               ||
4573 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4574 |                                                                                                ||:diagtext:`parameters`                                                                                          ||
4575 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4576 |                                                                                                ||:diagtext:`functions, methods and blocks`                                                                       ||
4577 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4578 |                                                                                                ||:diagtext:`functions, methods, and classes`                                                                     ||
4579 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4580 |                                                                                                ||:diagtext:`functions, methods, and parameters`                                                                  ||
4581 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4582 |                                                                                                ||:diagtext:`functions, methods, and global variables`                                                            ||
4583 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4584 |                                                                                                ||:diagtext:`classes`                                                                                             ||
4585 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4586 |                                                                                                ||:diagtext:`enums`                                                                                               ||
4587 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4588 |                                                                                                ||:diagtext:`variables`                                                                                           ||
4589 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4590 |                                                                                                ||:diagtext:`methods`                                                                                             ||
4591 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4592 |                                                                                                ||:diagtext:`fields and global variables`                                                                         ||
4593 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4594 |                                                                                                ||:diagtext:`structs`                                                                                             ||
4595 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4596 |                                                                                                ||:diagtext:`parameters and typedefs`                                                                             ||
4597 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4598 |                                                                                                ||:diagtext:`variables and typedefs`                                                                              ||
4599 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4600 |                                                                                                ||:diagtext:`thread-local variables`                                                                              ||
4601 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4602 |                                                                                                ||:diagtext:`variables and fields`                                                                                ||
4603 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4604 |                                                                                                ||:diagtext:`variables, data members and tag types`                                                               ||
4605 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4606 |                                                                                                ||:diagtext:`types and namespaces`                                                                                ||
4607 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4608 |                                                                                                ||:diagtext:`Objective-C interfaces`                                                                              ||
4609 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4610 |                                                                                                ||:diagtext:`methods and properties`                                                                              ||
4611 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4612 |                                                                                                ||:diagtext:`functions, methods, and properties`                                                                  ||
4613 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4614 |                                                                                                ||:diagtext:`struct or union`                                                                                     ||
4615 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4616 |                                                                                                ||:diagtext:`struct, union or class`                                                                              ||
4617 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4618 |                                                                                                ||:diagtext:`types`                                                                                               ||
4619 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4620 |                                                                                                ||:diagtext:`Objective-C instance methods`                                                                        ||
4621 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4622 |                                                                                                ||:diagtext:`init methods of interface or class extension declarations`                                           ||
4623 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4624 |                                                                                                ||:diagtext:`variables, functions and classes`                                                                    ||
4625 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4626 |                                                                                                ||:diagtext:`functions, variables, classes, and Objective-C interfaces`                                           ||
4627 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4628 |                                                                                                ||:diagtext:`Objective-C protocols`                                                                               ||
4629 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4630 |                                                                                                ||:diagtext:`variables with static or thread storage duration`                                                    ||
4631 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4632 |                                                                                                ||:diagtext:`functions, methods, properties, and global variables`                                                ||
4633 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4634 |                                                                                                ||:diagtext:`structs, unions, and typedefs`                                                                       ||
4635 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4636 |                                                                                                ||:diagtext:`structs and typedefs`                                                                                ||
4637 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4638 |                                                                                                ||:diagtext:`interface or protocol declarations`                                                                  ||
4639 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4640 |                                                                                                ||:diagtext:`kernel functions`                                                                                    ||
4641 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4642 |                                                                                                ||:diagtext:`non-K&R-style functions`                                                                             ||
4643 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4644 |                                                                                                ||:diagtext:`variables, enums, fields and typedefs`                                                               ||
4645 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4646 |                                                                                                ||:diagtext:`functions, methods, enums, and classes`                                                              ||
4647 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4648 |                                                                                                ||:diagtext:`structs, classes, variables, functions, and inline namespaces`                                       ||
4649 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4650 |                                                                                                ||:diagtext:`variables, functions, methods, types, enumerations, enumerators, labels, and non-static data members`||
4651 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4652 |                                                                                                ||:diagtext:`classes and enumerations`                                                                            ||
4653 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4654 |                                                                                                ||:diagtext:`named declarations`                                                                                  ||
4655 |                                                                                                |+----------------------------------------------------------------------------------------------------------------+|
4656 +------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------+
4658 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
4659 |:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it cannot be applied to omitted return type`|
4660 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
4662 +----------------------------------------------------------------------------------------------------------------------------+
4663 |:warning:`warning:` |nbsp| :diagtext:`calling convention` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored for this target`|
4664 +----------------------------------------------------------------------------------------------------------------------------+
4666 +-------------------------------------------------------------------------------------------------------------------+
4667 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`calling convention ignored on constructor/destructor`|
4668 +-------------------------------------------------------------------------------------------------------------------+
4670 +--------------------------------------------------------------------------------------------------------------+
4671 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`calling convention ignored on variadic function`|
4672 +--------------------------------------------------------------------------------------------------------------+
4674 +-------------------------------------------------------------------------------------------------------------------------------------------+
4675 |:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it cannot be applied to a type`|
4676 +-------------------------------------------------------------------------------------------------------------------------------------------+
4678 +------------------------------------------------------------------------------------------------------------------------+-----------------------+----------------------------------------------------+
4679 |:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is ignored, place it after "`|+---------------------+|:diagtext:`" to apply attribute to type declaration`|
4680 |                                                                                                                        ||:diagtext:`class`    ||                                                    |
4681 |                                                                                                                        |+---------------------+|                                                    |
4682 |                                                                                                                        ||:diagtext:`struct`   ||                                                    |
4683 |                                                                                                                        |+---------------------+|                                                    |
4684 |                                                                                                                        ||:diagtext:`interface`||                                                    |
4685 |                                                                                                                        |+---------------------+|                                                    |
4686 |                                                                                                                        ||:diagtext:`union`    ||                                                    |
4687 |                                                                                                                        |+---------------------+|                                                    |
4688 |                                                                                                                        ||:diagtext:`enum`     ||                                                    |
4689 |                                                                                                                        |+---------------------+|                                                    |
4690 +------------------------------------------------------------------------------------------------------------------------+-----------------------+----------------------------------------------------+
4692 +--------------------------------------------------------------------------------------------+
4693 |:warning:`warning:` |nbsp| :diagtext:`'deprecated' attribute on anonymous namespace ignored`|
4694 +--------------------------------------------------------------------------------------------+
4696 +----------------------------------------------------------------------------------------------------------------------------------------------+
4697 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`redeclared inline;` |nbsp| :placeholder:`B` |nbsp| :diagtext:`attribute ignored`|
4698 +----------------------------------------------------------------------------------------------------------------------------------------------+
4700 +----------------------------------------------------------------------------------------------------------------------------------------+
4701 |:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is already applied with different parameters`|
4702 +----------------------------------------------------------------------------------------------------------------------------------------+
4704 +--------------------------------------------------------------------------------------------------------------+
4705 |:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is already applied`|
4706 +--------------------------------------------------------------------------------------------------------------+
4708 +------------------------------------------------------------------------------------------------+
4709 |:warning:`warning:` |nbsp| :diagtext:`Objective-C GC does not allow weak variables on the stack`|
4710 +------------------------------------------------------------------------------------------------+
4712 +-------------------------------------------------------------------------------------------------------------------------+
4713 |:warning:`warning:` |nbsp| :diagtext:`'gnu\_inline' attribute requires function to be marked 'inline', attribute ignored`|
4714 +-------------------------------------------------------------------------------------------------------------------------+
4716 +---------------------------------------------------------------------------+------------------------------------+
4717 |:warning:`warning:` |nbsp| :diagtext:`inheritance model ignored on` |nbsp| |+----------------------------------+|
4718 |                                                                           ||:diagtext:`primary template`      ||
4719 |                                                                           |+----------------------------------+|
4720 |                                                                           ||:diagtext:`partial specialization`||
4721 |                                                                           |+----------------------------------+|
4722 +---------------------------------------------------------------------------+------------------------------------+
4724 +--------------------------------------------------------------------------------------------------------------+
4725 |:warning:`warning:` |nbsp| :diagtext:`'internal\_linkage' attribute on a non-static local variable is ignored`|
4726 +--------------------------------------------------------------------------------------------------------------+
4728 +--------------------------------------------------------------------------------------------+
4729 |:warning:`warning:` |nbsp| :diagtext:`qualifiers after comma in declarator list are ignored`|
4730 +--------------------------------------------------------------------------------------------+
4732 +-------------------------------------------------------------------------------------------------------------+----------------------------------+
4733 |:warning:`warning:` |nbsp| :diagtext:`MIPS 'interrupt' attribute only applies to functions that have` |nbsp| |+--------------------------------+|
4734 |                                                                                                             ||:diagtext:`no parameters`       ||
4735 |                                                                                                             |+--------------------------------+|
4736 |                                                                                                             ||:diagtext:`a 'void' return type`||
4737 |                                                                                                             |+--------------------------------+|
4738 +-------------------------------------------------------------------------------------------------------------+----------------------------------+
4740 +---------------------------------------------------------------------------------------+
4741 |:warning:`warning:` |nbsp| :diagtext:`unknown attribute '`:placeholder:`A`:diagtext:`'`|
4742 +---------------------------------------------------------------------------------------+
4744 +------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------+
4745 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`parameters`|
4746 |                                                                                                ||:diagtext:`Objective-C object`   ||                              |
4747 |                                                                                                |+---------------------------------+|                              |
4748 |                                                                                                ||:diagtext:`pointer`              ||                              |
4749 |                                                                                                |+---------------------------------+|                              |
4750 |                                                                                                ||:diagtext:`pointer-to-CF-pointer`||                              |
4751 |                                                                                                |+---------------------------------+|                              |
4752 +------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------+
4754 +------------------------------------------------------------------------------------------------+------------------------+---------------------------------------+--------------------------------------+
4755 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+----------------------+| |nbsp| :diagtext:`that return` |nbsp| |+------------------------------------+|
4756 |                                                                                                ||:diagtext:`functions` ||                                       ||:diagtext:`an Objective-C object`   ||
4757 |                                                                                                |+----------------------+|                                       |+------------------------------------+|
4758 |                                                                                                ||:diagtext:`methods`   ||                                       ||:diagtext:`a pointer`               ||
4759 |                                                                                                |+----------------------+|                                       |+------------------------------------+|
4760 |                                                                                                ||:diagtext:`properties`||                                       ||:diagtext:`a non-retainable pointer`||
4761 |                                                                                                |+----------------------+|                                       |+------------------------------------+|
4762 +------------------------------------------------------------------------------------------------+------------------------+---------------------------------------+--------------------------------------+
4764 +--------------------------------------------------------------------------------------------------------------------------------------------+
4765 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is deprecated and ignored in OpenCL version` |nbsp| :placeholder:`B`|
4766 +--------------------------------------------------------------------------------------------------------------------------------------------+
4768 +---------------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------------------------------------------------------+
4769 |: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`|
4770 |                           ||:diagtext:`alignment`||                                                                                                                                             ||:diagtext:`alignment`||                                                                                                 |
4771 |                           |+---------------------+|                                                                                                                                             |+---------------------+|                                                                                                 |
4772 |                           ||:diagtext:`size`     ||                                                                                                                                             ||:diagtext:`size`     ||                                                                                                 |
4773 |                           |+---------------------+|                                                                                                                                             |+---------------------+|                                                                                                 |
4774 +---------------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------------------------------------------------------+
4776 +---------------------------------------------------------------------------------------------+----------------------------+--------------------------------------------------------------------------------------------------+
4777 |:warning:`warning:` |nbsp| :diagtext:`first field of a transparent union cannot have` |nbsp| |+--------------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`B`:diagtext:`; transparent\_union attribute ignored`|
4778 |                                                                                             ||:diagtext:`floating point`||                                                                                                  |
4779 |                                                                                             |+--------------------------+|                                                                                                  |
4780 |                                                                                             ||:diagtext:`vector`        ||                                                                                                  |
4781 |                                                                                             |+--------------------------+|                                                                                                  |
4782 +---------------------------------------------------------------------------------------------+----------------------------+--------------------------------------------------------------------------------------------------+
4784 +--------------------------------------------------------------------------------------------------------------------------------+
4785 |:warning:`warning:` |nbsp| :diagtext:`transparent\_union attribute can only be applied to a union definition; attribute ignored`|
4786 +--------------------------------------------------------------------------------------------------------------------------------+
4788 +-----------------------------------------------------------------------------------------------------------------------------------------+
4789 |:warning:`warning:` |nbsp| :diagtext:`transparent union definition must contain at least one field; transparent\_union attribute ignored`|
4790 +-----------------------------------------------------------------------------------------------------------------------------------------+
4792 +---------------------------------------------------------------------------------------------+-------------------------------------------------+---------------------------------------------------------------+
4793 |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' only applies to` |nbsp| |+-----------------------------------------------+| |nbsp| :diagtext:`types; type here is` |nbsp| :placeholder:`C`|
4794 |                                                                                             ||:diagtext:`function`                           ||                                                               |
4795 |                                                                                             |+-----------------------------------------------+|                                                               |
4796 |                                                                                             ||:diagtext:`pointer`                            ||                                                               |
4797 |                                                                                             |+-----------------------------------------------+|                                                               |
4798 |                                                                                             ||:diagtext:`Objective-C object or block pointer`||                                                               |
4799 |                                                                                             |+-----------------------------------------------+|                                                               |
4800 +---------------------------------------------------------------------------------------------+-------------------------------------------------+---------------------------------------------------------------+
4802 +-------------------------------------------------------------------------------------------------------------------------+
4803 |:warning:`warning:` |nbsp| :diagtext:`\_\_declspec attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not supported`|
4804 +-------------------------------------------------------------------------------------------------------------------------+
4806 +-------------------------------------------------------+-------------------------+----------------------------------+---------------------------------------------------------------------------------+
4807 |:warning:`warning:` |nbsp| :diagtext:`ignoring` |nbsp| |+-----------------------+|+--------------------------------+| |nbsp| :diagtext:`'`:placeholder:`C`:diagtext:`' in the target attribute string`|
4808 |                                                       ||:diagtext:`unsupported`|||                                ||                                                                                 |
4809 |                                                       |+-----------------------+|+--------------------------------+|                                                                                 |
4810 |                                                       ||:diagtext:`duplicate`  ||| |nbsp| :diagtext:`architecture`||                                                                                 |
4811 |                                                       |+-----------------------+|+--------------------------------+|                                                                                 |
4812 +-------------------------------------------------------+-------------------------+----------------------------------+---------------------------------------------------------------------------------+
4815 -Wignored-optimization-argument
4816 -------------------------------
4817 This diagnostic is enabled by default.
4819 **Diagnostic text:**
4821 +--------------------------------------------------------------------------------------------------------------------------------------------------+
4822 |:warning:`warning:` |nbsp| :diagtext:`optimization flag '`:placeholder:`A`:diagtext:`' is not supported for target '`:placeholder:`B`:diagtext:`'`|
4823 +--------------------------------------------------------------------------------------------------------------------------------------------------+
4825 +--------------------------------------------------------------------------------------------------------+
4826 |:warning:`warning:` |nbsp| :diagtext:`optimization flag '`:placeholder:`A`:diagtext:`' is not supported`|
4827 +--------------------------------------------------------------------------------------------------------+
4830 -Wignored-pragma-intrinsic
4831 --------------------------
4832 This diagnostic is enabled by default.
4834 **Diagnostic text:**
4836 +------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+
4837 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not a recognized builtin`|+----------------------------------------------------------------------------+|
4838 |                                                                                          ||                                                                            ||
4839 |                                                                                          |+----------------------------------------------------------------------------+|
4840 |                                                                                          ||:diagtext:`; consider including <intrin.h> to access non-builtin intrinsics`||
4841 |                                                                                          |+----------------------------------------------------------------------------+|
4842 +------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+
4845 -Wignored-pragmas
4846 -----------------
4847 This diagnostic is enabled by default.
4849 Also controls `-Wignored-pragma-intrinsic`_.
4851 **Diagnostic text:**
4853 +------------------------------------------------------------------------------+---------------------------+-----------------------+
4854 |:warning:`warning:` |nbsp| :diagtext:`expected '=' following '#pragma` |nbsp| |+-------------------------+|:diagtext:`' - ignored`|
4855 |                                                                              ||:diagtext:`align`        ||                       |
4856 |                                                                              |+-------------------------+|                       |
4857 |                                                                              ||:diagtext:`options align`||                       |
4858 |                                                                              |+-------------------------+|                       |
4859 +------------------------------------------------------------------------------+---------------------------+-----------------------+
4861 +-----------------------------------------------------------------------------------+---------------------------+-----------------------+
4862 |:warning:`warning:` |nbsp| :diagtext:`invalid alignment option in '#pragma` |nbsp| |+-------------------------+|:diagtext:`' - ignored`|
4863 |                                                                                   ||:diagtext:`align`        ||                       |
4864 |                                                                                   |+-------------------------+|                       |
4865 |                                                                                   ||:diagtext:`options align`||                       |
4866 |                                                                                   |+-------------------------+|                       |
4867 +-----------------------------------------------------------------------------------+---------------------------+-----------------------+
4869 +-----------------------------------------------------------------------------------------------------------+
4870 |:warning:`warning:` |nbsp| :diagtext:`OpenCL extension end directive mismatches begin directive - ignoring`|
4871 +-----------------------------------------------------------------------------------------------------------+
4873 +----------------------------------------------------------------------------------------------------+
4874 |:warning:`warning:` |nbsp| :diagtext:`'#pragma comment` |nbsp| :placeholder:`A`:diagtext:`' ignored`|
4875 +----------------------------------------------------------------------------------------------------+
4877 +-------------------------------------------------------------------------------------------------------+
4878 |:warning:`warning:` |nbsp| :diagtext:`missing argument to debug command '`:placeholder:`A`:diagtext:`'`|
4879 +-------------------------------------------------------------------------------------------------------+
4881 +----------------------------------------------------------------------------------------------+
4882 |:warning:`warning:` |nbsp| :diagtext:`unexpected debug command '`:placeholder:`A`:diagtext:`'`|
4883 +----------------------------------------------------------------------------------------------+
4885 +------------------------------------------------------------------------------------------------------------------------+
4886 |:warning:`warning:` |nbsp| :diagtext:`expected action or ')' in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
4887 +------------------------------------------------------------------------------------------------------------------------+
4889 +--------------------------------------------------------------------------------------------------------------+
4890 |:warning:`warning:` |nbsp| :diagtext:`missing ':' after` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`|
4891 +--------------------------------------------------------------------------------------------------------------+
4893 +---------------------------------------------------------------------------------------------------------------------+
4894 |:warning:`warning:` |nbsp| :diagtext:`missing ':' or ')' after` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`|
4895 +---------------------------------------------------------------------------------------------------------------------+
4897 +---------------------------------------------------------------------------------------------------------------------+
4898 |:warning:`warning:` |nbsp| :diagtext:`expected identifier in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
4899 +---------------------------------------------------------------------------------------------------------------------+
4901 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4902 |:warning:`warning:` |nbsp| :diagtext:`expected 'compiler', 'lib', 'user', or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
4903 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4905 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4906 |: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`|
4907 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4909 +-----------------------------------------------------------------------------------------------------------------+
4910 |:warning:`warning:` |nbsp| :diagtext:`missing '(' after '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignoring`|
4911 +-----------------------------------------------------------------------------------------------------------------+
4913 +------------------------------------------------------------------------------------------------------------------------+
4914 |:warning:`warning:` |nbsp| :diagtext:`expected non-wide string literal in '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`|
4915 +------------------------------------------------------------------------------------------------------------------------+
4917 +-------------------------------------------------------+---------------------------------------------------+------------------------------+
4918 |:warning:`warning:` |nbsp| :diagtext:`expected` |nbsp| |+-------------------------------------------------+| |nbsp| :diagtext:`- ignoring`|
4919 |                                                       ||:diagtext:`'enable', 'disable', 'begin' or 'end'`||                              |
4920 |                                                       |+-------------------------------------------------+|                              |
4921 |                                                       ||:diagtext:`'disable'`                            ||                              |
4922 |                                                       |+-------------------------------------------------+|                              |
4923 +-------------------------------------------------------+---------------------------------------------------+------------------------------+
4925 +-----------------------------------------------------------------------------------------------------------+
4926 |:warning:`warning:` |nbsp| :diagtext:`expected ')' or ',' in '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`|
4927 +-----------------------------------------------------------------------------------------------------------+
4929 +-----------------------------------------------------------------------------------------------------------------+
4930 |:warning:`warning:` |nbsp| :diagtext:`missing ')' after '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignoring`|
4931 +-----------------------------------------------------------------------------------------------------------------+
4933 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
4934 |:warning:`warning:` |nbsp| :diagtext:`expected a stack label or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
4935 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
4937 +------------------------------------------------------------------------------------------------------------------------------------------------+
4938 |:warning:`warning:` |nbsp| :diagtext:`expected a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
4939 +------------------------------------------------------------------------------------------------------------------------------------------------+
4941 +-------------------------------------------------------------------------------------------------------------------------------------------------------------+
4942 |:warning:`warning:` |nbsp| :diagtext:`expected push, pop or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
4943 +-------------------------------------------------------------------------------------------------------------------------------------------------------------+
4945 +---------------------------------------------------------------------------------------------------------------------+
4946 |:warning:`warning:` |nbsp| :diagtext:`extra tokens at end of '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
4947 +---------------------------------------------------------------------------------------------------------------------+
4949 +----------------------------------------------------------------------------------------------------------+
4950 |:warning:`warning:` |nbsp| :diagtext:`incorrect use of #pragma clang force\_cuda\_host\_device begin\|end`|
4951 +----------------------------------------------------------------------------------------------------------+
4953 +-------------------------------------------------------------------------------------------------------------------+
4954 |:warning:`warning:` |nbsp| :diagtext:`'#pragma init\_seg' is only supported when targeting a Microsoft environment`|
4955 +-------------------------------------------------------------------------------------------------------------------+
4957 +-----------------------------------------------------------------------------------------------------------------+
4958 |:warning:`warning:` |nbsp| :diagtext:`unknown action for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
4959 +-----------------------------------------------------------------------------------------------------------------+
4961 +------------------------------------------------------------------------------------------------------------------------------------------------+
4962 |:warning:`warning:` |nbsp| :diagtext:`unknown action '`:placeholder:`B`:diagtext:`' for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
4963 +------------------------------------------------------------------------------------------------------------------------------------------------+
4965 +----------------------------------------------------------------------------------------------+
4966 |:warning:`warning:` |nbsp| :diagtext:`incorrect use of '#pragma ms\_struct on\|off' - ignored`|
4967 +----------------------------------------------------------------------------------------------+
4969 +--------------------------------------------------------------------------------------------------+
4970 |:warning:`warning:` |nbsp| :diagtext:`#pragma options align=reset failed:` |nbsp| :placeholder:`A`|
4971 +--------------------------------------------------------------------------------------------------+
4973 +---------------------------------------------------------------------------------------------+
4974 |:warning:`warning:` |nbsp| :diagtext:`expected 'align' following '#pragma options' - ignored`|
4975 +---------------------------------------------------------------------------------------------+
4977 +--------------------------------------------------------------------------------------------------------+
4978 |:warning:`warning:` |nbsp| :diagtext:`expected #pragma pack parameter to be '1', '2', '4', '8', or '16'`|
4979 +--------------------------------------------------------------------------------------------------------+
4981 +-------------------------------------------------------------------------------------------------+
4982 |:warning:`warning:` |nbsp| :diagtext:`expected integer or identifier in '#pragma pack' - ignored`|
4983 +-------------------------------------------------------------------------------------------------+
4985 +----------------------------------------------------------------------------------------------------------------------------+
4986 |:warning:`warning:` |nbsp| :diagtext:`#pragma` |nbsp| :placeholder:`A`:diagtext:`(pop, ...) failed:` |nbsp| :placeholder:`B`|
4987 +----------------------------------------------------------------------------------------------------------------------------+
4989 +------------------------------------------------------------------------------------------------------------------------------+
4990 |:warning:`warning:` |nbsp| :diagtext:`pragma pop\_macro could not pop '`:placeholder:`A`:diagtext:`', no matching push\_macro`|
4991 +------------------------------------------------------------------------------------------------------------------------------+
4993 +---------------------------------------------------------------------------------------------------------------------+
4994 |:warning:`warning:` |nbsp| :diagtext:`unknown OpenCL extension` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`|
4995 +---------------------------------------------------------------------------------------------------------------------+
4997 +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
4998 |:warning:`warning:` |nbsp| :diagtext:`known but unsupported action '`:placeholder:`B`:diagtext:`' for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
4999 +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
5001 +-------------------------------------------------------------------------------------------------------------------------+
5002 |:warning:`warning:` |nbsp| :diagtext:`unsupported OpenCL extension` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`|
5003 +-------------------------------------------------------------------------------------------------------------------------+
5005 +-----------------------------------------------------------------------------------------------+
5006 |:warning:`warning:` |nbsp| :diagtext:`expected '#pragma unused' argument to be a variable name`|
5007 +-----------------------------------------------------------------------------------------------+
5009 +------------------------------------------------------------------------------------------+
5010 |:warning:`warning:` |nbsp| :diagtext:`only variables can be arguments to '#pragma unused'`|
5011 +------------------------------------------------------------------------------------------+
5013 +----------------------------------------------------------------------------------------------------------------------------------------------+
5014 |:warning:`warning:` |nbsp| :diagtext:`undeclared variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`used as an argument for '#pragma unused'`|
5015 +----------------------------------------------------------------------------------------------------------------------------------------------+
5018 -Wignored-qualifiers
5019 --------------------
5020 Some of the diagnostics controlled by this flag are enabled by default.
5022 **Diagnostic text:**
5024 +--------------------------------------------------+------------------------------------+----------------------------------------------------------------+
5025 |:warning:`warning:` |nbsp| :diagtext:`ARC` |nbsp| |+----------------------------------+| |nbsp| :diagtext:`lifetime qualifier on return type is ignored`|
5026 |                                                  ||:diagtext:`unused`                ||                                                                |
5027 |                                                  |+----------------------------------+|                                                                |
5028 |                                                  ||:diagtext:`\_\_unsafe\_unretained`||                                                                |
5029 |                                                  |+----------------------------------+|                                                                |
5030 |                                                  ||:diagtext:`\_\_strong`            ||                                                                |
5031 |                                                  |+----------------------------------+|                                                                |
5032 |                                                  ||:diagtext:`\_\_weak`              ||                                                                |
5033 |                                                  |+----------------------------------+|                                                                |
5034 |                                                  ||:diagtext:`\_\_autoreleasing`     ||                                                                |
5035 |                                                  |+----------------------------------+|                                                                |
5036 +--------------------------------------------------+------------------------------------+----------------------------------------------------------------+
5038 +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
5039 |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on omitted return type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`|
5040 +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
5042 +------------------------------------------------------------------------------------+---------------+------------------------------------------+-------------------+-----------------------------+
5043 |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' type qualifier`|+-------------+| |nbsp| :diagtext:`on return type` |nbsp| |+-----------------+| |nbsp| :diagtext:`no effect`|
5044 |                                                                                    ||             ||                                          ||:diagtext:`:has` ||                             |
5045 |                                                                                    |+-------------+|                                          |+-----------------+|                             |
5046 |                                                                                    ||:diagtext:`s`||                                          ||:diagtext:`:have`||                             |
5047 |                                                                                    |+-------------+|                                          |+-----------------+|                             |
5048 +------------------------------------------------------------------------------------+---------------+------------------------------------------+-------------------+-----------------------------+
5050 +---------------------------------------------------------------------------------------------------------------------------------------------------------+
5051 |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on function type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`|
5052 +---------------------------------------------------------------------------------------------------------------------------------------------------------+
5054 +----------------------------------------------------------------------------------------------------------------------------------------------------------+
5055 |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on reference type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`|
5056 +----------------------------------------------------------------------------------------------------------------------------------------------------------+
5059 -Wimplicit
5060 ----------
5061 Some of the diagnostics controlled by this flag are enabled by default.
5063 Controls `-Wimplicit-function-declaration`_, `-Wimplicit-int`_.
5066 -Wimplicit-atomic-properties
5067 ----------------------------
5068 **Diagnostic text:**
5070 +-----------------------------------------------------------------------------------------------------+
5071 |:warning:`warning:` |nbsp| :diagtext:`property is assumed atomic when auto-synthesizing the property`|
5072 +-----------------------------------------------------------------------------------------------------+
5074 +----------------------------------------------------------------------------+
5075 |:warning:`warning:` |nbsp| :diagtext:`property is assumed atomic by default`|
5076 +----------------------------------------------------------------------------+
5079 -Wimplicit-conversion-floating-point-to-bool
5080 --------------------------------------------
5081 This diagnostic is enabled by default.
5083 **Diagnostic text:**
5085 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5086 |:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns floating-point number into bool:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
5087 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5090 -Wimplicit-exception-spec-mismatch
5091 ----------------------------------
5092 This diagnostic is enabled by default.
5094 **Diagnostic text:**
5096 +-----------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------+----------------------+-------------------------------------------+
5097 |:warning:`warning:` |nbsp| :diagtext:`function previously declared with an` |nbsp| |+--------------------+| |nbsp| :diagtext:`exception specification redeclared with an` |nbsp| |+--------------------+| |nbsp| :diagtext:`exception specification`|
5098 |                                                                                   ||:diagtext:`explicit`||                                                                      ||:diagtext:`implicit`||                                           |
5099 |                                                                                   |+--------------------+|                                                                      |+--------------------+|                                           |
5100 |                                                                                   ||:diagtext:`implicit`||                                                                      ||:diagtext:`explicit`||                                           |
5101 |                                                                                   |+--------------------+|                                                                      |+--------------------+|                                           |
5102 +-----------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------+----------------------+-------------------------------------------+
5105 -Wimplicit-fallthrough
5106 ----------------------
5107 Also controls `-Wimplicit-fallthrough-per-function`_.
5109 **Diagnostic text:**
5111 +---------------------------------------------------------------------------------+
5112 |:warning:`warning:` |nbsp| :diagtext:`fallthrough annotation in unreachable code`|
5113 +---------------------------------------------------------------------------------+
5115 +-------------------------------------------------------------------------------------+
5116 |:warning:`warning:` |nbsp| :diagtext:`unannotated fall-through between switch labels`|
5117 +-------------------------------------------------------------------------------------+
5120 -Wimplicit-fallthrough-per-function
5121 -----------------------------------
5122 **Diagnostic text:**
5124 +------------------------------------------------------------------------------------------------------------------+
5125 |:warning:`warning:` |nbsp| :diagtext:`unannotated fall-through between switch labels in partly-annotated function`|
5126 +------------------------------------------------------------------------------------------------------------------+
5129 -Wimplicit-function-declaration
5130 -------------------------------
5131 Some of the diagnostics controlled by this flag are enabled by default.
5133 **Diagnostic text:**
5135 +----------------------------------------------------------------------------------------------------------------------------------------+--------------------+
5136 |:warning:`warning:` |nbsp| :diagtext:`implicit declaration of function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is invalid in` |nbsp| |+------------------+|
5137 |                                                                                                                                        ||:diagtext:`C99`   ||
5138 |                                                                                                                                        |+------------------+|
5139 |                                                                                                                                        ||:diagtext:`OpenCL`||
5140 |                                                                                                                                        |+------------------+|
5141 +----------------------------------------------------------------------------------------------------------------------------------------+--------------------+
5143 +---------------------------------------------------------------------------------------------------------------------------------------------+
5144 |:warning:`warning:` |nbsp| :diagtext:`implicitly declaring library function '`:placeholder:`A`:diagtext:`' with type` |nbsp| :placeholder:`B`|
5145 +---------------------------------------------------------------------------------------------------------------------------------------------+
5147 +---------------------------------------------------------------------------------+
5148 |:error:`error:` |nbsp| :diagtext:`use of unknown builtin` |nbsp| :placeholder:`A`|
5149 +---------------------------------------------------------------------------------+
5151 +-----------------------------------------------------------------------------------------------+
5152 |:warning:`warning:` |nbsp| :diagtext:`implicit declaration of function` |nbsp| :placeholder:`A`|
5153 +-----------------------------------------------------------------------------------------------+
5156 -Wimplicit-int
5157 --------------
5158 This diagnostic is enabled by default.
5160 **Diagnostic text:**
5162 +--------------------------------------------------------------------------------+
5163 |:warning:`warning:` |nbsp| :diagtext:`type specifier missing, defaults to 'int'`|
5164 +--------------------------------------------------------------------------------+
5167 -Wimplicit-retain-self
5168 ----------------------
5169 **Diagnostic text:**
5171 +---------------------------------------------------------------------------------------------------------------------------------------+
5172 |:warning:`warning:` |nbsp| :diagtext:`block implicitly retains 'self'; explicitly mention 'self' to indicate this is intended behavior`|
5173 +---------------------------------------------------------------------------------------------------------------------------------------+
5176 -Wimplicitly-unsigned-literal
5177 -----------------------------
5178 This diagnostic is enabled by default.
5180 **Diagnostic text:**
5182 +----------------------------------------------------------------------------------------------------------------------------------------+
5183 |:warning:`warning:` |nbsp| :diagtext:`integer literal is too large to be represented in a signed integer type, interpreting as unsigned`|
5184 +----------------------------------------------------------------------------------------------------------------------------------------+
5187 -Wimport
5188 --------
5189 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
5191 -Wimport-preprocessor-directive-pedantic
5192 ----------------------------------------
5193 **Diagnostic text:**
5195 +----------------------------------------------------------------------+
5196 |:warning:`warning:` |nbsp| :diagtext:`#import is a language extension`|
5197 +----------------------------------------------------------------------+
5200 -Winaccessible-base
5201 -------------------
5202 This diagnostic is enabled by default.
5204 **Diagnostic text:**
5206 +-----------------------------------------------------------------------------------------------------------------------------------------------+
5207 |:warning:`warning:` |nbsp| :diagtext:`direct base` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is inaccessible due to ambiguity:`:placeholder:`B`|
5208 +-----------------------------------------------------------------------------------------------------------------------------------------------+
5211 -Winclude-next-absolute-path
5212 ----------------------------
5213 This diagnostic is enabled by default.
5215 **Diagnostic text:**
5217 +------------------------------------------------------------------------+
5218 |:warning:`warning:` |nbsp| :diagtext:`#include\_next with absolute path`|
5219 +------------------------------------------------------------------------+
5222 -Winclude-next-outside-header
5223 -----------------------------
5224 This diagnostic is enabled by default.
5226 **Diagnostic text:**
5228 +----------------------------------------------------------------------------+
5229 |:warning:`warning:` |nbsp| :diagtext:`#include\_next in primary source file`|
5230 +----------------------------------------------------------------------------+
5233 -Wincompatible-exception-spec
5234 -----------------------------
5235 This diagnostic is enabled by default.
5237 **Diagnostic text:**
5239 +--------------------------------------------------------------------------+----------------------+--------------------------------+
5240 |:warning:`warning:` |nbsp| :diagtext:`exception specifications of` |nbsp| |+--------------------+| |nbsp| :diagtext:`types differ`|
5241 |                                                                          ||:diagtext:`return`  ||                                |
5242 |                                                                          |+--------------------+|                                |
5243 |                                                                          ||:diagtext:`argument`||                                |
5244 |                                                                          |+--------------------+|                                |
5245 +--------------------------------------------------------------------------+----------------------+--------------------------------+
5247 +-----------------------------------------------------------------------------------------------+
5248 |:warning:`warning:` |nbsp| :diagtext:`target exception specification is not superset of source`|
5249 +-----------------------------------------------------------------------------------------------+
5252 -Wincompatible-function-pointer-types
5253 -------------------------------------
5254 This diagnostic is enabled by default.
5256 **Diagnostic text:**
5258 +----------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
5259 |:warning:`warning:` |nbsp| :diagtext:`incompatible function pointer types` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+|
5260 |                                                                                  ||:diagtext:`assigning to different types`                      |||                                     ||
5261 |                                                                                  |+--------------------------------------------------------------+|+-------------------------------------+|
5262 |                                                                                  ||:diagtext:`passing to parameter of different type`            |||:diagtext:`; dereference with \*`    ||
5263 |                                                                                  |+--------------------------------------------------------------+|+-------------------------------------+|
5264 |                                                                                  ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`||
5265 |                                                                                  |+--------------------------------------------------------------+|+-------------------------------------+|
5266 |                                                                                  ||:diagtext:`converting between types`                          |||:diagtext:`; remove \*`              ||
5267 |                                                                                  |+--------------------------------------------------------------+|+-------------------------------------+|
5268 |                                                                                  ||:diagtext:`initializing with expression of different type`    |||:diagtext:`; remove &`               ||
5269 |                                                                                  |+--------------------------------------------------------------+|+-------------------------------------+|
5270 |                                                                                  ||:diagtext:`sending to parameter of different type`            ||                                       |
5271 |                                                                                  |+--------------------------------------------------------------+|                                       |
5272 |                                                                                  ||:diagtext:`casting between types`                             ||                                       |
5273 |                                                                                  |+--------------------------------------------------------------+|                                       |
5274 +----------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
5277 -Wincompatible-library-redeclaration
5278 ------------------------------------
5279 This diagnostic is enabled by default.
5281 **Diagnostic text:**
5283 +-------------------------------------------------------------------------------------------------------------+
5284 |:warning:`warning:` |nbsp| :diagtext:`incompatible redeclaration of library function` |nbsp| :placeholder:`A`|
5285 +-------------------------------------------------------------------------------------------------------------+
5288 -Wincompatible-ms-struct
5289 ------------------------
5290 This diagnostic is an error by default, but the flag ``-Wno-incompatible-ms-struct`` can be used to disable the error.
5292 **Diagnostic text:**
5294 +---------------------------------------------------------------------------------------------------------------------------------------------+
5295 |:error:`error:` |nbsp| :diagtext:`ms\_struct may not produce Microsoft-compatible layouts for classes with base classes or virtual functions`|
5296 +---------------------------------------------------------------------------------------------------------------------------------------------+
5299 -Wincompatible-pointer-types
5300 ----------------------------
5301 This diagnostic is enabled by default.
5303 Also controls `-Wincompatible-function-pointer-types`_, `-Wincompatible-pointer-types-discards-qualifiers`_.
5305 **Diagnostic text:**
5307 +-------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
5308 |:warning:`warning:` |nbsp| :diagtext:`incompatible pointer types` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+|
5309 |                                                                         ||:diagtext:`assigning to different types`                      |||                                     ||
5310 |                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
5311 |                                                                         ||:diagtext:`passing to parameter of different type`            |||:diagtext:`; dereference with \*`    ||
5312 |                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
5313 |                                                                         ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`||
5314 |                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
5315 |                                                                         ||:diagtext:`converting between types`                          |||:diagtext:`; remove \*`              ||
5316 |                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
5317 |                                                                         ||:diagtext:`initializing with expression of different type`    |||:diagtext:`; remove &`               ||
5318 |                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
5319 |                                                                         ||:diagtext:`sending to parameter of different type`            ||                                       |
5320 |                                                                         |+--------------------------------------------------------------+|                                       |
5321 |                                                                         ||:diagtext:`casting between types`                             ||                                       |
5322 |                                                                         |+--------------------------------------------------------------+|                                       |
5323 +-------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
5326 -Wincompatible-pointer-types-discards-qualifiers
5327 ------------------------------------------------
5328 This diagnostic is enabled by default.
5330 **Diagnostic text:**
5332 +---------------------------+----------------------------------------------------------------+---------------------------------------------------------------+
5333 |:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`discards qualifiers in nested pointer types`|
5334 |                           ||:diagtext:`assigning to different types`                      ||                                                               |
5335 |                           |+--------------------------------------------------------------+|                                                               |
5336 |                           ||:diagtext:`passing to parameter of different type`            ||                                                               |
5337 |                           |+--------------------------------------------------------------+|                                                               |
5338 |                           ||:diagtext:`returning from function with different return type`||                                                               |
5339 |                           |+--------------------------------------------------------------+|                                                               |
5340 |                           ||:diagtext:`converting between types`                          ||                                                               |
5341 |                           |+--------------------------------------------------------------+|                                                               |
5342 |                           ||:diagtext:`initializing with expression of different type`    ||                                                               |
5343 |                           |+--------------------------------------------------------------+|                                                               |
5344 |                           ||:diagtext:`sending to parameter of different type`            ||                                                               |
5345 |                           |+--------------------------------------------------------------+|                                                               |
5346 |                           ||:diagtext:`casting between types`                             ||                                                               |
5347 |                           |+--------------------------------------------------------------+|                                                               |
5348 +---------------------------+----------------------------------------------------------------+---------------------------------------------------------------+
5350 +---------------------------+----------------------------------------------------------------+---------------------------------------+
5351 |:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`discards qualifiers`|
5352 |                           ||:diagtext:`assigning to different types`                      ||                                       |
5353 |                           |+--------------------------------------------------------------+|                                       |
5354 |                           ||:diagtext:`passing to parameter of different type`            ||                                       |
5355 |                           |+--------------------------------------------------------------+|                                       |
5356 |                           ||:diagtext:`returning from function with different return type`||                                       |
5357 |                           |+--------------------------------------------------------------+|                                       |
5358 |                           ||:diagtext:`converting between types`                          ||                                       |
5359 |                           |+--------------------------------------------------------------+|                                       |
5360 |                           ||:diagtext:`initializing with expression of different type`    ||                                       |
5361 |                           |+--------------------------------------------------------------+|                                       |
5362 |                           ||:diagtext:`sending to parameter of different type`            ||                                       |
5363 |                           |+--------------------------------------------------------------+|                                       |
5364 |                           ||:diagtext:`casting between types`                             ||                                       |
5365 |                           |+--------------------------------------------------------------+|                                       |
5366 +---------------------------+----------------------------------------------------------------+---------------------------------------+
5369 -Wincompatible-property-type
5370 ----------------------------
5371 This diagnostic is enabled by default.
5373 **Diagnostic text:**
5375 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5376 |: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`|
5377 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5380 -Wincompatible-sysroot
5381 ----------------------
5382 This diagnostic is enabled by default.
5384 **Diagnostic text:**
5386 +------------------------------------------------------------------------------------------------------------------------------------+
5387 |:warning:`warning:` |nbsp| :diagtext:`using sysroot for '`:placeholder:`A`:diagtext:`' but targeting '`:placeholder:`B`:diagtext:`'`|
5388 +------------------------------------------------------------------------------------------------------------------------------------+
5391 -Wincomplete-implementation
5392 ---------------------------
5393 This diagnostic is enabled by default.
5395 **Diagnostic text:**
5397 +-----------------------------------------------------------------------------------------------------------------+
5398 |:warning:`warning:` |nbsp| :diagtext:`method definition for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found`|
5399 +-----------------------------------------------------------------------------------------------------------------+
5402 -Wincomplete-module
5403 -------------------
5404 Some of the diagnostics controlled by this flag are enabled by default.
5406 Controls `-Wincomplete-umbrella`_, `-Wnon-modular-include-in-module`_.
5409 -Wincomplete-umbrella
5410 ---------------------
5411 This diagnostic is enabled by default.
5413 **Diagnostic text:**
5415 +---------------------------------------------------------------------------------------+
5416 |:warning:`warning:` |nbsp| :diagtext:`missing submodule '`:placeholder:`A`:diagtext:`'`|
5417 +---------------------------------------------------------------------------------------+
5419 +--------------------------------------------------------------------------------------------------+
5420 |:warning:`warning:` |nbsp| :diagtext:`umbrella directory '`:placeholder:`A`:diagtext:`' not found`|
5421 +--------------------------------------------------------------------------------------------------+
5423 +-------------------------------------------------------------------------------------------------------------------------------------------------------+
5424 |:warning:`warning:` |nbsp| :diagtext:`umbrella header for module '`:placeholder:`A`:diagtext:`' does not include header '`:placeholder:`B`:diagtext:`'`|
5425 +-------------------------------------------------------------------------------------------------------------------------------------------------------+
5428 -Winconsistent-dllimport
5429 ------------------------
5430 This diagnostic is enabled by default.
5432 **Diagnostic text:**
5434 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5435 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`redeclared without` |nbsp| :placeholder:`B` |nbsp| :diagtext:`attribute: previous` |nbsp| :placeholder:`B` |nbsp| :diagtext:`ignored`|
5436 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5438 +------------------------------------------------------------------------------------------------------------------------------------+
5439 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`redeclared without 'dllimport' attribute: 'dllexport' attribute added`|
5440 +------------------------------------------------------------------------------------------------------------------------------------+
5443 -Winconsistent-missing-destructor-override
5444 ------------------------------------------
5445 **Diagnostic text:**
5447 +------------------------------------------------------------------------------------------------------------------+
5448 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`overrides a destructor but is not marked 'override'`|
5449 +------------------------------------------------------------------------------------------------------------------+
5452 -Winconsistent-missing-override
5453 -------------------------------
5454 This diagnostic is enabled by default.
5456 **Diagnostic text:**
5458 +-----------------------------------------------------------------------------------------------------------------------+
5459 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`overrides a member function but is not marked 'override'`|
5460 +-----------------------------------------------------------------------------------------------------------------------+
5463 -Wincrement-bool
5464 ----------------
5465 This diagnostic is enabled by default.
5467 Also controls `-Wdeprecated-increment-bool`_.
5469 **Diagnostic text:**
5471 +------------------------------------------------------------------------------------------------+
5472 |:error:`error:` |nbsp| :diagtext:`ISO C++17 does not allow incrementing expression of type bool`|
5473 +------------------------------------------------------------------------------------------------+
5476 -Winfinite-recursion
5477 --------------------
5478 **Diagnostic text:**
5480 +---------------------------------------------------------------------------------------+
5481 |:warning:`warning:` |nbsp| :diagtext:`all paths through this function will call itself`|
5482 +---------------------------------------------------------------------------------------+
5485 -Winit-self
5486 -----------
5487 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
5489 -Winitializer-overrides
5490 -----------------------
5491 This diagnostic is enabled by default.
5493 **Diagnostic text:**
5495 +---------------------------------------------------------------------------------------------------+
5496 |:warning:`warning:` |nbsp| :diagtext:`initializer overrides prior initialization of this subobject`|
5497 +---------------------------------------------------------------------------------------------------+
5499 +---------------------------------------------------------------------------------------------------------------------------------------+
5500 |:warning:`warning:` |nbsp| :diagtext:`subobject initialization overrides initialization of other fields within its enclosing subobject`|
5501 +---------------------------------------------------------------------------------------------------------------------------------------+
5504 -Winjected-class-name
5505 ---------------------
5506 This diagnostic is enabled by default.
5508 **Diagnostic text:**
5510 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------+--------------------------------------------------------------+------------------------+---------------------------+
5511 |: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`|
5512 |                                                                                                                                                                           ||:diagtext:`template name`||                                                              ||:diagtext:`'typename'`||                           |
5513 |                                                                                                                                                                           |+-------------------------+|                                                              |+----------------------+|                           |
5514 |                                                                                                                                                                           ||:diagtext:`type`         ||                                                              ||:diagtext:`'template'`||                           |
5515 |                                                                                                                                                                           |+-------------------------+|                                                              |+----------------------+|                           |
5516 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------+--------------------------------------------------------------+------------------------+---------------------------+
5519 -Winline
5520 --------
5521 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
5523 -Winline-asm
5524 ------------
5525 This diagnostic is enabled by default.
5527 **Diagnostic text:**
5529 The text of this diagnostic is not controlled by Clang.
5532 -Winline-new-delete
5533 -------------------
5534 This diagnostic is enabled by default.
5536 **Diagnostic text:**
5538 +----------------------------------------------------------------------------------------------------------------------------------+
5539 |:warning:`warning:` |nbsp| :diagtext:`replacement function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be declared 'inline'`|
5540 +----------------------------------------------------------------------------------------------------------------------------------+
5543 -Winstantiation-after-specialization
5544 ------------------------------------
5545 This diagnostic is enabled by default.
5547 **Diagnostic text:**
5549 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5550 |:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`that occurs after an explicit specialization has no effect`|
5551 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5554 -Wint-conversion
5555 ----------------
5556 This diagnostic is enabled by default.
5558 **Diagnostic text:**
5560 +-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
5561 |:warning:`warning:` |nbsp| :diagtext:`incompatible integer to pointer conversion` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+|
5562 |                                                                                         ||:diagtext:`assigning to different types`                      |||                                     ||
5563 |                                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
5564 |                                                                                         ||:diagtext:`passing to parameter of different type`            |||:diagtext:`; dereference with \*`    ||
5565 |                                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
5566 |                                                                                         ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`||
5567 |                                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
5568 |                                                                                         ||:diagtext:`converting between types`                          |||:diagtext:`; remove \*`              ||
5569 |                                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
5570 |                                                                                         ||:diagtext:`initializing with expression of different type`    |||:diagtext:`; remove &`               ||
5571 |                                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
5572 |                                                                                         ||:diagtext:`sending to parameter of different type`            ||                                       |
5573 |                                                                                         |+--------------------------------------------------------------+|                                       |
5574 |                                                                                         ||:diagtext:`casting between types`                             ||                                       |
5575 |                                                                                         |+--------------------------------------------------------------+|                                       |
5576 +-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
5578 +-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
5579 |:warning:`warning:` |nbsp| :diagtext:`incompatible pointer to integer conversion` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+|
5580 |                                                                                         ||:diagtext:`assigning to different types`                      |||                                     ||
5581 |                                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
5582 |                                                                                         ||:diagtext:`passing to parameter of different type`            |||:diagtext:`; dereference with \*`    ||
5583 |                                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
5584 |                                                                                         ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`||
5585 |                                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
5586 |                                                                                         ||:diagtext:`converting between types`                          |||:diagtext:`; remove \*`              ||
5587 |                                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
5588 |                                                                                         ||:diagtext:`initializing with expression of different type`    |||:diagtext:`; remove &`               ||
5589 |                                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
5590 |                                                                                         ||:diagtext:`sending to parameter of different type`            ||                                       |
5591 |                                                                                         |+--------------------------------------------------------------+|                                       |
5592 |                                                                                         ||:diagtext:`casting between types`                             ||                                       |
5593 |                                                                                         |+--------------------------------------------------------------+|                                       |
5594 +-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
5597 -Wint-conversions
5598 -----------------
5599 Synonym for `-Wint-conversion`_.
5602 -Wint-to-pointer-cast
5603 ---------------------
5604 This diagnostic is enabled by default.
5606 Also controls `-Wint-to-void-pointer-cast`_.
5608 **Diagnostic text:**
5610 +-------------------------------------------------------------------------------------------------------------------------------------------+
5611 |:warning:`warning:` |nbsp| :diagtext:`cast to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from smaller integer type` |nbsp| :placeholder:`A`|
5612 +-------------------------------------------------------------------------------------------------------------------------------------------+
5615 -Wint-to-void-pointer-cast
5616 --------------------------
5617 This diagnostic is enabled by default.
5619 **Diagnostic text:**
5621 +-------------------------------------------------------------------------------------------------------------------------------------------+
5622 |:warning:`warning:` |nbsp| :diagtext:`cast to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from smaller integer type` |nbsp| :placeholder:`A`|
5623 +-------------------------------------------------------------------------------------------------------------------------------------------+
5626 -Winteger-overflow
5627 ------------------
5628 This diagnostic is enabled by default.
5630 **Diagnostic text:**
5632 +-----------------------------------------------------------------------------------------------------------------------------------------------------+
5633 |:warning:`warning:` |nbsp| :diagtext:`overflow in expression; result is` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with type` |nbsp| :placeholder:`B`|
5634 +-----------------------------------------------------------------------------------------------------------------------------------------------------+
5637 -Winvalid-command-line-argument
5638 -------------------------------
5639 This diagnostic is enabled by default.
5641 Also controls `-Wignored-optimization-argument`_.
5643 **Diagnostic text:**
5645 +-----------------------------------------------------------------------------------------------------------------------------------------+
5646 |:warning:`warning:` |nbsp| :diagtext:`the object size sanitizer has no effect at -O0, but is explicitly enabled:` |nbsp| :placeholder:`A`|
5647 +-----------------------------------------------------------------------------------------------------------------------------------------+
5649 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5650 |:warning:`warning:` |nbsp| :diagtext:`optimization level '`:placeholder:`A`:diagtext:`' is not supported; using '`:placeholder:`B`:placeholder:`C`:diagtext:`' instead`|
5651 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5654 -Winvalid-constexpr
5655 -------------------
5656 This diagnostic is an error by default, but the flag ``-Wno-invalid-constexpr`` can be used to disable the error.
5658 **Diagnostic text:**
5660 +----------------------------------------------------+-------------------------+--------------------------------------------------------+
5661 |:error:`error:` |nbsp| :diagtext:`constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`never produces a constant expression`|
5662 |                                                    ||:diagtext:`function`   ||                                                        |
5663 |                                                    |+-----------------------+|                                                        |
5664 |                                                    ||:diagtext:`constructor`||                                                        |
5665 |                                                    |+-----------------------+|                                                        |
5666 +----------------------------------------------------+-------------------------+--------------------------------------------------------+
5669 -Winvalid-iboutlet
5670 ------------------
5671 This diagnostic is enabled by default.
5673 **Diagnostic text:**
5675 +---------------------------+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
5676 |:warning:`warning:` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute must be an object type (invalid` |nbsp| :placeholder:`B`:diagtext:`)`|
5677 |                           ||:diagtext:`instance variable`||                                                                                                                                                  |
5678 |                           |+-----------------------------+|                                                                                                                                                  |
5679 |                           ||:diagtext:`property`         ||                                                                                                                                                  |
5680 |                           |+-----------------------------+|                                                                                                                                                  |
5681 +---------------------------+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
5683 +---------------------------------------------------------------------------------------------------------+
5684 |:warning:`warning:` |nbsp| :diagtext:`IBOutletCollection properties should be copy/strong and not assign`|
5685 +---------------------------------------------------------------------------------------------------------+
5688 -Winvalid-initializer-from-system-header
5689 ----------------------------------------
5690 This diagnostic is enabled by default.
5692 **Diagnostic text:**
5694 +--------------------------------------------------------------------------------------------------------------+
5695 |:warning:`warning:` |nbsp| :diagtext:`invalid constructor form class in system header, should not be explicit`|
5696 +--------------------------------------------------------------------------------------------------------------+
5699 -Winvalid-ios-deployment-target
5700 -------------------------------
5701 This diagnostic is an error by default, but the flag ``-Wno-invalid-ios-deployment-target`` can be used to disable the error.
5703 **Diagnostic text:**
5705 +------------------------------------------------------------------------------------------------------------------------------------------------------------+
5706 |:error:`error:` |nbsp| :diagtext:`invalid iOS deployment version '`:placeholder:`A`:diagtext:`', iOS 10 is the maximum deployment target for 32-bit targets`|
5707 +------------------------------------------------------------------------------------------------------------------------------------------------------------+
5710 -Winvalid-noreturn
5711 ------------------
5712 This diagnostic is enabled by default.
5714 **Diagnostic text:**
5716 +-------------------------------------------------------------------------------------+
5717 |:warning:`warning:` |nbsp| :diagtext:`function declared 'noreturn' should not return`|
5718 +-------------------------------------------------------------------------------------+
5720 +--------------------------------------------------------------------------------------------------------------------------------+
5721 |:warning:`warning:` |nbsp| :diagtext:`function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared 'noreturn' should not return`|
5722 +--------------------------------------------------------------------------------------------------------------------------------+
5725 -Winvalid-offsetof
5726 ------------------
5727 This diagnostic is enabled by default.
5729 **Diagnostic text:**
5731 +----------------------------------------------------------------------------------------+
5732 |:warning:`warning:` |nbsp| :diagtext:`offset of on non-POD type` |nbsp| :placeholder:`A`|
5733 +----------------------------------------------------------------------------------------+
5735 +----------------------------------------------------------------------------------------------------+
5736 |:warning:`warning:` |nbsp| :diagtext:`offset of on non-standard-layout type` |nbsp| :placeholder:`A`|
5737 +----------------------------------------------------------------------------------------------------+
5740 -Winvalid-or-nonexistent-directory
5741 ----------------------------------
5742 Some of the diagnostics controlled by this flag are enabled by default.
5744 **Diagnostic text:**
5746 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5747 |:warning:`warning:` |nbsp| :diagtext:`environment variable SCE\_ORBIS\_SDK\_DIR is set, but points to invalid or nonexistent directory '`:placeholder:`A`:diagtext:`'`|
5748 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5750 +------------------------------------------------------------------------------------------------------------------------------------------------------------+
5751 |:warning:`warning:` |nbsp| :diagtext:`unable to find` |nbsp| :placeholder:`A` |nbsp| :diagtext:`directory, expected to be in '`:placeholder:`B`:diagtext:`'`|
5752 +------------------------------------------------------------------------------------------------------------------------------------------------------------+
5755 -Winvalid-partial-specialization
5756 --------------------------------
5757 This diagnostic is an error by default, but the flag ``-Wno-invalid-partial-specialization`` can be used to disable the error.
5759 **Diagnostic text:**
5761 +-----------------------+----------------------+-----------------------------------------------------------------------------------------------------+
5762 |:error:`error:` |nbsp| |+--------------------+| |nbsp| :diagtext:`template partial specialization is not more specialized than the primary template`|
5763 |                       ||:diagtext:`class`   ||                                                                                                     |
5764 |                       |+--------------------+|                                                                                                     |
5765 |                       ||:diagtext:`variable`||                                                                                                     |
5766 |                       |+--------------------+|                                                                                                     |
5767 +-----------------------+----------------------+-----------------------------------------------------------------------------------------------------+
5770 -Winvalid-pch
5771 -------------
5772 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
5774 -Winvalid-pp-token
5775 ------------------
5776 This diagnostic is enabled by default.
5778 **Diagnostic text:**
5780 +---------------------------------------------------------------+
5781 |:warning:`warning:` |nbsp| :diagtext:`empty character constant`|
5782 +---------------------------------------------------------------+
5784 +------------------------------------------------------------------+-----------------+-----------------------------+
5785 |:warning:`warning:` |nbsp| :diagtext:`missing terminating` |nbsp| |+---------------+| |nbsp| :diagtext:`character`|
5786 |                                                                  ||:diagtext:`'`  ||                             |
5787 |                                                                  |+---------------+|                             |
5788 |                                                                  ||:diagtext:`'"'`||                             |
5789 |                                                                  |+---------------+|                             |
5790 +------------------------------------------------------------------+-----------------+-----------------------------+
5793 -Winvalid-source-encoding
5794 -------------------------
5795 This diagnostic is enabled by default.
5797 **Diagnostic text:**
5799 +--------------------------------------------------------------------------------------+
5800 |:warning:`warning:` |nbsp| :diagtext:`illegal character encoding in character literal`|
5801 +--------------------------------------------------------------------------------------+
5803 +-----------------------------------------------------------------------------------+
5804 |:warning:`warning:` |nbsp| :diagtext:`illegal character encoding in string literal`|
5805 +-----------------------------------------------------------------------------------+
5808 -Winvalid-token-paste
5809 ---------------------
5810 This diagnostic is an error by default, but the flag ``-Wno-invalid-token-paste`` can be used to disable the error.
5812 **Diagnostic text:**
5814 +----------------------------------------------------------------------------------------------------------------+
5815 |:error:`error:` |nbsp| :diagtext:`pasting formed '`:placeholder:`A`:diagtext:`', an invalid preprocessing token`|
5816 +----------------------------------------------------------------------------------------------------------------+
5819 -Wjump-seh-finally
5820 ------------------
5821 This diagnostic is enabled by default.
5823 **Diagnostic text:**
5825 +-------------------------------------------------------------------------------------------+
5826 |:warning:`warning:` |nbsp| :diagtext:`jump out of \_\_finally block has undefined behavior`|
5827 +-------------------------------------------------------------------------------------------+
5830 -Wkeyword-compat
5831 ----------------
5832 This diagnostic is enabled by default.
5834 **Diagnostic text:**
5836 +-----------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+
5837 |:warning:`warning:` |nbsp| :diagtext:`keyword '`:placeholder:`A`:diagtext:`' will be made available as an identifier` |nbsp| |+-----------------------------------------------------+|
5838 |                                                                                                                             ||:diagtext:`here`                                     ||
5839 |                                                                                                                             |+-----------------------------------------------------+|
5840 |                                                                                                                             ||:diagtext:`for the remainder of the translation unit`||
5841 |                                                                                                                             |+-----------------------------------------------------+|
5842 +-----------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+
5845 -Wkeyword-macro
5846 ---------------
5847 **Diagnostic text:**
5849 +----------------------------------------------------------------------------+
5850 |:warning:`warning:` |nbsp| :diagtext:`keyword is hidden by macro definition`|
5851 +----------------------------------------------------------------------------+
5854 -Wknr-promoted-parameter
5855 ------------------------
5856 This diagnostic is enabled by default.
5858 **Diagnostic text:**
5860 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5861 |:warning:`warning:` |nbsp| :diagtext:`promoted type of K&R function parameter is not compatible with parameter type` |nbsp| :diagtext:`declared in a previous prototype`|
5862 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5865 -Wlanguage-extension-token
5866 --------------------------
5867 **Diagnostic text:**
5869 +-----------------------------------------------------+
5870 |:warning:`warning:` |nbsp| :diagtext:`extension used`|
5871 +-----------------------------------------------------+
5874 -Wlarge-by-value-copy
5875 ---------------------
5876 This diagnostic is enabled by default.
5878 **Diagnostic text:**
5880 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5881 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a large (`:placeholder:`B` |nbsp| :diagtext:`bytes) pass-by-value argument; pass it by reference instead ?`|
5882 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5884 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5885 |: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 ?`|
5886 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5889 -Wliblto
5890 --------
5891 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
5893 -Wliteral-conversion
5894 --------------------
5895 This diagnostic is enabled by default.
5897 **Diagnostic text:**
5899 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5900 |: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`|
5901 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5904 -Wliteral-range
5905 ---------------
5906 This diagnostic is enabled by default.
5908 **Diagnostic text:**
5910 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5911 |:warning:`warning:` |nbsp| :diagtext:`magnitude of floating-point constant too large for type` |nbsp| :placeholder:`A`:diagtext:`; maximum is` |nbsp| :placeholder:`B`|
5912 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5914 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5915 |:warning:`warning:` |nbsp| :diagtext:`magnitude of floating-point constant too small for type` |nbsp| :placeholder:`A`:diagtext:`; minimum is` |nbsp| :placeholder:`B`|
5916 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5919 -Wlocal-type-template-args
5920 --------------------------
5921 Some of the diagnostics controlled by this flag are enabled by default.
5923 Also controls `-Wc++98-compat-local-type-template-args`_.
5925 **Diagnostic text:**
5927 +------------------------------------------------------------------------------------------------+
5928 |:warning:`warning:` |nbsp| :diagtext:`template argument uses local type` |nbsp| :placeholder:`A`|
5929 +------------------------------------------------------------------------------------------------+
5932 -Wlogical-not-parentheses
5933 -------------------------
5934 This diagnostic is enabled by default.
5936 **Diagnostic text:**
5938 +--------------------------------------------------------------------------------------------------------+------------------------------+
5939 |:warning:`warning:` |nbsp| :diagtext:`logical not is only applied to the left hand side of this` |nbsp| |+----------------------------+|
5940 |                                                                                                        ||:diagtext:`comparison`      ||
5941 |                                                                                                        |+----------------------------+|
5942 |                                                                                                        ||:diagtext:`bitwise operator`||
5943 |                                                                                                        |+----------------------------+|
5944 +--------------------------------------------------------------------------------------------------------+------------------------------+
5947 -Wlogical-op-parentheses
5948 ------------------------
5949 This diagnostic is enabled by default.
5951 **Diagnostic text:**
5953 +---------------------------------------------------------+
5954 |:warning:`warning:` |nbsp| :diagtext:`'&&' within '\|\|'`|
5955 +---------------------------------------------------------+
5958 -Wlong-long
5959 -----------
5960 Also controls `-Wc++11-long-long`_.
5962 **Diagnostic text:**
5964 +-----------------------------------------------------------------------------------------------+
5965 |:warning:`warning:` |nbsp| :diagtext:`'long long' is an extension when C99 mode is not enabled`|
5966 +-----------------------------------------------------------------------------------------------+
5969 -Wloop-analysis
5970 ---------------
5971 Controls `-Wfor-loop-analysis`_, `-Wrange-loop-analysis`_.
5974 -Wmacro-redefined
5975 -----------------
5976 This diagnostic is enabled by default.
5978 **Diagnostic text:**
5980 +------------------------------------------------------------------------------+
5981 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`macro redefined`|
5982 +------------------------------------------------------------------------------+
5985 -Wmain
5986 ------
5987 Some of the diagnostics controlled by this flag are enabled by default.
5989 **Diagnostic text:**
5991 +--------------------------------------------------------------------------------------------+
5992 |:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow 'main' to be used by a program`|
5993 +--------------------------------------------------------------------------------------------+
5995 +--------------------------------------------------------------------------------------+
5996 |:warning:`warning:` |nbsp| :diagtext:`'main' is not allowed to be declared \_Noreturn`|
5997 +--------------------------------------------------------------------------------------+
5999 +------------------------------------------------------------------------------------+
6000 |:warning:`warning:` |nbsp| :diagtext:`'main' is not allowed to be declared variadic`|
6001 +------------------------------------------------------------------------------------+
6003 +-------------------------------------------------------------------------------+
6004 |:warning:`warning:` |nbsp| :diagtext:`only one parameter on 'main' declaration`|
6005 +-------------------------------------------------------------------------------+
6007 +---------------------------------------------------------------------------------------------------------+
6008 |:warning:`warning:` |nbsp| :diagtext:`variable named 'main' with external linkage has undefined behavior`|
6009 +---------------------------------------------------------------------------------------------------------+
6011 +------------------------------------------------------------------------+
6012 |:warning:`warning:` |nbsp| :diagtext:`bool literal returned from 'main'`|
6013 +------------------------------------------------------------------------+
6015 +---------------------------------------------------------------------------+
6016 |:warning:`warning:` |nbsp| :diagtext:`'main' should not be declared static`|
6017 +---------------------------------------------------------------------------+
6020 -Wmain-return-type
6021 ------------------
6022 This diagnostic is enabled by default.
6024 **Diagnostic text:**
6026 +-------------------------------------------------------------------------+
6027 |:warning:`warning:` |nbsp| :diagtext:`return type of 'main' is not 'int'`|
6028 +-------------------------------------------------------------------------+
6031 -Wmalformed-warning-check
6032 -------------------------
6033 This diagnostic is enabled by default.
6035 **Diagnostic text:**
6037 +---------------------------------------------------------------------------------------------+
6038 |:warning:`warning:` |nbsp| :diagtext:`\_\_has\_warning expected option name (e.g. "-Wundef")`|
6039 +---------------------------------------------------------------------------------------------+
6042 -Wmany-braces-around-scalar-init
6043 --------------------------------
6044 This diagnostic is enabled by default.
6046 **Diagnostic text:**
6048 +--------------------------------------------------------------------------------+
6049 |:warning:`warning:` |nbsp| :diagtext:`too many braces around scalar initializer`|
6050 +--------------------------------------------------------------------------------+
6053 -Wmax-unsigned-zero
6054 -------------------
6055 This diagnostic is enabled by default.
6057 **Diagnostic text:**
6059 +----------------------------------------------------------------+---------------------------------------+------------------------------------------------------+
6060 |:warning:`warning:` |nbsp| :diagtext:`taking the max of` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`is always equal to the other value`|
6061 |                                                                ||:diagtext:`a value and unsigned zero`||                                                      |
6062 |                                                                |+-------------------------------------+|                                                      |
6063 |                                                                ||:diagtext:`unsigned zero and a value`||                                                      |
6064 |                                                                |+-------------------------------------+|                                                      |
6065 +----------------------------------------------------------------+---------------------------------------+------------------------------------------------------+
6068 -Wmemsize-comparison
6069 --------------------
6070 This diagnostic is enabled by default.
6072 **Diagnostic text:**
6074 +-----------------------------------------------------------------------------------------------------------------------+
6075 |:warning:`warning:` |nbsp| :diagtext:`size argument in` |nbsp| :placeholder:`A` |nbsp| :diagtext:`call is a comparison`|
6076 +-----------------------------------------------------------------------------------------------------------------------+
6079 -Wmethod-signatures
6080 -------------------
6081 **Diagnostic text:**
6083 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6084 |:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in implementation of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
6085 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6087 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6088 |:warning:`warning:` |nbsp| :diagtext:`conflicting return type in implementation of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
6089 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6092 -Wmicrosoft
6093 -----------
6094 Some of the diagnostics controlled by this flag are enabled by default.
6096 Controls `-Winconsistent-dllimport`_, `-Wmicrosoft-anon-tag`_, `-Wmicrosoft-cast`_, `-Wmicrosoft-charize`_, `-Wmicrosoft-comment-paste`_, `-Wmicrosoft-const-init`_, `-Wmicrosoft-cpp-macro`_, `-Wmicrosoft-default-arg-redefinition`_, `-Wmicrosoft-end-of-file`_, `-Wmicrosoft-enum-forward-reference`_, `-Wmicrosoft-enum-value`_, `-Wmicrosoft-exception-spec`_, `-Wmicrosoft-explicit-constructor-call`_, `-Wmicrosoft-extra-qualification`_, `-Wmicrosoft-fixed-enum`_, `-Wmicrosoft-flexible-array`_, `-Wmicrosoft-goto`_, `-Wmicrosoft-include`_, `-Wmicrosoft-mutable-reference`_, `-Wmicrosoft-pure-definition`_, `-Wmicrosoft-redeclare-static`_, `-Wmicrosoft-sealed`_, `-Wmicrosoft-template`_, `-Wmicrosoft-union-member-reference`_, `-Wmicrosoft-unqualified-friend`_, `-Wmicrosoft-using-decl`_, `-Wmicrosoft-void-pseudo-dtor`_.
6099 -Wmicrosoft-anon-tag
6100 --------------------
6101 Some of the diagnostics controlled by this flag are enabled by default.
6103 **Diagnostic text:**
6105 +-----------------------------------------------------------------------------+--------------------+---------------------------------------------+
6106 |:warning:`warning:` |nbsp| :diagtext:`types declared in an anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`are a Microsoft extension`|
6107 |                                                                             ||:diagtext:`struct`||                                             |
6108 |                                                                             |+------------------+|                                             |
6109 |                                                                             ||:diagtext:`union` ||                                             |
6110 |                                                                             |+------------------+|                                             |
6111 +-----------------------------------------------------------------------------+--------------------+---------------------------------------------+
6113 +--------------------------------------------------------+---------------------+---------------------------------------------+
6114 |:warning:`warning:` |nbsp| :diagtext:`anonymous` |nbsp| |+-------------------+| |nbsp| :diagtext:`are a Microsoft extension`|
6115 |                                                        ||:diagtext:`structs`||                                             |
6116 |                                                        |+-------------------+|                                             |
6117 |                                                        ||:diagtext:`unions` ||                                             |
6118 |                                                        |+-------------------+|                                             |
6119 +--------------------------------------------------------+---------------------+---------------------------------------------+
6122 -Wmicrosoft-cast
6123 ----------------
6124 This diagnostic is enabled by default.
6126 **Diagnostic text:**
6128 +------------------------------------------------------------------------------------------------------------------------------+
6129 |:warning:`warning:` |nbsp| :diagtext:`static\_cast between pointer-to-function and pointer-to-object is a Microsoft extension`|
6130 +------------------------------------------------------------------------------------------------------------------------------+
6132 +-------------------------------------------------------------------------------------------------------------------------------------+
6133 |:warning:`warning:` |nbsp| :diagtext:`implicit conversion between pointer-to-function and pointer-to-object is a Microsoft extension`|
6134 +-------------------------------------------------------------------------------------------------------------------------------------+
6137 -Wmicrosoft-charize
6138 -------------------
6139 **Diagnostic text:**
6141 +-------------------------------------------------------------------------------------+
6142 |:warning:`warning:` |nbsp| :diagtext:`charizing operator #@ is a Microsoft extension`|
6143 +-------------------------------------------------------------------------------------+
6146 -Wmicrosoft-comment-paste
6147 -------------------------
6148 **Diagnostic text:**
6150 +----------------------------------------------------------------------------------------------------------+
6151 |:warning:`warning:` |nbsp| :diagtext:`pasting two '/' tokens into a '//' comment is a Microsoft extension`|
6152 +----------------------------------------------------------------------------------------------------------+
6155 -Wmicrosoft-const-init
6156 ----------------------
6157 This diagnostic is enabled by default.
6159 **Diagnostic text:**
6161 +----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------+--------------------------------------------+
6162 |:warning:`warning:` |nbsp| :diagtext:`default initialization of an object of const type` |nbsp| :placeholder:`A`|+---------------------------------------------------------------+| |nbsp| :diagtext:`is a Microsoft extension`|
6163 |                                                                                                                ||                                                               ||                                            |
6164 |                                                                                                                |+---------------------------------------------------------------+|                                            |
6165 |                                                                                                                || |nbsp| :diagtext:`without a user-provided default constructor`||                                            |
6166 |                                                                                                                |+---------------------------------------------------------------+|                                            |
6167 +----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------+--------------------------------------------+
6170 -Wmicrosoft-cpp-macro
6171 ---------------------
6172 **Diagnostic text:**
6174 +-------------------------------------------------------------------------------------------------------------------------------------------------------------+
6175 |:warning:`warning:` |nbsp| :diagtext:`C++ operator` |nbsp| :placeholder:`A` |nbsp| :diagtext:`(aka` |nbsp| :placeholder:`B`:diagtext:`) used as a macro name`|
6176 +-------------------------------------------------------------------------------------------------------------------------------------------------------------+
6179 -Wmicrosoft-default-arg-redefinition
6180 ------------------------------------
6181 This diagnostic is enabled by default.
6183 **Diagnostic text:**
6185 +-----------------------------------------------------------------------+
6186 |:warning:`warning:` |nbsp| :diagtext:`redefinition of default argument`|
6187 +-----------------------------------------------------------------------+
6190 -Wmicrosoft-end-of-file
6191 -----------------------
6192 **Diagnostic text:**
6194 +----------------------------------------------------------------------------------------------+
6195 |:warning:`warning:` |nbsp| :diagtext:`treating Ctrl-Z as end-of-file is a Microsoft extension`|
6196 +----------------------------------------------------------------------------------------------+
6199 -Wmicrosoft-enum-forward-reference
6200 ----------------------------------
6201 This diagnostic is enabled by default.
6203 **Diagnostic text:**
6205 +---------------------------------------------------------------------------------------------------+
6206 |:warning:`warning:` |nbsp| :diagtext:`forward references to 'enum' types are a Microsoft extension`|
6207 +---------------------------------------------------------------------------------------------------+
6210 -Wmicrosoft-enum-value
6211 ----------------------
6212 **Diagnostic text:**
6214 +---------------------------------------------------------------------------------------------------------------------------+
6215 |:warning:`warning:` |nbsp| :diagtext:`enumerator value is not representable in the underlying type` |nbsp| :placeholder:`A`|
6216 +---------------------------------------------------------------------------------------------------------------------------+
6219 -Wmicrosoft-exception-spec
6220 --------------------------
6221 Some of the diagnostics controlled by this flag are enabled by default.
6223 **Diagnostic text:**
6225 +------------------------------------------------------------------------------------------------+
6226 |:warning:`warning:` |nbsp| :diagtext:`exception specification of '...' is a Microsoft extension`|
6227 +------------------------------------------------------------------------------------------------+
6229 +---------------------------+----------------------------------+----------------------------------------------------------------------------------------------------------------+
6230 |:warning:`warning:` |nbsp| |+--------------------------------+|:diagtext:`incomplete type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is not allowed in exception specification`|
6231 |                           ||                                ||                                                                                                                |
6232 |                           |+--------------------------------+|                                                                                                                |
6233 |                           ||:diagtext:`pointer to` |nbsp|   ||                                                                                                                |
6234 |                           |+--------------------------------+|                                                                                                                |
6235 |                           ||:diagtext:`reference to` |nbsp| ||                                                                                                                |
6236 |                           |+--------------------------------+|                                                                                                                |
6237 +---------------------------+----------------------------------+----------------------------------------------------------------------------------------------------------------+
6239 +-----------------------------------------------------------------------------------------------------------------+
6240 |:warning:`warning:` |nbsp| :diagtext:`exception specification in declaration does not match previous declaration`|
6241 +-----------------------------------------------------------------------------------------------------------------+
6243 +------------------------------------------------------------------------------------------------------------------------+
6244 |:warning:`warning:` |nbsp| :diagtext:`exception specification in explicit instantiation does not match instantiated one`|
6245 +------------------------------------------------------------------------------------------------------------------------+
6247 +--------------------------------------------------------------------------------------------------------------------------------+
6248 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is missing exception specification '`:placeholder:`B`:diagtext:`'`|
6249 +--------------------------------------------------------------------------------------------------------------------------------+
6251 +-------------------------------------------------------------------------------------------------------------------+
6252 |:warning:`warning:` |nbsp| :diagtext:`exception specification of overriding function is more lax than base version`|
6253 +-------------------------------------------------------------------------------------------------------------------+
6256 -Wmicrosoft-exists
6257 ------------------
6258 This diagnostic is enabled by default.
6260 **Diagnostic text:**
6262 +--------------------------------------------------------+---------------------------------+--------------------------------------------+
6263 |:warning:`warning:` |nbsp| :diagtext:`dependent` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`declarations are ignored`|
6264 |                                                        ||:diagtext:`\_\_if\_not\_exists`||                                            |
6265 |                                                        |+-------------------------------+|                                            |
6266 |                                                        ||:diagtext:`\_\_if\_exists`     ||                                            |
6267 |                                                        |+-------------------------------+|                                            |
6268 +--------------------------------------------------------+---------------------------------+--------------------------------------------+
6271 -Wmicrosoft-explicit-constructor-call
6272 -------------------------------------
6273 This diagnostic is enabled by default.
6275 **Diagnostic text:**
6277 +-------------------------------------------------------------------------------------------+
6278 |:warning:`warning:` |nbsp| :diagtext:`explicit constructor calls are a Microsoft extension`|
6279 +-------------------------------------------------------------------------------------------+
6282 -Wmicrosoft-extra-qualification
6283 -------------------------------
6284 This diagnostic is enabled by default.
6286 **Diagnostic text:**
6288 +--------------------------------------------------------------------------------------------+
6289 |:warning:`warning:` |nbsp| :diagtext:`extra qualification on member` |nbsp| :placeholder:`A`|
6290 +--------------------------------------------------------------------------------------------+
6293 -Wmicrosoft-fixed-enum
6294 ----------------------
6295 **Diagnostic text:**
6297 +---------------------------------------------------------------------------------------------------------------+
6298 |:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a Microsoft extension`|
6299 +---------------------------------------------------------------------------------------------------------------+
6302 -Wmicrosoft-flexible-array
6303 --------------------------
6304 **Diagnostic text:**
6306 +----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+
6307 |:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in otherwise empty` |nbsp| |+---------------------+| |nbsp| :diagtext:`is a Microsoft extension`|
6308 |                                                                                                                                  ||:diagtext:`struct`   ||                                            |
6309 |                                                                                                                                  |+---------------------+|                                            |
6310 |                                                                                                                                  ||:diagtext:`interface`||                                            |
6311 |                                                                                                                                  |+---------------------+|                                            |
6312 |                                                                                                                                  ||:diagtext:`union`    ||                                            |
6313 |                                                                                                                                  |+---------------------+|                                            |
6314 |                                                                                                                                  ||:diagtext:`class`    ||                                            |
6315 |                                                                                                                                  |+---------------------+|                                            |
6316 |                                                                                                                                  ||:diagtext:`enum`     ||                                            |
6317 |                                                                                                                                  |+---------------------+|                                            |
6318 +----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+
6320 +-------------------------------------------------------------------------------------------------------------------------------------------+
6321 |:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in a union is a Microsoft extension`|
6322 +-------------------------------------------------------------------------------------------------------------------------------------------+
6325 -Wmicrosoft-goto
6326 ----------------
6327 This diagnostic is enabled by default.
6329 **Diagnostic text:**
6331 +----------------------------------------------------------------------------------------------------------+
6332 |:warning:`warning:` |nbsp| :diagtext:`jump from this goto statement to its label is a Microsoft extension`|
6333 +----------------------------------------------------------------------------------------------------------+
6336 -Wmicrosoft-include
6337 -------------------
6338 This diagnostic is enabled by default.
6340 **Diagnostic text:**
6342 +------------------------------------------------------------------------------------------------------------------------------+
6343 |:warning:`warning:` |nbsp| :diagtext:`#include resolved using non-portable Microsoft search rules as:` |nbsp| :placeholder:`A`|
6344 +------------------------------------------------------------------------------------------------------------------------------+
6347 -Wmicrosoft-mutable-reference
6348 -----------------------------
6349 This diagnostic is enabled by default.
6351 **Diagnostic text:**
6353 +---------------------------------------------------------------------------------------------+
6354 |:warning:`warning:` |nbsp| :diagtext:`'mutable' on a reference type is a Microsoft extension`|
6355 +---------------------------------------------------------------------------------------------+
6358 -Wmicrosoft-pure-definition
6359 ---------------------------
6360 This diagnostic is enabled by default.
6362 **Diagnostic text:**
6364 +-------------------------------------------------------------------------------------------------------+
6365 |:warning:`warning:` |nbsp| :diagtext:`function definition with pure-specifier is a Microsoft extension`|
6366 +-------------------------------------------------------------------------------------------------------+
6369 -Wmicrosoft-redeclare-static
6370 ----------------------------
6371 **Diagnostic text:**
6373 +-------------------------------------------------------------------------------------------------------------------------------------------+
6374 |:warning:`warning:` |nbsp| :diagtext:`redeclaring non-static` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as static is a Microsoft extension`|
6375 +-------------------------------------------------------------------------------------------------------------------------------------------+
6378 -Wmicrosoft-sealed
6379 ------------------
6380 This diagnostic is enabled by default.
6382 **Diagnostic text:**
6384 +--------------------------------------------------------------------------------+
6385 |:warning:`warning:` |nbsp| :diagtext:`'sealed' keyword is a Microsoft extension`|
6386 +--------------------------------------------------------------------------------+
6389 -Wmicrosoft-template
6390 --------------------
6391 This diagnostic is enabled by default.
6393 **Diagnostic text:**
6395 +------------------------------------------------------------------------------------------------------------------------------------------------------+
6396 |:warning:`warning:` |nbsp| :diagtext:`duplicate explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored as a Microsoft extension`|
6397 +------------------------------------------------------------------------------------------------------------------------------------------------------+
6399 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6400 |: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`|
6401 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6403 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
6404 |:warning:`warning:` |nbsp| :diagtext:`explicit specialization of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`within class scope is a Microsoft extension`|
6405 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
6407 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6408 |:warning:`warning:` |nbsp| :diagtext:`using the undeclared type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as a default template argument is a Microsoft extension`|
6409 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6411 +-----------------------------------------------------------------------------------------------------------------------------+
6412 |:warning:`warning:` |nbsp| :diagtext:`non-type template argument containing a dereference operation is a Microsoft extension`|
6413 +-----------------------------------------------------------------------------------------------------------------------------+
6415 +---------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6416 |:warning:`warning:` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`specialization of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`outside namespace enclosing` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is a Microsoft extension`|
6417 |                           ||:diagtext:`class template`           ||                                                                                                                                                                                |
6418 |                           |+-------------------------------------+|                                                                                                                                                                                |
6419 |                           ||:diagtext:`class template partial`   ||                                                                                                                                                                                |
6420 |                           |+-------------------------------------+|                                                                                                                                                                                |
6421 |                           ||:diagtext:`variable template`        ||                                                                                                                                                                                |
6422 |                           |+-------------------------------------+|                                                                                                                                                                                |
6423 |                           ||:diagtext:`variable template partial`||                                                                                                                                                                                |
6424 |                           |+-------------------------------------+|                                                                                                                                                                                |
6425 |                           ||:diagtext:`function template`        ||                                                                                                                                                                                |
6426 |                           |+-------------------------------------+|                                                                                                                                                                                |
6427 |                           ||:diagtext:`member function`          ||                                                                                                                                                                                |
6428 |                           |+-------------------------------------+|                                                                                                                                                                                |
6429 |                           ||:diagtext:`static data member`       ||                                                                                                                                                                                |
6430 |                           |+-------------------------------------+|                                                                                                                                                                                |
6431 |                           ||:diagtext:`member class`             ||                                                                                                                                                                                |
6432 |                           |+-------------------------------------+|                                                                                                                                                                                |
6433 |                           ||:diagtext:`member enumeration`       ||                                                                                                                                                                                |
6434 |                           |+-------------------------------------+|                                                                                                                                                                                |
6435 +---------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6437 +------------------------------------------------------------------------------------------------------------------------------------------------+
6438 |:warning:`warning:` |nbsp| :diagtext:`template argument for template type parameter must be a type; omitted 'typename' is a Microsoft extension`|
6439 +------------------------------------------------------------------------------------------------------------------------------------------------+
6441 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6442 |: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`|
6443 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6446 -Wmicrosoft-union-member-reference
6447 ----------------------------------
6448 This diagnostic is enabled by default.
6450 **Diagnostic text:**
6452 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6453 |:warning:`warning:` |nbsp| :diagtext:`union member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has reference type` |nbsp| :placeholder:`B`:diagtext:`, which is a Microsoft extension`|
6454 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6457 -Wmicrosoft-unqualified-friend
6458 ------------------------------
6459 This diagnostic is enabled by default.
6461 **Diagnostic text:**
6463 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6464 |: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`|
6465 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6468 -Wmicrosoft-using-decl
6469 ----------------------
6470 This diagnostic is enabled by default.
6472 **Diagnostic text:**
6474 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6475 |: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`|
6476 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6479 -Wmicrosoft-void-pseudo-dtor
6480 ----------------------------
6481 This diagnostic is enabled by default.
6483 **Diagnostic text:**
6485 +------------------------------------------------------------------------------------------------+
6486 |:warning:`warning:` |nbsp| :diagtext:`pseudo-destructors on type void are a Microsoft extension`|
6487 +------------------------------------------------------------------------------------------------+
6490 -Wmismatched-new-delete
6491 -----------------------
6492 This diagnostic is enabled by default.
6494 **Diagnostic text:**
6496 +----------------------------------------------+------------------+---------------------------------------------------------------+------------------+-----------------------------------+------------------+--------------+
6497 |:warning:`warning:` |nbsp| :diagtext:`'delete`|+----------------+|:diagtext:`' applied to a pointer that was allocated with 'new`|+----------------+|:diagtext:`'; did you mean 'delete`|+----------------+|:diagtext:`'?`|
6498 |                                              ||                ||                                                               ||:diagtext:`\[\]`||                                   ||:diagtext:`\[\]`||              |
6499 |                                              |+----------------+|                                                               |+----------------+|                                   |+----------------+|              |
6500 |                                              ||:diagtext:`\[\]`||                                                               ||                ||                                   ||                ||              |
6501 |                                              |+----------------+|                                                               |+----------------+|                                   |+----------------+|              |
6502 +----------------------------------------------+------------------+---------------------------------------------------------------+------------------+-----------------------------------+------------------+--------------+
6505 -Wmismatched-parameter-types
6506 ----------------------------
6507 This diagnostic is enabled by default.
6509 **Diagnostic text:**
6511 +---------------------------------------------------------------------------------------------------------------+
6512 |:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in implementation of` |nbsp| :placeholder:`A`|
6513 +---------------------------------------------------------------------------------------------------------------+
6516 -Wmismatched-return-types
6517 -------------------------
6518 This diagnostic is enabled by default.
6520 **Diagnostic text:**
6522 +-----------------------------------------------------------------------------------------------------------+
6523 |:warning:`warning:` |nbsp| :diagtext:`conflicting return type in implementation of` |nbsp| :placeholder:`A`|
6524 +-----------------------------------------------------------------------------------------------------------+
6527 -Wmismatched-tags
6528 -----------------
6529 **Diagnostic text:**
6531 +---------------------------------------------------------------------------------+--------------------------+------------------------------+-----------------------------------------------------------+--------------------------+------------------------------+
6532 |:warning:`warning:` |nbsp| :placeholder:`C` |nbsp| :diagtext:`defined as` |nbsp| |+------------------------+|+----------------------------+| |nbsp| :diagtext:`here but previously declared as` |nbsp| |+------------------------+|+----------------------------+|
6533 |                                                                                 ||:diagtext:`a struct`    |||                            ||                                                           ||:diagtext:`a struct`    |||                            ||
6534 |                                                                                 |+------------------------+|+----------------------------+|                                                           |+------------------------+|+----------------------------+|
6535 |                                                                                 ||:diagtext:`an interface`||| |nbsp| :diagtext:`template`||                                                           ||:diagtext:`an interface`||| |nbsp| :diagtext:`template`||
6536 |                                                                                 |+------------------------+|+----------------------------+|                                                           |+------------------------+|+----------------------------+|
6537 |                                                                                 ||:diagtext:`a class`     ||                              |                                                           ||:diagtext:`a class`     ||                              |
6538 |                                                                                 |+------------------------+|                              |                                                           |+------------------------+|                              |
6539 +---------------------------------------------------------------------------------+--------------------------+------------------------------+-----------------------------------------------------------+--------------------------+------------------------------+
6541 +---------------------------+-----------------------+------------------------------+--------------------------------------------------------------------------------+-----------------------+------------------------------+
6542 |:warning:`warning:` |nbsp| |+---------------------+|+----------------------------+| |nbsp| :placeholder:`C` |nbsp| :diagtext:`was previously declared as a` |nbsp| |+---------------------+|+----------------------------+|
6543 |                           ||:diagtext:`struct`   |||                            ||                                                                                ||:diagtext:`struct`   |||                            ||
6544 |                           |+---------------------+|+----------------------------+|                                                                                |+---------------------+|+----------------------------+|
6545 |                           ||:diagtext:`interface`||| |nbsp| :diagtext:`template`||                                                                                ||:diagtext:`interface`||| |nbsp| :diagtext:`template`||
6546 |                           |+---------------------+|+----------------------------+|                                                                                |+---------------------+|+----------------------------+|
6547 |                           ||:diagtext:`class`    ||                              |                                                                                ||:diagtext:`class`    ||                              |
6548 |                           |+---------------------+|                              |                                                                                |+---------------------+|                              |
6549 +---------------------------+-----------------------+------------------------------+--------------------------------------------------------------------------------+-----------------------+------------------------------+
6552 -Wmissing-braces
6553 ----------------
6554 **Diagnostic text:**
6556 +----------------------------------------------------------------------------------------+
6557 |:warning:`warning:` |nbsp| :diagtext:`suggest braces around initialization of subobject`|
6558 +----------------------------------------------------------------------------------------+
6561 -Wmissing-declarations
6562 ----------------------
6563 This diagnostic is enabled by default.
6565 **Diagnostic text:**
6567 +----------------------------------------------------------------------------+
6568 |:warning:`warning:` |nbsp| :diagtext:`declaration does not declare anything`|
6569 +----------------------------------------------------------------------------+
6571 +-----------------------------------------------------------------------------------------------------------------+
6572 |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is not permitted on a declaration of a type`|
6573 +-----------------------------------------------------------------------------------------------------------------+
6575 +--------------------------------------------------------------+
6576 |:warning:`warning:` |nbsp| :diagtext:`typedef requires a name`|
6577 +--------------------------------------------------------------+
6579 +-------------------------------------------------------------------------------------------------+
6580 |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' ignored on this declaration`|
6581 +-------------------------------------------------------------------------------------------------+
6584 -Wmissing-exception-spec
6585 ------------------------
6586 This diagnostic is enabled by default.
6588 **Diagnostic text:**
6590 +--------------------------------------------------------------------------------------------------------------------------------+
6591 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is missing exception specification '`:placeholder:`B`:diagtext:`'`|
6592 +--------------------------------------------------------------------------------------------------------------------------------+
6595 -Wmissing-field-initializers
6596 ----------------------------
6597 **Diagnostic text:**
6599 +-----------------------------------------------------------------------------------------------------------+
6600 |:warning:`warning:` |nbsp| :diagtext:`missing field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`initializer`|
6601 +-----------------------------------------------------------------------------------------------------------+
6604 -Wmissing-format-attribute
6605 --------------------------
6606 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
6608 -Wmissing-include-dirs
6609 ----------------------
6610 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
6612 -Wmissing-method-return-type
6613 ----------------------------
6614 **Diagnostic text:**
6616 +--------------------------------------------------------------------------------------------+
6617 |:warning:`warning:` |nbsp| :diagtext:`method has no return type specified; defaults to 'id'`|
6618 +--------------------------------------------------------------------------------------------+
6621 -Wmissing-noescape
6622 ------------------
6623 This diagnostic is enabled by default.
6625 **Diagnostic text:**
6627 +----------------------------------------------------------------------------------------------------------------------------+
6628 |:warning:`warning:` |nbsp| :diagtext:`parameter of overriding method should be annotated with \_\_attribute\_\_((noescape))`|
6629 +----------------------------------------------------------------------------------------------------------------------------+
6632 -Wmissing-noreturn
6633 ------------------
6634 **Diagnostic text:**
6636 +----------------------------------------------------------------------------------------+
6637 |:warning:`warning:` |nbsp| :diagtext:`block could be declared with attribute 'noreturn'`|
6638 +----------------------------------------------------------------------------------------+
6640 +---------------------------+----------------------+---------------------------------------------------------------------------------------+
6641 |:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`could be declared with attribute 'noreturn'`|
6642 |                           ||:diagtext:`function`||                                                                                       |
6643 |                           |+--------------------+|                                                                                       |
6644 |                           ||:diagtext:`method`  ||                                                                                       |
6645 |                           |+--------------------+|                                                                                       |
6646 +---------------------------+----------------------+---------------------------------------------------------------------------------------+
6649 -Wmissing-prototype-for-cc
6650 --------------------------
6651 This diagnostic is enabled by default.
6653 **Diagnostic text:**
6655 +----------------------------------------------------------------------------------------------------------------------------------------------+
6656 |:warning:`warning:` |nbsp| :diagtext:`function with no prototype cannot use the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`calling convention`|
6657 +----------------------------------------------------------------------------------------------------------------------------------------------+
6660 -Wmissing-prototypes
6661 --------------------
6662 **Diagnostic text:**
6664 +-------------------------------------------------------------------------------------------------+
6665 |:warning:`warning:` |nbsp| :diagtext:`no previous prototype for function` |nbsp| :placeholder:`A`|
6666 +-------------------------------------------------------------------------------------------------+
6669 -Wmissing-selector-name
6670 -----------------------
6671 This diagnostic is enabled by default.
6673 **Diagnostic text:**
6675 +---------------------------------------------------------------------------------------------------------------------------------------------+
6676 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`used as the name of the previous parameter rather than as part of the selector`|
6677 +---------------------------------------------------------------------------------------------------------------------------------------------+
6680 -Wmissing-sysroot
6681 -----------------
6682 This diagnostic is enabled by default.
6684 **Diagnostic text:**
6686 +------------------------------------------------------------------------------------------------+
6687 |:warning:`warning:` |nbsp| :diagtext:`no such sysroot directory: '`:placeholder:`A`:diagtext:`'`|
6688 +------------------------------------------------------------------------------------------------+
6691 -Wmissing-variable-declarations
6692 -------------------------------
6693 **Diagnostic text:**
6695 +---------------------------------------------------------------------------------------------------------------------+
6696 |:warning:`warning:` |nbsp| :diagtext:`no previous extern declaration for non-static variable` |nbsp| :placeholder:`A`|
6697 +---------------------------------------------------------------------------------------------------------------------+
6700 -Rmodule-build
6701 --------------
6702 **Diagnostic text:**
6704 +---------------------------------------------------------------------------------------------------------------------+
6705 |:remark:`remark:` |nbsp| :diagtext:`building module '`:placeholder:`A`:diagtext:`' as '`:placeholder:`B`:diagtext:`'`|
6706 +---------------------------------------------------------------------------------------------------------------------+
6708 +--------------------------------------------------------------------------------------------+
6709 |:remark:`remark:` |nbsp| :diagtext:`finished building module '`:placeholder:`A`:diagtext:`'`|
6710 +--------------------------------------------------------------------------------------------+
6712 +-----------------------------------------------------------------------------------------------------------------------------------+
6713 |:remark:`remark:` |nbsp| :diagtext:`could not acquire lock file for module '`:placeholder:`A`:diagtext:`':` |nbsp| :placeholder:`B`|
6714 +-----------------------------------------------------------------------------------------------------------------------------------+
6716 +---------------------------------------------------------------------------------------------------------------------+
6717 |:remark:`remark:` |nbsp| :diagtext:`timed out waiting to acquire lock file for module '`:placeholder:`A`:diagtext:`'`|
6718 +---------------------------------------------------------------------------------------------------------------------+
6721 -Wmodule-conflict
6722 -----------------
6723 This diagnostic is enabled by default.
6725 **Diagnostic text:**
6727 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6728 |:warning:`warning:` |nbsp| :diagtext:`module '`:placeholder:`A`:diagtext:`' conflicts with already-imported module '`:placeholder:`B`:diagtext:`':` |nbsp| :placeholder:`C`|
6729 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6731 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6732 |: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`|
6733 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6736 -Wmodule-file-config-mismatch
6737 -----------------------------
6738 This diagnostic is an error by default, but the flag ``-Wno-module-file-config-mismatch`` can be used to disable the error.
6740 **Diagnostic text:**
6742 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6743 |:error:`error:` |nbsp| :diagtext:`module file` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be loaded due to a configuration mismatch with the current compilation`|
6744 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6747 -Wmodule-file-extension
6748 -----------------------
6749 This diagnostic is enabled by default.
6751 **Diagnostic text:**
6753 +----------------------------------------------------------------------------------------------------------------+
6754 |:warning:`warning:` |nbsp| :diagtext:`duplicate module file extension block name '`:placeholder:`A`:diagtext:`'`|
6755 +----------------------------------------------------------------------------------------------------------------+
6758 -Wmodule-import-in-extern-c
6759 ---------------------------
6760 This diagnostic is an error by default, but the flag ``-Wno-module-import-in-extern-c`` can be used to disable the error.
6762 **Diagnostic text:**
6764 +-----------------------------------------------------------------------------------------------------------------------------------------------+
6765 |:error:`error:` |nbsp| :diagtext:`import of C++ module '`:placeholder:`A`:diagtext:`' appears within extern "C" language linkage specification`|
6766 +-----------------------------------------------------------------------------------------------------------------------------------------------+
6769 -Wmodules-ambiguous-internal-linkage
6770 ------------------------------------
6771 This diagnostic is enabled by default.
6773 **Diagnostic text:**
6775 +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
6776 |:warning:`warning:` |nbsp| :diagtext:`ambiguous use of internal linkage declaration` |nbsp| :placeholder:`A` |nbsp| :diagtext:`defined in multiple modules`|
6777 +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
6780 -Wmodules-import-nested-redundant
6781 ---------------------------------
6782 This diagnostic is an error by default, but the flag ``-Wno-modules-import-nested-redundant`` can be used to disable the error.
6784 **Diagnostic text:**
6786 +-------------------------------------------------------------------------------------------------------------------------------------+
6787 |:error:`error:` |nbsp| :diagtext:`redundant #include of module '`:placeholder:`A`:diagtext:`' appears within` |nbsp| :placeholder:`B`|
6788 +-------------------------------------------------------------------------------------------------------------------------------------+
6791 -Wmost
6792 ------
6793 Some of the diagnostics controlled by this flag are enabled by default.
6795 Controls `-Wcast-of-sel-type`_, `-Wchar-subscripts`_, `-Wcomment`_, `-Wdelete-non-virtual-dtor`_, `-Wextern-c-compat`_, `-Wfor-loop-analysis`_, `-Wformat`_, `-Wimplicit`_, `-Winfinite-recursion`_, `-Wmismatched-tags`_, `-Wmissing-braces`_, `-Wmove`_, `-Wmultichar`_, `-Wobjc-designated-initializers`_, `-Wobjc-flexible-array`_, `-Wobjc-missing-super-calls`_, `-Woverloaded-virtual`_, `-Wprivate-extern`_, `-Wreorder`_, `-Wreturn-type`_, `-Wself-assign`_, `-Wself-move`_, `-Wsizeof-array-argument`_, `-Wsizeof-array-decay`_, `-Wstring-plus-int`_, `-Wtrigraphs`_, `-Wuninitialized`_, `-Wunknown-pragmas`_, `-Wunused`_, `-Wuser-defined-warnings`_, `-Wvolatile-register-var`_.
6798 -Wmove
6799 ------
6800 Controls `-Wpessimizing-move`_, `-Wredundant-move`_, `-Wself-move`_.
6803 -Wmsvc-include
6804 --------------
6805 Synonym for `-Wmicrosoft-include`_.
6808 -Wmsvc-not-found
6809 ----------------
6810 This diagnostic is enabled by default.
6812 **Diagnostic text:**
6814 +-------------------------------------------------------------------------------------------------------------------------------------+
6815 |:warning:`warning:` |nbsp| :diagtext:`unable to find a Visual Studio installation; try running Clang from a developer command prompt`|
6816 +-------------------------------------------------------------------------------------------------------------------------------------+
6819 -Wmultichar
6820 -----------
6821 This diagnostic is enabled by default.
6823 **Diagnostic text:**
6825 +-------------------------------------------------------------------------+
6826 |:warning:`warning:` |nbsp| :diagtext:`multi-character character constant`|
6827 +-------------------------------------------------------------------------+
6830 -Wmultiple-move-vbase
6831 ---------------------
6832 This diagnostic is enabled by default.
6834 **Diagnostic text:**
6836 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6837 |: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`|
6838 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6841 -Wnarrowing
6842 -----------
6843 Synonym for `-Wc++11-narrowing`_.
6846 -Wnested-anon-types
6847 -------------------
6848 **Diagnostic text:**
6850 +---------------------------------------------------------------------------------------+--------------------+------------------------------------+
6851 |:warning:`warning:` |nbsp| :diagtext:`anonymous types declared in an anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`are an extension`|
6852 |                                                                                       ||:diagtext:`struct`||                                    |
6853 |                                                                                       |+------------------+|                                    |
6854 |                                                                                       ||:diagtext:`union` ||                                    |
6855 |                                                                                       |+------------------+|                                    |
6856 +---------------------------------------------------------------------------------------+--------------------+------------------------------------+
6859 -Wnested-externs
6860 ----------------
6861 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
6863 -Wnew-returns-null
6864 ------------------
6865 This diagnostic is enabled by default.
6867 **Diagnostic text:**
6869 +-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+
6870 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return a null pointer unless it is declared 'throw()'`|+---------------------------------+|
6871 |                                                                                                                               ||                                 ||
6872 |                                                                                                                               |+---------------------------------+|
6873 |                                                                                                                               || |nbsp| :diagtext:`or 'noexcept'`||
6874 |                                                                                                                               |+---------------------------------+|
6875 +-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+
6878 -Wnewline-eof
6879 -------------
6880 **Diagnostic text:**
6882 +----------------------------------------------------------------+
6883 |:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`|
6884 +----------------------------------------------------------------+
6886 +----------------------------------------------------------------+
6887 |:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`|
6888 +----------------------------------------------------------------+
6891 -Wnoexcept-type
6892 ---------------
6893 Synonym for `-Wc++17-compat-mangling`_.
6896 -Wnon-gcc
6897 ---------
6898 Some of the diagnostics controlled by this flag are enabled by default.
6900 Controls `-Wconversion`_, `-Wliteral-range`_, `-Wsign-compare`_.
6903 -Wnon-literal-null-conversion
6904 -----------------------------
6905 This diagnostic is enabled by default.
6907 **Diagnostic text:**
6909 +--------------------------------------------------------------------------------------------------------------------------------------------+
6910 |:warning:`warning:` |nbsp| :diagtext:`expression which evaluates to zero treated as a null pointer constant of type` |nbsp| :placeholder:`A`|
6911 +--------------------------------------------------------------------------------------------------------------------------------------------+
6914 -Wnon-modular-include-in-framework-module
6915 -----------------------------------------
6916 **Diagnostic text:**
6918 +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
6919 |:warning:`warning:` |nbsp| :diagtext:`include of non-modular header inside framework module '`:placeholder:`A`:diagtext:`': '`:placeholder:`B`:diagtext:`'`|
6920 +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
6923 -Wnon-modular-include-in-module
6924 -------------------------------
6925 Also controls `-Wnon-modular-include-in-framework-module`_.
6927 **Diagnostic text:**
6929 +-------------------------------------------------------------------------------------------------------------------------------------------------+
6930 |:warning:`warning:` |nbsp| :diagtext:`include of non-modular header inside module '`:placeholder:`A`:diagtext:`': '`:placeholder:`B`:diagtext:`'`|
6931 +-------------------------------------------------------------------------------------------------------------------------------------------------+
6934 -Wnon-pod-varargs
6935 -----------------
6936 This diagnostic is an error by default, but the flag ``-Wno-non-pod-varargs`` can be used to disable the error.
6938 **Diagnostic text:**
6940 +----------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------------------------+-------------------------+----------------------------------------+
6941 |: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`|
6942 |                                                                ||:diagtext:`non-POD`    ||                                                                                            ||:diagtext:`function`   ||                                        |
6943 |                                                                |+-----------------------+|                                                                                            |+-----------------------+|                                        |
6944 |                                                                ||:diagtext:`non-trivial`||                                                                                            ||:diagtext:`block`      ||                                        |
6945 |                                                                |+-----------------------+|                                                                                            |+-----------------------+|                                        |
6946 |                                                                |                         |                                                                                            ||:diagtext:`method`     ||                                        |
6947 |                                                                |                         |                                                                                            |+-----------------------+|                                        |
6948 |                                                                |                         |                                                                                            ||:diagtext:`constructor`||                                        |
6949 |                                                                |                         |                                                                                            |+-----------------------+|                                        |
6950 +----------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------------------------+-------------------------+----------------------------------------+
6952 +------------------------------------------------------+-------------------------+-------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------+
6953 |: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`|
6954 |                                                      ||:diagtext:`non-POD`    ||                                                                                                 ||:diagtext:`function`   ||                                                                          |
6955 |                                                      |+-----------------------+|                                                                                                 |+-----------------------+|                                                                          |
6956 |                                                      ||:diagtext:`non-trivial`||                                                                                                 ||:diagtext:`block`      ||                                                                          |
6957 |                                                      |+-----------------------+|                                                                                                 |+-----------------------+|                                                                          |
6958 |                                                      |                         |                                                                                                 ||:diagtext:`method`     ||                                                                          |
6959 |                                                      |                         |                                                                                                 |+-----------------------+|                                                                          |
6960 |                                                      |                         |                                                                                                 ||:diagtext:`constructor`||                                                                          |
6961 |                                                      |                         |                                                                                                 |+-----------------------+|                                                                          |
6962 +------------------------------------------------------+-------------------------+-------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------+
6964 +----------------------------------------------------------------------------------------------------------+
6965 |:error:`error:` |nbsp| :diagtext:`second argument to 'va\_arg' is of non-POD type` |nbsp| :placeholder:`A`|
6966 +----------------------------------------------------------------------------------------------------------+
6968 +--------------------------------------------------------------------------------------------------------------------------+
6969 |:error:`error:` |nbsp| :diagtext:`second argument to 'va\_arg' is of ARC ownership-qualified type` |nbsp| :placeholder:`A`|
6970 +--------------------------------------------------------------------------------------------------------------------------+
6973 -Wnon-virtual-dtor
6974 ------------------
6975 **Diagnostic text:**
6977 +---------------------------------------------------------------------------------------------------------------+
6978 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has virtual functions but non-virtual destructor`|
6979 +---------------------------------------------------------------------------------------------------------------+
6982 -Wnonnull
6983 ---------
6984 This diagnostic is enabled by default.
6986 **Diagnostic text:**
6988 +------------------------------------------------------------------------------------------------+
6989 |:warning:`warning:` |nbsp| :diagtext:`null passed to a callee that requires a non-null argument`|
6990 +------------------------------------------------------------------------------------------------+
6992 +-----------------------------------------------------------------+----------------------+---------------------------------------------------------+
6993 |:warning:`warning:` |nbsp| :diagtext:`null returned from` |nbsp| |+--------------------+| |nbsp| :diagtext:`that requires a non-null return value`|
6994 |                                                                 ||:diagtext:`function`||                                                         |
6995 |                                                                 |+--------------------+|                                                         |
6996 |                                                                 ||:diagtext:`method`  ||                                                         |
6997 |                                                                 |+--------------------+|                                                         |
6998 +-----------------------------------------------------------------+----------------------+---------------------------------------------------------+
7001 -Wnonportable-cfstrings
7002 -----------------------
7003 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
7005 -Wnonportable-include-path
7006 --------------------------
7007 This diagnostic is enabled by default.
7009 **Diagnostic text:**
7011 +------------------------------------------------------------------------------------------------------------------------------------------------------+
7012 |:warning:`warning:` |nbsp| :diagtext:`non-portable path to file '`:placeholder:`A`:diagtext:`'; specified path differs in case from file name on disk`|
7013 +------------------------------------------------------------------------------------------------------------------------------------------------------+
7016 -Wnonportable-system-include-path
7017 ---------------------------------
7018 **Diagnostic text:**
7020 +------------------------------------------------------------------------------------------------------------------------------------------------------+
7021 |:warning:`warning:` |nbsp| :diagtext:`non-portable path to file '`:placeholder:`A`:diagtext:`'; specified path differs in case from file name on disk`|
7022 +------------------------------------------------------------------------------------------------------------------------------------------------------+
7025 -Wnonportable-vector-initialization
7026 -----------------------------------
7027 This diagnostic is enabled by default.
7029 **Diagnostic text:**
7031 +---------------------------------------------------------------------------------------------------------------------+
7032 |:warning:`warning:` |nbsp| :diagtext:`vector initializers are not compatible with NEON intrinsics in big endian mode`|
7033 +---------------------------------------------------------------------------------------------------------------------+
7036 -Wnsconsumed-mismatch
7037 ---------------------
7038 This diagnostic is enabled by default.
7040 **Diagnostic text:**
7042 +---------------------------------------------------------------------------------------------------------------+
7043 |:warning:`warning:` |nbsp| :diagtext:`overriding method has mismatched ns\_consumed attribute on its parameter`|
7044 +---------------------------------------------------------------------------------------------------------------+
7047 -Wnsreturns-mismatch
7048 --------------------
7049 This diagnostic is enabled by default.
7051 **Diagnostic text:**
7053 +-------------------------------------------------------------------------------------+---------------------------+------------------------------+
7054 |:warning:`warning:` |nbsp| :diagtext:`overriding method has mismatched ns\_returns\_`|+-------------------------+| |nbsp| :diagtext:`attributes`|
7055 |                                                                                     ||:diagtext:`not\_retained`||                              |
7056 |                                                                                     |+-------------------------+|                              |
7057 |                                                                                     ||:diagtext:`retained`     ||                              |
7058 |                                                                                     |+-------------------------+|                              |
7059 +-------------------------------------------------------------------------------------+---------------------------+------------------------------+
7062 -Wnull-arithmetic
7063 -----------------
7064 This diagnostic is enabled by default.
7066 **Diagnostic text:**
7068 +--------------------------------------------------------------------------+
7069 |:warning:`warning:` |nbsp| :diagtext:`use of NULL in arithmetic operation`|
7070 +--------------------------------------------------------------------------+
7072 +--------------------------------------------------------------------------------------+--------------------------------------------------------------+
7073 |:warning:`warning:` |nbsp| :diagtext:`comparison between NULL and non-pointer` |nbsp| |+------------------------------------------------------------+|
7074 |                                                                                      ||+----------------------------------------------------------+||
7075 |                                                                                      |||:diagtext:`(`:placeholder:`B` |nbsp| :diagtext:`and NULL)`|||
7076 |                                                                                      ||+----------------------------------------------------------+||
7077 |                                                                                      |+------------------------------------------------------------+|
7078 |                                                                                      ||+----------------------------------------------------------+||
7079 |                                                                                      |||:diagtext:`(NULL and` |nbsp| :placeholder:`B`:diagtext:`)`|||
7080 |                                                                                      ||+----------------------------------------------------------+||
7081 |                                                                                      |+------------------------------------------------------------+|
7082 +--------------------------------------------------------------------------------------+--------------------------------------------------------------+
7085 -Wnull-character
7086 ----------------
7087 This diagnostic is enabled by default.
7089 **Diagnostic text:**
7091 +-----------------------------------------------------------------------------+--------------------+---------------------------+
7092 |:warning:`warning:` |nbsp| :diagtext:`null character(s) preserved in` |nbsp| |+------------------+| |nbsp| :diagtext:`literal`|
7093 |                                                                             ||:diagtext:`char`  ||                           |
7094 |                                                                             |+------------------+|                           |
7095 |                                                                             ||:diagtext:`string`||                           |
7096 |                                                                             |+------------------+|                           |
7097 +-----------------------------------------------------------------------------+--------------------+---------------------------+
7099 +-------------------------------------------------------------+
7100 |:warning:`warning:` |nbsp| :diagtext:`null character ignored`|
7101 +-------------------------------------------------------------+
7104 -Wnull-conversion
7105 -----------------
7106 This diagnostic is enabled by default.
7108 **Diagnostic text:**
7110 +---------------------------------------------------------------------+---------------------+-------------------------------------------------------+
7111 |:warning:`warning:` |nbsp| :diagtext:`implicit conversion of` |nbsp| |+-------------------+| |nbsp| :diagtext:`constant to` |nbsp| :placeholder:`B`|
7112 |                                                                     ||:diagtext:`NULL`   ||                                                       |
7113 |                                                                     |+-------------------+|                                                       |
7114 |                                                                     ||:diagtext:`nullptr`||                                                       |
7115 |                                                                     |+-------------------+|                                                       |
7116 +---------------------------------------------------------------------+---------------------+-------------------------------------------------------+
7119 -Wnull-dereference
7120 ------------------
7121 This diagnostic is enabled by default.
7123 **Diagnostic text:**
7125 +------------------------------------------------------------------------------------------------------------+
7126 |:warning:`warning:` |nbsp| :diagtext:`binding dereferenced null pointer to reference has undefined behavior`|
7127 +------------------------------------------------------------------------------------------------------------+
7129 +---------------------------------------------------------------------------------------------------------+
7130 |:warning:`warning:` |nbsp| :diagtext:`indirection of non-volatile null pointer will be deleted, not trap`|
7131 +---------------------------------------------------------------------------------------------------------+
7134 -Wnull-pointer-arithmetic
7135 -------------------------
7136 **Diagnostic text:**
7138 +--------------------------------------------------------------------------------------------------------------------------------+
7139 |:warning:`warning:` |nbsp| :diagtext:`arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension`|
7140 +--------------------------------------------------------------------------------------------------------------------------------+
7142 +-------------------------------------------------------------------------------------------------------------+----------------------------------------------+
7143 |:warning:`warning:` |nbsp| :diagtext:`performing pointer arithmetic on a null pointer has undefined behavior`|+--------------------------------------------+|
7144 |                                                                                                             ||                                            ||
7145 |                                                                                                             |+--------------------------------------------+|
7146 |                                                                                                             || |nbsp| :diagtext:`if the offset is nonzero`||
7147 |                                                                                                             |+--------------------------------------------+|
7148 +-------------------------------------------------------------------------------------------------------------+----------------------------------------------+
7151 -Wnullability
7152 -------------
7153 This diagnostic is enabled by default.
7155 **Diagnostic text:**
7157 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7158 |:warning:`warning:` |nbsp| :diagtext:`conflicting nullability specifier on parameter types,` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`|
7159 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7161 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7162 |:warning:`warning:` |nbsp| :diagtext:`conflicting nullability specifier on return types,` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`|
7163 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7165 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
7166 |:warning:`warning:` |nbsp| :diagtext:`nullability specifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`|
7167 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
7169 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7170 |:warning:`warning:` |nbsp| :diagtext:`synthesized setter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for null\_resettable property` |nbsp| :placeholder:`B` |nbsp| :diagtext:`does not handle nil`|
7171 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7173 +----------------------------------------------------------------------------------------------+
7174 |:warning:`warning:` |nbsp| :diagtext:`duplicate nullability specifier` |nbsp| :placeholder:`A`|
7175 +----------------------------------------------------------------------------------------------+
7178 -Wnullability-completeness
7179 --------------------------
7180 This diagnostic is enabled by default.
7182 Also controls `-Wnullability-completeness-on-arrays`_.
7184 **Diagnostic text:**
7186 +---------------------------+----------------------------+-----------------------------------------------------------------------------------------------------------+
7187 |:warning:`warning:` |nbsp| |+--------------------------+| |nbsp| :diagtext:`is missing a nullability type specifier (\_Nonnull, \_Nullable, or \_Null\_unspecified)`|
7188 |                           ||:diagtext:`pointer`       ||                                                                                                           |
7189 |                           |+--------------------------+|                                                                                                           |
7190 |                           ||:diagtext:`block pointer` ||                                                                                                           |
7191 |                           |+--------------------------+|                                                                                                           |
7192 |                           ||:diagtext:`member pointer`||                                                                                                           |
7193 |                           |+--------------------------+|                                                                                                           |
7194 +---------------------------+----------------------------+-----------------------------------------------------------------------------------------------------------+
7197 -Wnullability-completeness-on-arrays
7198 ------------------------------------
7199 This diagnostic is enabled by default.
7201 **Diagnostic text:**
7203 +----------------------------------------------------------------------------------------------------------------------------------------------+
7204 |:warning:`warning:` |nbsp| :diagtext:`array parameter is missing a nullability type specifier (\_Nonnull, \_Nullable, or \_Null\_unspecified)`|
7205 +----------------------------------------------------------------------------------------------------------------------------------------------+
7208 -Wnullability-declspec
7209 ----------------------
7210 This diagnostic is an error by default, but the flag ``-Wno-nullability-declspec`` can be used to disable the error.
7212 **Diagnostic text:**
7214 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------+-------------+
7215 |: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:`?`|
7216 |                                                                                                                                                                                                                                 ||:diagtext:`pointer`                ||             |
7217 |                                                                                                                                                                                                                                 |+-----------------------------------+|             |
7218 |                                                                                                                                                                                                                                 ||:diagtext:`block pointer`          ||             |
7219 |                                                                                                                                                                                                                                 |+-----------------------------------+|             |
7220 |                                                                                                                                                                                                                                 ||:diagtext:`member pointer`         ||             |
7221 |                                                                                                                                                                                                                                 |+-----------------------------------+|             |
7222 |                                                                                                                                                                                                                                 ||:diagtext:`function pointer`       ||             |
7223 |                                                                                                                                                                                                                                 |+-----------------------------------+|             |
7224 |                                                                                                                                                                                                                                 ||:diagtext:`member function pointer`||             |
7225 |                                                                                                                                                                                                                                 |+-----------------------------------+|             |
7226 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------+-------------+
7229 -Wnullability-extension
7230 -----------------------
7231 **Diagnostic text:**
7233 +---------------------------------------------------------------------------------------------------------------------------------+
7234 |:warning:`warning:` |nbsp| :diagtext:`type nullability specifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a Clang extension`|
7235 +---------------------------------------------------------------------------------------------------------------------------------+
7238 -Wnullability-inferred-on-nested-type
7239 -------------------------------------
7240 This diagnostic is enabled by default.
7242 **Diagnostic text:**
7244 +--------------------------------------------------------------------------------------------+-----------------------+---------------------------------+
7245 |:warning:`warning:` |nbsp| :diagtext:`inferring '\_Nonnull' for pointer type within` |nbsp| |+---------------------+| |nbsp| :diagtext:`is deprecated`|
7246 |                                                                                            ||:diagtext:`array`    ||                                 |
7247 |                                                                                            |+---------------------+|                                 |
7248 |                                                                                            ||:diagtext:`reference`||                                 |
7249 |                                                                                            |+---------------------+|                                 |
7250 +--------------------------------------------------------------------------------------------+-----------------------+---------------------------------+
7253 -Wnullable-to-nonnull-conversion
7254 --------------------------------
7255 **Diagnostic text:**
7257 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7258 |:warning:`warning:` |nbsp| :diagtext:`implicit conversion from nullable pointer` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to non-nullable pointer type` |nbsp| :placeholder:`B`|
7259 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7262 -Wobjc-autosynthesis-property-ivar-name-match
7263 ---------------------------------------------
7264 This diagnostic is enabled by default.
7266 **Diagnostic text:**
7268 +---------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------------------------------------------------+
7269 |: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`|
7270 |                                                                                                                           ||                       ||                                                                                                                                 |
7271 |                                                                                                                           |+-----------------------+|                                                                                                                                 |
7272 |                                                                                                                           ||:diagtext:`synthesized`||                                                                                                                                 |
7273 |                                                                                                                           |+-----------------------+|                                                                                                                                 |
7274 +---------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------------------------------------------------+
7277 -Wobjc-circular-container
7278 -------------------------
7279 This diagnostic is enabled by default.
7281 **Diagnostic text:**
7283 +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
7284 |:warning:`warning:` |nbsp| :diagtext:`adding '`:placeholder:`A`:diagtext:`' to '`:placeholder:`B`:diagtext:`' might cause circular dependency in container`|
7285 +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
7288 -Wobjc-cocoa-api
7289 ----------------
7290 Synonym for `-Wobjc-redundant-api-use`_.
7293 -Wobjc-designated-initializers
7294 ------------------------------
7295 This diagnostic is enabled by default.
7297 **Diagnostic text:**
7299 +-----------------------------------------------------------------------------------------------------------------------------------+
7300 |:warning:`warning:` |nbsp| :diagtext:`designated initializer missing a 'super' call to a designated initializer of the super class`|
7301 +-----------------------------------------------------------------------------------------------------------------------------------+
7303 +--------------------------------------------------------------------------------------------------+
7304 |:warning:`warning:` |nbsp| :diagtext:`designated initializer invoked a non-designated initializer`|
7305 +--------------------------------------------------------------------------------------------------+
7307 +--------------------------------------------------------------------------------------------------------------------+
7308 |:warning:`warning:` |nbsp| :diagtext:`designated initializer should only invoke a designated initializer on 'super'`|
7309 +--------------------------------------------------------------------------------------------------------------------+
7311 +------------------------------------------------------------------------------------------------------------------------------------------------------------+
7312 |:warning:`warning:` |nbsp| :diagtext:`method override for the designated initializer of the superclass` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found`|
7313 +------------------------------------------------------------------------------------------------------------------------------------------------------------+
7315 +-----------------------------------------------------------------------------------------------------------+
7316 |:warning:`warning:` |nbsp| :diagtext:`convenience initializer missing a 'self' call to another initializer`|
7317 +-----------------------------------------------------------------------------------------------------------+
7319 +----------------------------------------------------------------------------------------------------------+
7320 |:warning:`warning:` |nbsp| :diagtext:`convenience initializer should not invoke an initializer on 'super'`|
7321 +----------------------------------------------------------------------------------------------------------+
7324 -Wobjc-flexible-array
7325 ---------------------
7326 This diagnostic is enabled by default.
7328 **Diagnostic text:**
7330 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7331 |: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`|
7332 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7334 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7335 |: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`|
7336 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7339 -Wobjc-forward-class-redefinition
7340 ---------------------------------
7341 This diagnostic is enabled by default.
7343 **Diagnostic text:**
7345 +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
7346 |:warning:`warning:` |nbsp| :diagtext:`redefinition of forward class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of a typedef name of an object type is ignored`|
7347 +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
7350 -Wobjc-interface-ivars
7351 ----------------------
7352 **Diagnostic text:**
7354 +-------------------------------------------------------------------------------------------------------+
7355 |:warning:`warning:` |nbsp| :diagtext:`declaration of instance variables in the interface is deprecated`|
7356 +-------------------------------------------------------------------------------------------------------+
7359 -Wobjc-literal-compare
7360 ----------------------
7361 This diagnostic is enabled by default.
7363 Also controls `-Wobjc-string-compare`_.
7365 **Diagnostic text:**
7367 +-------------------------------------------------------------------+----------------------------------+------------------------------------------+
7368 |:warning:`warning:` |nbsp| :diagtext:`direct comparison of` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`has undefined behavior`|
7369 |                                                                   ||:diagtext:`an array literal`    ||                                          |
7370 |                                                                   |+--------------------------------+|                                          |
7371 |                                                                   ||:diagtext:`a dictionary literal`||                                          |
7372 |                                                                   |+--------------------------------+|                                          |
7373 |                                                                   ||:diagtext:`a numeric literal`   ||                                          |
7374 |                                                                   |+--------------------------------+|                                          |
7375 |                                                                   ||:diagtext:`a boxed expression`  ||                                          |
7376 |                                                                   |+--------------------------------+|                                          |
7377 |                                                                   ||                                ||                                          |
7378 |                                                                   |+--------------------------------+|                                          |
7379 +-------------------------------------------------------------------+----------------------------------+------------------------------------------+
7382 -Wobjc-literal-conversion
7383 -------------------------
7384 This diagnostic is enabled by default.
7386 **Diagnostic text:**
7388 +-------------------------------------------------------------------------------------------------------------------------+
7389 |:warning:`warning:` |nbsp| :diagtext:`implicit boolean conversion of Objective-C object literal always evaluates to true`|
7390 +-------------------------------------------------------------------------------------------------------------------------+
7392 +-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------+
7393 |:warning:`warning:` |nbsp| :diagtext:`object of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not compatible with` |nbsp| |+---------------------------------+| |nbsp| :placeholder:`C`|
7394 |                                                                                                                               ||:diagtext:`array element type`   ||                        |
7395 |                                                                                                                               |+---------------------------------+|                        |
7396 |                                                                                                                               ||:diagtext:`dictionary key type`  ||                        |
7397 |                                                                                                                               |+---------------------------------+|                        |
7398 |                                                                                                                               ||:diagtext:`dictionary value type`||                        |
7399 |                                                                                                                               |+---------------------------------+|                        |
7400 +-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------+
7403 -Wobjc-macro-redefinition
7404 -------------------------
7405 This diagnostic is enabled by default.
7407 **Diagnostic text:**
7409 +-------------------------------------------------------------------------------------------+
7410 |:warning:`warning:` |nbsp| :diagtext:`ignoring redefinition of Objective-C qualifier macro`|
7411 +-------------------------------------------------------------------------------------------+
7414 -Wobjc-messaging-id
7415 -------------------
7416 **Diagnostic text:**
7418 +---------------------------------------------------------------+
7419 |:warning:`warning:` |nbsp| :diagtext:`messaging unqualified id`|
7420 +---------------------------------------------------------------+
7423 -Wobjc-method-access
7424 --------------------
7425 This diagnostic is enabled by default.
7427 **Diagnostic text:**
7429 +---------------------------------------------------------------------------------------------------------------------------------------+
7430 |:warning:`warning:` |nbsp| :diagtext:`class method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id')`|
7431 +---------------------------------------------------------------------------------------------------------------------------------------+
7433 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7434 |: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:`?`|
7435 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7437 +------------------------------------------------------------------------------------------------------------------------------------------+
7438 |:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id')`|
7439 +------------------------------------------------------------------------------------------------------------------------------------------+
7441 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7442 |: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:`?`|
7443 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7445 +-------------------------------------------------------------------------------------------------------------------------------------------------------+
7446 |:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found instead of class method` |nbsp| :placeholder:`B`|
7447 +-------------------------------------------------------------------------------------------------------------------------------------------------------+
7449 +---------------------------------------------------------------------------------------------------------------------------------------------------------+
7450 |:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is being used on 'Class' which is not in the root class`|
7451 +---------------------------------------------------------------------------------------------------------------------------------------------------------+
7454 -Wobjc-missing-property-synthesis
7455 ---------------------------------
7456 **Diagnostic text:**
7458 +------------------------------------------------------------------------------------------------------------------+
7459 |:warning:`warning:` |nbsp| :diagtext:`auto property synthesis is synthesizing property not explicitly synthesized`|
7460 +------------------------------------------------------------------------------------------------------------------+
7463 -Wobjc-missing-super-calls
7464 --------------------------
7465 This diagnostic is enabled by default.
7467 **Diagnostic text:**
7469 +-------------------------------------------------------------------------------------------------------------------+
7470 |:warning:`warning:` |nbsp| :diagtext:`method possibly missing a \[super` |nbsp| :placeholder:`A`:diagtext:`\] call`|
7471 +-------------------------------------------------------------------------------------------------------------------+
7474 -Wobjc-multiple-method-names
7475 ----------------------------
7476 This diagnostic is enabled by default.
7478 **Diagnostic text:**
7480 +--------------------------------------------------------------------------------------------------------------+
7481 |:warning:`warning:` |nbsp| :diagtext:`multiple methods named` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found`|
7482 +--------------------------------------------------------------------------------------------------------------+
7485 -Wobjc-noncopy-retain-block-property
7486 ------------------------------------
7487 This diagnostic is enabled by default.
7489 **Diagnostic text:**
7491 +--------------------------------------------------------------------------------------------------------------------+
7492 |:warning:`warning:` |nbsp| :diagtext:`retain'ed block property does not copy the block - use copy attribute instead`|
7493 +--------------------------------------------------------------------------------------------------------------------+
7496 -Wobjc-nonunified-exceptions
7497 ----------------------------
7498 This diagnostic is enabled by default.
7500 **Diagnostic text:**
7502 +-----------------------------------------------------------------------------------------------------------------------------+
7503 |:warning:`warning:` |nbsp| :diagtext:`cannot catch an exception thrown with @throw in C++ in the non-unified exception model`|
7504 +-----------------------------------------------------------------------------------------------------------------------------+
7507 -Wobjc-property-implementation
7508 ------------------------------
7509 This diagnostic is enabled by default.
7511 **Diagnostic text:**
7513 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7514 |: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`|
7515 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7517 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7518 |: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`|
7519 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7521 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7522 |: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`|
7523 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7525 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7526 |: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`|
7527 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7530 -Wobjc-property-implicit-mismatch
7531 ---------------------------------
7532 This diagnostic is enabled by default.
7534 **Diagnostic text:**
7536 +---------------------------------------------------------------------------------------------------------------------------------------+
7537 |:warning:`warning:` |nbsp| :diagtext:`primary property declaration is implicitly strong while redeclaration in class extension is weak`|
7538 +---------------------------------------------------------------------------------------------------------------------------------------+
7541 -Wobjc-property-matches-cocoa-ownership-rule
7542 --------------------------------------------
7543 This diagnostic is enabled by default.
7545 **Diagnostic text:**
7547 +-------------------------------------------------------------------------------------------------------------+
7548 |:warning:`warning:` |nbsp| :diagtext:`property follows Cocoa naming convention for returning 'owned' objects`|
7549 +-------------------------------------------------------------------------------------------------------------+
7552 -Wobjc-property-no-attribute
7553 ----------------------------
7554 This diagnostic is enabled by default.
7556 **Diagnostic text:**
7558 +-----------------------------------------------------------------------------------------------------+
7559 |:warning:`warning:` |nbsp| :diagtext:`default property attribute 'assign' not appropriate for object`|
7560 +-----------------------------------------------------------------------------------------------------+
7562 +--------------------------------------------------------------------------------------------------------------------+
7563 |:warning:`warning:` |nbsp| :diagtext:`no 'assign', 'retain', or 'copy' attribute is specified - 'assign' is assumed`|
7564 +--------------------------------------------------------------------------------------------------------------------+
7567 -Wobjc-property-synthesis
7568 -------------------------
7569 This diagnostic is enabled by default.
7571 **Diagnostic text:**
7573 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7574 |: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`|
7575 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7577 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7578 |: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`|
7579 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7581 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7582 |: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`|
7583 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7586 -Wobjc-protocol-method-implementation
7587 -------------------------------------
7588 This diagnostic is enabled by default.
7590 **Diagnostic text:**
7592 +----------------------------------------------------------------------------------------------------------------------------+
7593 |:warning:`warning:` |nbsp| :diagtext:`category is implementing a method which will also be implemented by its primary class`|
7594 +----------------------------------------------------------------------------------------------------------------------------+
7597 -Wobjc-protocol-property-synthesis
7598 ----------------------------------
7599 This diagnostic is enabled by default.
7601 **Diagnostic text:**
7603 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7604 |:warning:`warning:` |nbsp| :diagtext:`auto property synthesis will not synthesize property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared in protocol` |nbsp| :placeholder:`B`|
7605 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7608 -Wobjc-protocol-qualifiers
7609 --------------------------
7610 This diagnostic is enabled by default.
7612 **Diagnostic text:**
7614 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7615 |:warning:`warning:` |nbsp| :diagtext:`parameterized class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`already conforms to the protocols listed; did you forget a '\*'?`|
7616 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7619 -Wobjc-readonly-with-setter-property
7620 ------------------------------------
7621 This diagnostic is enabled by default.
7623 **Diagnostic text:**
7625 +-----------------------------------------------------------------------------------------+
7626 |:warning:`warning:` |nbsp| :diagtext:`setter cannot be specified for a readonly property`|
7627 +-----------------------------------------------------------------------------------------+
7630 -Wobjc-redundant-api-use
7631 ------------------------
7632 Synonym for `-Wobjc-redundant-literal-use`_.
7635 -Wobjc-redundant-literal-use
7636 ----------------------------
7637 This diagnostic is enabled by default.
7639 **Diagnostic text:**
7641 +-------------------------------------------------------------------------------------------------------------------+
7642 |:warning:`warning:` |nbsp| :diagtext:`using` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with a literal is redundant`|
7643 +-------------------------------------------------------------------------------------------------------------------+
7646 -Wobjc-root-class
7647 -----------------
7648 This diagnostic is enabled by default.
7650 **Diagnostic text:**
7652 +-------------------------------------------------------------------------------------------------------------------------------+
7653 |:warning:`warning:` |nbsp| :diagtext:`class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`defined without specifying a base class`|
7654 +-------------------------------------------------------------------------------------------------------------------------------+
7657 -Wobjc-string-compare
7658 ---------------------
7659 This diagnostic is enabled by default.
7661 **Diagnostic text:**
7663 +---------------------------------------------------------------------------------------------------+
7664 |:warning:`warning:` |nbsp| :diagtext:`direct comparison of a string literal has undefined behavior`|
7665 +---------------------------------------------------------------------------------------------------+
7668 -Wobjc-string-concatenation
7669 ---------------------------
7670 This diagnostic is enabled by default.
7672 **Diagnostic text:**
7674 +-------------------------------------------------------------------------------------------------------------------------+
7675 |:warning:`warning:` |nbsp| :diagtext:`concatenated NSString literal for an NSArray expression - possibly missing a comma`|
7676 +-------------------------------------------------------------------------------------------------------------------------+
7679 -Wobjc-unsafe-perform-selector
7680 ------------------------------
7681 This diagnostic is enabled by default.
7683 **Diagnostic text:**
7685 +-------------------------------------------------------------------------------------------------------------------+--------------------+------------------------+
7686 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with selectors that return a` |nbsp| |+------------------+| |nbsp| :diagtext:`type`|
7687 |                                                                                                                   ||:diagtext:`struct`||                        |
7688 |                                                                                                                   |+------------------+|                        |
7689 |                                                                                                                   ||:diagtext:`union` ||                        |
7690 |                                                                                                                   |+------------------+|                        |
7691 |                                                                                                                   ||:diagtext:`vector`||                        |
7692 |                                                                                                                   |+------------------+|                        |
7693 +-------------------------------------------------------------------------------------------------------------------+--------------------+------------------------+
7696 -Wodr
7697 -----
7698 This diagnostic is enabled by default.
7700 **Diagnostic text:**
7702 +--------------------------------------------------------------------------------------------------------------------------------------------------+
7703 |:warning:`warning:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has incompatible definitions in different translation units`|
7704 +--------------------------------------------------------------------------------------------------------------------------------------------------+
7707 -Wold-style-cast
7708 ----------------
7709 **Diagnostic text:**
7711 +------------------------------------------------------------+
7712 |:warning:`warning:` |nbsp| :diagtext:`use of old-style cast`|
7713 +------------------------------------------------------------+
7716 -Wold-style-definition
7717 ----------------------
7718 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
7720 -Wopencl-unsupported-rgba
7721 -------------------------
7722 This diagnostic is enabled by default.
7724 **Diagnostic text:**
7726 +----------------------------------------------------------------------------------------------------------------------------+
7727 |:warning:`warning:` |nbsp| :diagtext:`vector component name '`:placeholder:`A`:diagtext:`' is an OpenCL version 2.2 feature`|
7728 +----------------------------------------------------------------------------------------------------------------------------+
7731 -Wopenmp-clauses
7732 ----------------
7733 This diagnostic is enabled by default.
7735 **Diagnostic text:**
7737 +-------------------------------------------------------------------------------------------------------------------------+
7738 |:warning:`warning:` |nbsp| :diagtext:`aligned clause will be ignored because the requested alignment is not a power of 2`|
7739 +-------------------------------------------------------------------------------------------------------------------------+
7741 +---------------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------+
7742 |:warning:`warning:` |nbsp| :diagtext:`zero linear step (`:placeholder:`A` |nbsp| |+-------------------------------------------------+|:diagtext:`should probably be const)`|
7743 |                                                                                 ||                                                 ||                                     |
7744 |                                                                                 |+-------------------------------------------------+|                                     |
7745 |                                                                                 ||:diagtext:`and other variables in clause` |nbsp| ||                                     |
7746 |                                                                                 |+-------------------------------------------------+|                                     |
7747 +---------------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------+
7750 -Wopenmp-loop-form
7751 ------------------
7752 This diagnostic is enabled by default.
7754 **Diagnostic text:**
7756 +-----------------------------------------------------------------------------------------------------------------------------------------+
7757 |:warning:`warning:` |nbsp| :diagtext:`initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')`|
7758 +-----------------------------------------------------------------------------------------------------------------------------------------+
7760 +-----------------------------------------------------------------------------------------------------------------------------+
7761 |:warning:`warning:` |nbsp| :diagtext:`OpenMP loop iteration variable cannot have more than 64 bits size and will be narrowed`|
7762 +-----------------------------------------------------------------------------------------------------------------------------+
7765 -Wopenmp-target
7766 ---------------
7767 This diagnostic is enabled by default.
7769 **Diagnostic text:**
7771 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7772 |:warning:`warning:` |nbsp| :diagtext:`The OpenMP offloading target '`:placeholder:`A`:diagtext:`' is similar to target '`:placeholder:`B`:diagtext:`' already specified - will be ignored.`|
7773 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7775 +-----------------------------------------------------------------------------------------------+
7776 |:warning:`warning:` |nbsp| :diagtext:`declaration is not declared in any declare target region`|
7777 +-----------------------------------------------------------------------------------------------+
7780 -Woption-ignored
7781 ----------------
7782 This diagnostic is enabled by default.
7784 **Diagnostic text:**
7786 +------------------------------------------------------------------------------------------------------------------------------------------+
7787 |:warning:`warning:` |nbsp| :diagtext:`option '-ffine-grained-bitfield-accesses' cannot be enabled together with a sanitizer; flag ignored`|
7788 +------------------------------------------------------------------------------------------------------------------------------------------+
7790 +----------------------------------------------------------------------------------------------------------------------------+
7791 |:warning:`warning:` |nbsp| :diagtext:`option '`:placeholder:`A`:diagtext:`' was ignored by the PS4 toolchain, using '-fPIC'`|
7792 +----------------------------------------------------------------------------------------------------------------------------+
7794 +-------------------------------------------------------------------------------------------------------------------------------------------+
7795 |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mabicalls' option as it cannot be used with non position-independent code and the N64 ABI`|
7796 +-------------------------------------------------------------------------------------------------------------------------------------------+
7798 +-------------------------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+
7799 |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mlong-calls' option as it is not currently supported with` |nbsp| |+-----------------------------------------+|:diagtext:`-mabicalls`|
7800 |                                                                                                                   ||                                         ||                      |
7801 |                                                                                                                   |+-----------------------------------------+|                      |
7802 |                                                                                                                   ||:diagtext:`the implicit usage of` |nbsp| ||                      |
7803 |                                                                                                                   |+-----------------------------------------+|                      |
7804 +-------------------------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+
7807 -Wout-of-line-declaration
7808 -------------------------
7809 This diagnostic is an error by default, but the flag ``-Wno-out-of-line-declaration`` can be used to disable the error.
7811 **Diagnostic text:**
7813 +-------------------------------------------------------------------------------------------+
7814 |:error:`error:` |nbsp| :diagtext:`out-of-line declaration of a member must be a definition`|
7815 +-------------------------------------------------------------------------------------------+
7818 -Wout-of-scope-function
7819 -----------------------
7820 This diagnostic is enabled by default.
7822 **Diagnostic text:**
7824 +-------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------+
7825 |:warning:`warning:` |nbsp| :diagtext:`use of out-of-scope declaration of` |nbsp| :placeholder:`A`|+-------------------------------------------------------------------------------------+|
7826 |                                                                                                 ||                                                                                     ||
7827 |                                                                                                 |+-------------------------------------------------------------------------------------+|
7828 |                                                                                                 || |nbsp| :diagtext:`whose type is not compatible with that of an implicit declaration`||
7829 |                                                                                                 |+-------------------------------------------------------------------------------------+|
7830 +-------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------+
7833 -Wover-aligned
7834 --------------
7835 **Diagnostic text:**
7837 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7838 |: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`|
7839 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7842 -Woverflow
7843 ----------
7844 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
7846 -Woverlength-strings
7847 --------------------
7848 **Diagnostic text:**
7850 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------+
7851 |: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`|
7852 |                                                                                                                                                                                         ||:diagtext:`C90`    ||                                                     |
7853 |                                                                                                                                                                                         |+-------------------+|                                                     |
7854 |                                                                                                                                                                                         ||:diagtext:`ISO C99`||                                                     |
7855 |                                                                                                                                                                                         |+-------------------+|                                                     |
7856 |                                                                                                                                                                                         ||:diagtext:`C++`    ||                                                     |
7857 |                                                                                                                                                                                         |+-------------------+|                                                     |
7858 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------+
7861 -Woverloaded-shift-op-parentheses
7862 ---------------------------------
7863 This diagnostic is enabled by default.
7865 **Diagnostic text:**
7867 +------------------------------------------------------------------+----------------+------------------------------------------------------------------+
7868 |:warning:`warning:` |nbsp| :diagtext:`overloaded operator` |nbsp| |+--------------+| |nbsp| :diagtext:`has higher precedence than comparison operator`|
7869 |                                                                  ||:diagtext:`>>`||                                                                  |
7870 |                                                                  |+--------------+|                                                                  |
7871 |                                                                  ||:diagtext:`<<`||                                                                  |
7872 |                                                                  |+--------------+|                                                                  |
7873 +------------------------------------------------------------------+----------------+------------------------------------------------------------------+
7876 -Woverloaded-virtual
7877 --------------------
7878 **Diagnostic text:**
7880 +-----------------------------------------------------------------------------------------------+-----------------------+
7881 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`hides overloaded virtual` |nbsp| |+---------------------+|
7882 |                                                                                               ||:diagtext:`function` ||
7883 |                                                                                               |+---------------------+|
7884 |                                                                                               ||:diagtext:`functions`||
7885 |                                                                                               |+---------------------+|
7886 +-----------------------------------------------------------------------------------------------+-----------------------+
7888 -Woverride-init
7889 ---------------
7890 Synonym for `-Winitializer-overrides`_.
7893 -Woverride-module
7894 -----------------
7895 This diagnostic is enabled by default.
7897 **Diagnostic text:**
7899 +-------------------------------------------------------------------------------------------------------+
7900 |:warning:`warning:` |nbsp| :diagtext:`overriding the module target triple with` |nbsp| :placeholder:`A`|
7901 +-------------------------------------------------------------------------------------------------------+
7904 -Woverriding-method-mismatch
7905 ----------------------------
7906 **Diagnostic text:**
7908 +-------------------------------------------------------------------------------------------------------------------------------------------+
7909 |:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on parameter type in declaration of` |nbsp| :placeholder:`A`|
7910 +-------------------------------------------------------------------------------------------------------------------------------------------+
7912 +------------------------------------------------------------------------------------------------------------+
7913 |:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in declaration of` |nbsp| :placeholder:`A`|
7914 +------------------------------------------------------------------------------------------------------------+
7916 +----------------------------------------------------------------------------------------------------------------------------------------+
7917 |:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on return type in declaration of` |nbsp| :placeholder:`A`|
7918 +----------------------------------------------------------------------------------------------------------------------------------------+
7920 +--------------------------------------------------------------------------------------------------------+
7921 |:warning:`warning:` |nbsp| :diagtext:`conflicting return type in declaration of` |nbsp| :placeholder:`A`|
7922 +--------------------------------------------------------------------------------------------------------+
7924 +--------------------------------------------------------------------------------------------------------+
7925 |:warning:`warning:` |nbsp| :diagtext:`conflicting variadic declaration of method and its implementation`|
7926 +--------------------------------------------------------------------------------------------------------+
7928 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7929 |:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in declaration of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
7930 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7932 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7933 |:warning:`warning:` |nbsp| :diagtext:`conflicting return type in declaration of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
7934 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7937 -Woverriding-t-option
7938 ---------------------
7939 This diagnostic is enabled by default.
7941 **Diagnostic text:**
7943 +---------------------------------------------------------------------------------------------------------------------------+
7944 |:warning:`warning:` |nbsp| :diagtext:`overriding '`:placeholder:`A`:diagtext:`' option with '`:placeholder:`B`:diagtext:`'`|
7945 +---------------------------------------------------------------------------------------------------------------------------+
7948 -Wpacked
7949 --------
7950 **Diagnostic text:**
7952 +--------------------------------------------------------------------------------------------------+
7953 |:warning:`warning:` |nbsp| :diagtext:`packed attribute is unnecessary for` |nbsp| :placeholder:`A`|
7954 +--------------------------------------------------------------------------------------------------+
7957 -Wpadded
7958 --------
7959 **Diagnostic text:**
7961 +------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+------------------------------------------------+
7962 |:warning:`warning:` |nbsp| :diagtext:`padding` |nbsp| |+---------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with` |nbsp| :placeholder:`C` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to align anonymous bit-field`|
7963 |                                                      ||:diagtext:`struct`   ||                                                                                ||:diagtext:`byte`|||             ||                                                |
7964 |                                                      |+---------------------+|                                                                                |+----------------+|+-------------+|                                                |
7965 |                                                      ||:diagtext:`interface`||                                                                                ||:diagtext:`bit` |||:diagtext:`s`||                                                |
7966 |                                                      |+---------------------+|                                                                                |+----------------+|+-------------+|                                                |
7967 |                                                      ||:diagtext:`class`    ||                                                                                |                  |               |                                                |
7968 |                                                      |+---------------------+|                                                                                |                  |               |                                                |
7969 +------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+------------------------------------------------+
7971 +------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+----------------------------------------------------+
7972 |:warning:`warning:` |nbsp| :diagtext:`padding` |nbsp| |+---------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with` |nbsp| :placeholder:`C` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to align` |nbsp| :placeholder:`E`|
7973 |                                                      ||:diagtext:`struct`   ||                                                                                ||:diagtext:`byte`|||             ||                                                    |
7974 |                                                      |+---------------------+|                                                                                |+----------------+|+-------------+|                                                    |
7975 |                                                      ||:diagtext:`interface`||                                                                                ||:diagtext:`bit` |||:diagtext:`s`||                                                    |
7976 |                                                      |+---------------------+|                                                                                |+----------------+|+-------------+|                                                    |
7977 |                                                      ||:diagtext:`class`    ||                                                                                |                  |               |                                                    |
7978 |                                                      |+---------------------+|                                                                                |                  |               |                                                    |
7979 +------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+----------------------------------------------------+
7981 +--------------------------------------------------------------------------------------------------------------------------------------+------------------+---------------+-----------------------------------------+
7982 |:warning:`warning:` |nbsp| :diagtext:`padding size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with` |nbsp| :placeholder:`B` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to alignment boundary`|
7983 |                                                                                                                                      ||:diagtext:`byte`|||             ||                                         |
7984 |                                                                                                                                      |+----------------+|+-------------+|                                         |
7985 |                                                                                                                                      ||:diagtext:`bit` |||:diagtext:`s`||                                         |
7986 |                                                                                                                                      |+----------------+|+-------------+|                                         |
7987 +--------------------------------------------------------------------------------------------------------------------------------------+------------------+---------------+-----------------------------------------+
7990 -Wparentheses
7991 -------------
7992 This diagnostic is enabled by default.
7994 Also controls `-Wbitwise-op-parentheses`_, `-Wdangling-else`_, `-Wlogical-not-parentheses`_, `-Wlogical-op-parentheses`_, `-Woverloaded-shift-op-parentheses`_, `-Wparentheses-equality`_, `-Wshift-op-parentheses`_.
7996 **Diagnostic text:**
7998 +-----------------------------------------------------------------------------------------------------------+
7999 |:warning:`warning:` |nbsp| :diagtext:`using the result of an assignment as a condition without parentheses`|
8000 +-----------------------------------------------------------------------------------------------------------+
8002 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8003 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has lower precedence than` |nbsp| :placeholder:`B`:diagtext:`;` |nbsp| :placeholder:`B` |nbsp| :diagtext:`will be evaluated first`|
8004 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8006 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8007 |:warning:`warning:` |nbsp| :diagtext:`operator '?:' has lower precedence than '`:placeholder:`A`:diagtext:`'; '`:placeholder:`A`:diagtext:`' will be evaluated first`|
8008 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8011 -Wparentheses-equality
8012 ----------------------
8013 This diagnostic is enabled by default.
8015 **Diagnostic text:**
8017 +--------------------------------------------------------------------------------------+
8018 |:warning:`warning:` |nbsp| :diagtext:`equality comparison with extraneous parentheses`|
8019 +--------------------------------------------------------------------------------------+
8022 -Wpartial-availability
8023 ----------------------
8024 Synonym for `-Wunguarded-availability`_.
8027 -Rpass
8028 ------
8029 **Diagnostic text:**
8031 The text of this diagnostic is not controlled by Clang.
8034 -Rpass-analysis
8035 ---------------
8036 **Diagnostic text:**
8038 The text of this diagnostic is not controlled by Clang.
8040 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8041 |: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!`|
8042 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8044 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8045 |: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'.`|
8046 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8049 -Wpass-failed
8050 -------------
8051 This diagnostic is enabled by default.
8053 **Diagnostic text:**
8055 The text of this diagnostic is not controlled by Clang.
8058 -Rpass-missed
8059 -------------
8060 **Diagnostic text:**
8062 The text of this diagnostic is not controlled by Clang.
8065 -Wpch-date-time
8066 ---------------
8067 This diagnostic is enabled by default.
8069 **Diagnostic text:**
8071 +---------------------------+--------------------------------+-----------------------------------------------------+
8072 |:warning:`warning:` |nbsp| |+------------------------------+| |nbsp| :diagtext:`uses \_\_DATE\_\_ or \_\_TIME\_\_`|
8073 |                           ||:diagtext:`precompiled header`||                                                     |
8074 |                           |+------------------------------+|                                                     |
8075 |                           ||:diagtext:`module`            ||                                                     |
8076 |                           |+------------------------------+|                                                     |
8077 +---------------------------+--------------------------------+-----------------------------------------------------+
8080 -Wpedantic
8081 ----------
8082 Also controls `-Wc++11-extra-semi`_, `-Wc++11-long-long`_, `-Wc++14-binary-literal`_, `-Wc11-extensions`_, `-Wcomplex-component-init`_, `-Wdeclaration-after-statement`_, `-Wdollar-in-identifier-extension`_, `-Wembedded-directive`_, `-Wempty-translation-unit`_, `-Wextended-offsetof`_, `-Wflexible-array-extensions`_, `-Wformat-pedantic`_, `-Wfour-char-constants`_, `-Wgnu-anonymous-struct`_, `-Wgnu-auto-type`_, `-Wgnu-binary-literal`_, `-Wgnu-case-range`_, `-Wgnu-complex-integer`_, `-Wgnu-compound-literal-initializer`_, `-Wgnu-conditional-omitted-operand`_, `-Wgnu-empty-initializer`_, `-Wgnu-empty-struct`_, `-Wgnu-flexible-array-initializer`_, `-Wgnu-flexible-array-union-member`_, `-Wgnu-folding-constant`_, `-Wgnu-imaginary-constant`_, `-Wgnu-include-next`_, `-Wgnu-label-as-value`_, `-Wgnu-redeclared-enum`_, `-Wgnu-statement-expression`_, `-Wgnu-union-cast`_, `-Wgnu-zero-line-directive`_, `-Wgnu-zero-variadic-macro-arguments`_, `-Wimport-preprocessor-directive-pedantic`_, `-Wkeyword-macro`_, `-Wlanguage-extension-token`_, `-Wlong-long`_, `-Wmicrosoft-charize`_, `-Wmicrosoft-comment-paste`_, `-Wmicrosoft-cpp-macro`_, `-Wmicrosoft-end-of-file`_, `-Wmicrosoft-enum-value`_, `-Wmicrosoft-fixed-enum`_, `-Wmicrosoft-flexible-array`_, `-Wmicrosoft-redeclare-static`_, `-Wnested-anon-types`_, `-Wnullability-extension`_, `-Woverlength-strings`_, `-Wretained-language-linkage`_, `-Wundefined-internal-type`_, `-Wvla-extension`_, `-Wzero-length-array`_.
8084 **Diagnostic text:**
8086 +------------------------------------------------------------------------+
8087 |:warning:`warning:` |nbsp| :diagtext:`'enable\_if' is a clang extension`|
8088 +------------------------------------------------------------------------+
8090 +--------------------------------------------------------------------------+
8091 |:warning:`warning:` |nbsp| :diagtext:`'diagnose\_if' is a clang extension`|
8092 +--------------------------------------------------------------------------+
8094 +--------------------------------------------------------------------------------+
8095 |:warning:`warning:` |nbsp| :diagtext:`designated initializers are a C99 feature`|
8096 +--------------------------------------------------------------------------------+
8098 +--------------------------------------------------------------------------------------------+
8099 |:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow 'main' to be used by a program`|
8100 +--------------------------------------------------------------------------------------------+
8102 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+
8103 |: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| |+---------------------+|
8104 |                                                                                                                                                                                              ||:diagtext:`private`  ||
8105 |                                                                                                                                                                                              |+---------------------+|
8106 |                                                                                                                                                                                              ||:diagtext:`protected`||
8107 |                                                                                                                                                                                              |+---------------------+|
8108 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+
8110 +--------------------------------------------------------+--------------------+------------------------------------------------------------+
8111 |:warning:`warning:` |nbsp| :diagtext:`anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`cannot be '`:placeholder:`B`:diagtext:`'`|
8112 |                                                        ||:diagtext:`struct`||                                                            |
8113 |                                                        |+------------------+|                                                            |
8114 |                                                        ||:diagtext:`union` ||                                                            |
8115 |                                                        |+------------------+|                                                            |
8116 +--------------------------------------------------------+--------------------+------------------------------------------------------------+
8118 +--------------------------------------------------------------------+-----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
8119 |: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`|
8120 |                                                                    ||:diagtext:`copying variable`           ||                                                                                                                                          |
8121 |                                                                    |+---------------------------------------+|                                                                                                                                          |
8122 |                                                                    ||:diagtext:`copying parameter`          ||                                                                                                                                          |
8123 |                                                                    |+---------------------------------------+|                                                                                                                                          |
8124 |                                                                    ||:diagtext:`returning object`           ||                                                                                                                                          |
8125 |                                                                    |+---------------------------------------+|                                                                                                                                          |
8126 |                                                                    ||:diagtext:`throwing object`            ||                                                                                                                                          |
8127 |                                                                    |+---------------------------------------+|                                                                                                                                          |
8128 |                                                                    ||:diagtext:`copying member subobject`   ||                                                                                                                                          |
8129 |                                                                    |+---------------------------------------+|                                                                                                                                          |
8130 |                                                                    ||:diagtext:`copying array element`      ||                                                                                                                                          |
8131 |                                                                    |+---------------------------------------+|                                                                                                                                          |
8132 |                                                                    ||:diagtext:`allocating object`          ||                                                                                                                                          |
8133 |                                                                    |+---------------------------------------+|                                                                                                                                          |
8134 |                                                                    ||:diagtext:`copying temporary`          ||                                                                                                                                          |
8135 |                                                                    |+---------------------------------------+|                                                                                                                                          |
8136 |                                                                    ||:diagtext:`initializing base subobject`||                                                                                                                                          |
8137 |                                                                    |+---------------------------------------+|                                                                                                                                          |
8138 |                                                                    ||:diagtext:`initializing vector element`||                                                                                                                                          |
8139 |                                                                    |+---------------------------------------+|                                                                                                                                          |
8140 |                                                                    ||:diagtext:`capturing value`            ||                                                                                                                                          |
8141 |                                                                    |+---------------------------------------+|                                                                                                                                          |
8142 +--------------------------------------------------------------------+-----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
8144 +--------------------------------------------------------------------------------------------------------------------------------------+
8145 |:warning:`warning:` |nbsp| :diagtext:`parameter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`was not declared, defaulting to type 'int'`|
8146 +--------------------------------------------------------------------------------------------------------------------------------------+
8148 +--------------------------------------------------------------------------------------------------------------------------+
8149 |:warning:`warning:` |nbsp| :diagtext:`invoking a pointer to a 'const &' member function on an rvalue is a C++2a extension`|
8150 +--------------------------------------------------------------------------------------------------------------------------+
8152 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8153 |:warning:`warning:` |nbsp| :diagtext:`qualifier in explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires a template-id (a typedef is not permitted)`|
8154 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8156 +-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
8157 |:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`|
8158 |                                                     ||:diagtext:`function`||                                                                                               |
8159 |                                                     |+--------------------+|                                                                                               |
8160 |                                                     ||:diagtext:`variable`||                                                                                               |
8161 |                                                     |+--------------------+|                                                                                               |
8162 +-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
8164 +---------------------------------------------------------------------------------------+
8165 |:warning:`warning:` |nbsp| :diagtext:`ISO C forbids forward references to 'enum' types`|
8166 +---------------------------------------------------------------------------------------+
8168 +----------------------------------------------------------------------------------------------------------------------------------------------+-------------------+-------------+
8169 |:warning:`warning:` |nbsp| :diagtext:`ISO C restricts enumerator values to range of 'int' (`:placeholder:`A` |nbsp| :diagtext:`is too` |nbsp| |+-----------------+|:diagtext:`)`|
8170 |                                                                                                                                              ||:diagtext:`small`||             |
8171 |                                                                                                                                              |+-----------------+|             |
8172 |                                                                                                                                              ||:diagtext:`large`||             |
8173 |                                                                                                                                              |+-----------------+|             |
8174 +----------------------------------------------------------------------------------------------------------------------------------------------+-------------------+-------------+
8176 +--------------------------------------------------------------------------------------------------+
8177 |:warning:`warning:` |nbsp| :diagtext:`size of static array must be an integer constant expression`|
8178 +--------------------------------------------------------------------------------------------------+
8180 +-----------------------------------------------------------------------------------------------+
8181 |:warning:`warning:` |nbsp| :diagtext:`initializer for aggregate is not a compile-time constant`|
8182 +-----------------------------------------------------------------------------------------------+
8184 +-------------------------------------------------------------------------------+
8185 |:warning:`warning:` |nbsp| :diagtext:`flexible array members are a C99 feature`|
8186 +-------------------------------------------------------------------------------+
8188 +---------------------------------------------------------------+-----------------------+--------------------------------+
8189 |:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------+|:diagtext:`' to a function type`|
8190 |                                                               ||:diagtext:`sizeof`   ||                                |
8191 |                                                               |+---------------------+|                                |
8192 |                                                               ||:diagtext:`alignof`  ||                                |
8193 |                                                               |+---------------------+|                                |
8194 |                                                               ||:diagtext:`vec\_step`||                                |
8195 |                                                               |+---------------------+|                                |
8196 +---------------------------------------------------------------+-----------------------+--------------------------------+
8198 +---------------------------------------------------------------+-----------------------+----------------------------+
8199 |:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------+|:diagtext:`' to a void type`|
8200 |                                                               ||:diagtext:`sizeof`   ||                            |
8201 |                                                               |+---------------------+|                            |
8202 |                                                               ||:diagtext:`alignof`  ||                            |
8203 |                                                               |+---------------------+|                            |
8204 |                                                               ||:diagtext:`vec\_step`||                            |
8205 |                                                               |+---------------------+|                            |
8206 +---------------------------------------------------------------+-----------------------+----------------------------+
8208 +-------------------------------------------------------------------------------------------+
8209 |:warning:`warning:` |nbsp| :diagtext:`ISO C90 does not allow subscripting non-lvalue array`|
8210 +-------------------------------------------------------------------------------------------+
8212 +----------------------------------------------------------------------------------------+
8213 |:warning:`warning:` |nbsp| :diagtext:`subscript of a pointer to void is a GNU extension`|
8214 +----------------------------------------------------------------------------------------+
8216 +-------------------------------------------------------------------------------------------------------+
8217 |:warning:`warning:` |nbsp| :diagtext:`ISO C forbids taking the address of an expression of type 'void'`|
8218 +-------------------------------------------------------------------------------------------------------+
8220 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8221 |:warning:`warning:` |nbsp| :diagtext:`ordered comparison between pointer and zero (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`) is an extension`|
8222 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8224 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8225 |:warning:`warning:` |nbsp| :diagtext:`equality comparison between function pointer and void pointer (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`|
8226 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8228 +----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+
8229 |:warning:`warning:` |nbsp| :diagtext:`arithmetic on`|+---------------------+| |nbsp| :diagtext:`pointer`|+-------------+| |nbsp| :diagtext:`to void is a GNU extension`|
8230 |                                                    || |nbsp| :diagtext:`a`||                           ||             ||                                              |
8231 |                                                    |+---------------------+|                           |+-------------+|                                              |
8232 |                                                    ||                     ||                           ||:diagtext:`s`||                                              |
8233 |                                                    |+---------------------+|                           |+-------------+|                                              |
8234 +----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+
8236 +----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+
8237 |: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`|
8238 |                                                    || |nbsp| :diagtext:`a`||                           ||             ||                      || |nbsp| :diagtext:`the`||                                 ||             ||                        ||                                                 ||                                      |
8239 |                                                    |+---------------------+|                           |+-------------+|                      |+-----------------------+|                                 |+-------------+|                        |+-------------------------------------------------+|                                      |
8240 |                                                    ||                     ||                           ||:diagtext:`s`||                      ||                       ||                                 ||:diagtext:`s`||                        ||+-----------------------------------------------+||                                      |
8241 |                                                    |+---------------------+|                           |+-------------+|                      |+-----------------------+|                                 |+-------------+|                        ||| |nbsp| :diagtext:`and` |nbsp| :placeholder:`D`|||                                      |
8242 |                                                    |                       |                           |               |                      |                         |                                 |               |                        ||+-----------------------------------------------+||                                      |
8243 |                                                    |                       |                           |               |                      |                         |                                 |               |                        |+-------------------------------------------------+|                                      |
8244 +----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+
8246 +-----------------------------------------------------------------------------------------------------------------------+
8247 |:warning:`warning:` |nbsp| :diagtext:`ISO C does not support '++'/'--' on complex integer type` |nbsp| :placeholder:`A`|
8248 +-----------------------------------------------------------------------------------------------------------------------+
8250 +--------------------------------------------------------------------------------------------------------------------+
8251 |:warning:`warning:` |nbsp| :diagtext:`ISO C does not support '~' for complex conjugation of` |nbsp| :placeholder:`A`|
8252 +--------------------------------------------------------------------------------------------------------------------+
8254 +------------------------------------------------------------------------------------------------------------+
8255 |:warning:`warning:` |nbsp| :diagtext:`complex numbers are an extension in a freestanding C99 implementation`|
8256 +------------------------------------------------------------------------------------------------------------+
8258 +-------------------------------------------------------------------------------------------------------------+
8259 |:warning:`warning:` |nbsp| :diagtext:`cast between pointer-to-function and pointer-to-object is an extension`|
8260 +-------------------------------------------------------------------------------------------------------------+
8262 +---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+
8263 |: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`|
8264 |                                                                                                                                                   ||:diagtext:`integral`   ||                                                                                        |
8265 |                                                                                                                                                   |+-----------------------+|                                                                                        |
8266 |                                                                                                                                                   ||:diagtext:`enumeration`||                                                                                        |
8267 |                                                                                                                                                   |+-----------------------+|                                                                                        |
8268 +---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+
8270 +---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+
8271 |:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`converts between void pointer and function pointer`|
8272 |                           ||:diagtext:`assigning to different types`                      ||                                                                      |
8273 |                           |+--------------------------------------------------------------+|                                                                      |
8274 |                           ||:diagtext:`passing to parameter of different type`            ||                                                                      |
8275 |                           |+--------------------------------------------------------------+|                                                                      |
8276 |                           ||:diagtext:`returning from function with different return type`||                                                                      |
8277 |                           |+--------------------------------------------------------------+|                                                                      |
8278 |                           ||:diagtext:`converting between types`                          ||                                                                      |
8279 |                           |+--------------------------------------------------------------+|                                                                      |
8280 |                           ||:diagtext:`initializing with expression of different type`    ||                                                                      |
8281 |                           |+--------------------------------------------------------------+|                                                                      |
8282 |                           ||:diagtext:`sending to parameter of different type`            ||                                                                      |
8283 |                           |+--------------------------------------------------------------+|                                                                      |
8284 |                           ||:diagtext:`casting between types`                             ||                                                                      |
8285 |                           |+--------------------------------------------------------------+|                                                                      |
8286 +---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+
8288 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
8289 |:warning:`warning:` |nbsp| :diagtext:`kernel function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a member function; this may not be accepted by nvcc`|
8290 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
8292 +--------------------------------------------------------------------------------------------------+
8293 |:warning:`warning:` |nbsp| :diagtext:`C99 forbids conditional expressions with only one void side`|
8294 +--------------------------------------------------------------------------------------------------+
8296 +-------------------------------------------------------------------------------------------------------------------------------------+
8297 |:warning:`warning:` |nbsp| :diagtext:`C99 forbids casting nonscalar type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to the same type`|
8298 +-------------------------------------------------------------------------------------------------------------------------------------+
8300 +---------------------------------------------------------------------------------------------------------------------------+
8301 |:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++14 extension`|
8302 +---------------------------------------------------------------------------------------------------------------------------+
8304 +---------------------------------------------------------------------------------------------------------------------------+
8305 |:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++17 extension`|
8306 +---------------------------------------------------------------------------------------------------------------------------+
8308 +-----------------------------------------------------------------------------+--------------------+---------------------------------------------+
8309 |:warning:`warning:` |nbsp| :diagtext:`types declared in an anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`are a Microsoft extension`|
8310 |                                                                             ||:diagtext:`struct`||                                             |
8311 |                                                                             |+------------------+|                                             |
8312 |                                                                             ||:diagtext:`union` ||                                             |
8313 |                                                                             |+------------------+|                                             |
8314 +-----------------------------------------------------------------------------+--------------------+---------------------------------------------+
8316 +---------------------------------------------------+----------------------+-----------------------------------------------------------------------------+
8317 |:warning:`warning:` |nbsp| :diagtext:`void` |nbsp| |+--------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return void expression`|
8318 |                                                   ||:diagtext:`function`||                                                                             |
8319 |                                                   |+--------------------+|                                                                             |
8320 |                                                   ||:diagtext:`method`  ||                                                                             |
8321 |                                                   |+--------------------+|                                                                             |
8322 |                                                   ||:diagtext:`block`   ||                                                                             |
8323 |                                                   |+--------------------+|                                                                             |
8324 +---------------------------------------------------+----------------------+-----------------------------------------------------------------------------+
8326 +--------------------------------------------------------------------------------------------------+
8327 |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' cannot be signed or unsigned`|
8328 +--------------------------------------------------------------------------------------------------+
8330 +---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+
8331 |:warning:`warning:` |nbsp| |+--------------------------------+|:diagtext:`array size` |nbsp| |+---------------------+|:diagtext:`is a C99 feature`|
8332 |                           ||:diagtext:`qualifier in` |nbsp| ||                              ||                     ||                            |
8333 |                           |+--------------------------------+|                              |+---------------------+|                            |
8334 |                           ||:diagtext:`static` |nbsp|       ||                              ||                     ||                            |
8335 |                           |+--------------------------------+|                              |+---------------------+|                            |
8336 |                           ||                                ||                              ||:diagtext:`'\[\*\] '`||                            |
8337 |                           |+--------------------------------+|                              |+---------------------+|                            |
8338 +---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+
8340 +--------------------------------------------------------+------------------------------------------------+
8341 |:warning:`warning:` |nbsp| :diagtext:`extra ';'` |nbsp| |+----------------------------------------------+|
8342 |                                                        ||:diagtext:`outside of a function`             ||
8343 |                                                        |+----------------------------------------------+|
8344 |                                                        ||+--------------------------------------------+||
8345 |                                                        |||:diagtext:`inside a` |nbsp| :placeholder:`B`|||
8346 |                                                        ||+--------------------------------------------+||
8347 |                                                        |+----------------------------------------------+|
8348 |                                                        ||:diagtext:`inside instance variable list`     ||
8349 |                                                        |+----------------------------------------------+|
8350 |                                                        ||:diagtext:`after member function definition`  ||
8351 |                                                        |+----------------------------------------------+|
8352 +--------------------------------------------------------+------------------------------------------------+
8354 +-----------------------------------------------------------------------------------------+
8355 |:warning:`warning:` |nbsp| :diagtext:`'\_\_thread' before '`:placeholder:`A`:diagtext:`'`|
8356 +-----------------------------------------------------------------------------------------+
8358 +----------------------------------------------------------------------------------------+
8359 |:warning:`warning:` |nbsp| :diagtext:`type-less parameter names in function declaration`|
8360 +----------------------------------------------------------------------------------------+
8362 +-------------------------------------------------------------------------------------------------+
8363 |:warning:`warning:` |nbsp| :diagtext:`variable declaration in for loop is a C99-specific feature`|
8364 +-------------------------------------------------------------------------------------------------+
8366 +-----------------------------------------------------------------------------------+
8367 |:warning:`warning:` |nbsp| :diagtext:`compound literals are a C99-specific feature`|
8368 +-----------------------------------------------------------------------------------+
8370 +-------------------------------------------------------------------------------------------------------+
8371 |:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C99-specific feature`|
8372 +-------------------------------------------------------------------------------------------------------+
8374 +--------------------------------------------------------------------------------------------------+
8375 |:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C++11 extension`|
8376 +--------------------------------------------------------------------------------------------------+
8378 +-----------------------------------------------------------------------------------------------------------+
8379 |:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a C++11 extension`|
8380 +-----------------------------------------------------------------------------------------------------------+
8382 +-----------------------------------------------------------------------+
8383 |:warning:`warning:` |nbsp| :diagtext:`use of GNU array range extension`|
8384 +-----------------------------------------------------------------------+
8386 +------------------------------------------------------------------------------------------------+
8387 |:warning:`warning:` |nbsp| :diagtext:`exception specification of '...' is a Microsoft extension`|
8388 +------------------------------------------------------------------------------------------------+
8390 +------------------------------------------------------------+---------------------------+-----------------------------------------------------+
8391 |:warning:`warning:` |nbsp| :diagtext:`attributes on` |nbsp| |+-------------------------+| |nbsp| :diagtext:`declaration are a C++17 extension`|
8392 |                                                            ||:diagtext:`a namespace`  ||                                                     |
8393 |                                                            |+-------------------------+|                                                     |
8394 |                                                            ||:diagtext:`an enumerator`||                                                     |
8395 |                                                            |+-------------------------+|                                                     |
8396 +------------------------------------------------------------+---------------------------+-----------------------------------------------------+
8398 +-----------------------------------------------------------------------------+
8399 |:warning:`warning:` |nbsp| :diagtext:`extern templates are a C++11 extension`|
8400 +-----------------------------------------------------------------------------+
8402 +------------------------------------------------------------+
8403 |:warning:`warning:` |nbsp| :diagtext:`multi-line // comment`|
8404 +------------------------------------------------------------+
8406 +-----------------------------------------------------------------------------------+
8407 |:warning:`warning:` |nbsp| :diagtext:`// comments are not allowed in this language`|
8408 +-----------------------------------------------------------------------------------+
8410 +----------------------------------------------------------------+
8411 |:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`|
8412 +----------------------------------------------------------------+
8414 +------------------------------------------------------------------------------------------------------------+
8415 |:warning:`warning:` |nbsp| :diagtext:`use of non-standard escape character '\\`:placeholder:`A`:diagtext:`'`|
8416 +------------------------------------------------------------------------------------------------------------+
8418 +---------------------------------------------------------------------------------------+
8419 |:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating constants are a C99 feature`|
8420 +---------------------------------------------------------------------------------------+
8422 +----------------------------------------------------------------------------------------+
8423 |:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are a C++17 feature`|
8424 +----------------------------------------------------------------------------------------+
8426 +---------------------------------------------------------------------+
8427 |:warning:`warning:` |nbsp| :diagtext:`#ident is a language extension`|
8428 +---------------------------------------------------------------------+
8430 +-----------------------------------------------------------------------+
8431 |:warning:`warning:` |nbsp| :diagtext:`#warning is a language extension`|
8432 +-----------------------------------------------------------------------+
8434 +-----------------------------------------------------------------------+
8435 |:warning:`warning:` |nbsp| :diagtext:`comma operator in operand of #if`|
8436 +-----------------------------------------------------------------------+
8438 +----------------------------------------------------------------------------------------------------------------+
8439 |:warning:`warning:` |nbsp| :diagtext:`\_\_VA\_ARGS\_\_ can only appear in the expansion of a C99 variadic macro`|
8440 +----------------------------------------------------------------------------------------------------------------+
8442 +------------------------------------------------------------------------+
8443 |:warning:`warning:` |nbsp| :diagtext:`variadic macros are a C99 feature`|
8444 +------------------------------------------------------------------------+
8446 +--------------------------------------------------------------------------------+
8447 |:warning:`warning:` |nbsp| :diagtext:`named variadic macros are a GNU extension`|
8448 +--------------------------------------------------------------------------------+
8450 +------------------------------------------------------------------------------+
8451 |:warning:`warning:` |nbsp| :diagtext:`empty macro arguments are a C99 feature`|
8452 +------------------------------------------------------------------------------+
8454 +----------------------------------------------------------------------------------------------------------------------------------------+
8455 |:warning:`warning:` |nbsp| :diagtext:`C requires #line number to be less than` |nbsp| :placeholder:`A`:diagtext:`, allowed as extension`|
8456 +----------------------------------------------------------------------------------------------------------------------------------------+
8458 +-------------------------------------------------------------------------------------------------+
8459 |:warning:`warning:` |nbsp| :diagtext:`macro expansion producing 'defined' has undefined behavior`|
8460 +-------------------------------------------------------------------------------------------------+
8463 -Wpedantic-core-features
8464 ------------------------
8465 **Diagnostic text:**
8467 +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
8468 |:warning:`warning:` |nbsp| :diagtext:`OpenCL extension` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is core feature or supported optional core feature - ignoring`|
8469 +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
8472 -Wpessimizing-move
8473 ------------------
8474 **Diagnostic text:**
8476 +--------------------------------------------------------------------------------------+
8477 |:warning:`warning:` |nbsp| :diagtext:`moving a temporary object prevents copy elision`|
8478 +--------------------------------------------------------------------------------------+
8480 +--------------------------------------------------------------------------------------------------------+
8481 |:warning:`warning:` |nbsp| :diagtext:`moving a local object in a return statement prevents copy elision`|
8482 +--------------------------------------------------------------------------------------------------------+
8485 -Wpointer-arith
8486 ---------------
8487 Some of the diagnostics controlled by this flag are enabled by default.
8489 **Diagnostic text:**
8491 +----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+
8492 |: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`|
8493 |                                                    || |nbsp| :diagtext:`a`||                           ||             ||                      || |nbsp| :diagtext:`the`||                                 ||             ||                        ||                                                 ||                                      |
8494 |                                                    |+---------------------+|                           |+-------------+|                      |+-----------------------+|                                 |+-------------+|                        |+-------------------------------------------------+|                                      |
8495 |                                                    ||                     ||                           ||:diagtext:`s`||                      ||                       ||                                 ||:diagtext:`s`||                        ||+-----------------------------------------------+||                                      |
8496 |                                                    |+---------------------+|                           |+-------------+|                      |+-----------------------+|                                 |+-------------+|                        ||| |nbsp| :diagtext:`and` |nbsp| :placeholder:`D`|||                                      |
8497 |                                                    |                       |                           |               |                      |                         |                                 |               |                        ||+-----------------------------------------------+||                                      |
8498 |                                                    |                       |                           |               |                      |                         |                                 |               |                        |+-------------------------------------------------+|                                      |
8499 +----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+
8501 +----------------------------------------------------------------------------------------+
8502 |:warning:`warning:` |nbsp| :diagtext:`subscript of a pointer to void is a GNU extension`|
8503 +----------------------------------------------------------------------------------------+
8505 +----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+
8506 |:warning:`warning:` |nbsp| :diagtext:`arithmetic on`|+---------------------+| |nbsp| :diagtext:`pointer`|+-------------+| |nbsp| :diagtext:`to void is a GNU extension`|
8507 |                                                    || |nbsp| :diagtext:`a`||                           ||             ||                                              |
8508 |                                                    |+---------------------+|                           |+-------------+|                                              |
8509 |                                                    ||                     ||                           ||:diagtext:`s`||                                              |
8510 |                                                    |+---------------------+|                           |+-------------+|                                              |
8511 +----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+
8513 +---------------------------------------------------------------+-----------------------+--------------------------------+
8514 |:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------+|:diagtext:`' to a function type`|
8515 |                                                               ||:diagtext:`sizeof`   ||                                |
8516 |                                                               |+---------------------+|                                |
8517 |                                                               ||:diagtext:`alignof`  ||                                |
8518 |                                                               |+---------------------+|                                |
8519 |                                                               ||:diagtext:`vec\_step`||                                |
8520 |                                                               |+---------------------+|                                |
8521 +---------------------------------------------------------------+-----------------------+--------------------------------+
8523 +---------------------------------------------------------------+-----------------------+----------------------------+
8524 |:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------+|:diagtext:`' to a void type`|
8525 |                                                               ||:diagtext:`sizeof`   ||                            |
8526 |                                                               |+---------------------+|                            |
8527 |                                                               ||:diagtext:`alignof`  ||                            |
8528 |                                                               |+---------------------+|                            |
8529 |                                                               ||:diagtext:`vec\_step`||                            |
8530 |                                                               |+---------------------+|                            |
8531 +---------------------------------------------------------------+-----------------------+----------------------------+
8533 +-----------------------------------------------------------------------------------------------------------------------------------------------------+
8534 |:warning:`warning:` |nbsp| :diagtext:`subtraction of pointers to type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of zero size has undefined behavior`|
8535 +-----------------------------------------------------------------------------------------------------------------------------------------------------+
8538 -Wpointer-bool-conversion
8539 -------------------------
8540 This diagnostic is enabled by default.
8542 **Diagnostic text:**
8544 +------------------------------------------------------+---------------------------+---------------------------------------------------------------------------------------------+
8545 |:warning:`warning:` |nbsp| :diagtext:`nonnull` |nbsp| |+-------------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' will evaluate to 'true' on first encounter`|
8546 |                                                      ||:diagtext:`function call`||                                                                                             |
8547 |                                                      |+-------------------------+|                                                                                             |
8548 |                                                      ||:diagtext:`parameter`    ||                                                                                             |
8549 |                                                      |+-------------------------+|                                                                                             |
8550 +------------------------------------------------------+---------------------------+---------------------------------------------------------------------------------------------+
8552 +-------------------------------------------------+------------------------------+---------------------------------------------------------------------------------+
8553 |:warning:`warning:` |nbsp| :diagtext:`address of`|+----------------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' will always evaluate to 'true'`|
8554 |                                                 ||                            ||                                                                                 |
8555 |                                                 |+----------------------------+|                                                                                 |
8556 |                                                 || |nbsp| :diagtext:`function`||                                                                                 |
8557 |                                                 |+----------------------------+|                                                                                 |
8558 |                                                 || |nbsp| :diagtext:`array`   ||                                                                                 |
8559 |                                                 |+----------------------------+|                                                                                 |
8560 +-------------------------------------------------+------------------------------+---------------------------------------------------------------------------------+
8563 -Wpointer-sign
8564 --------------
8565 This diagnostic is enabled by default.
8567 **Diagnostic text:**
8569 +---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------------+
8570 |:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`converts between pointers to integer types with different sign`|
8571 |                           ||:diagtext:`assigning to different types`                      ||                                                                                  |
8572 |                           |+--------------------------------------------------------------+|                                                                                  |
8573 |                           ||:diagtext:`passing to parameter of different type`            ||                                                                                  |
8574 |                           |+--------------------------------------------------------------+|                                                                                  |
8575 |                           ||:diagtext:`returning from function with different return type`||                                                                                  |
8576 |                           |+--------------------------------------------------------------+|                                                                                  |
8577 |                           ||:diagtext:`converting between types`                          ||                                                                                  |
8578 |                           |+--------------------------------------------------------------+|                                                                                  |
8579 |                           ||:diagtext:`initializing with expression of different type`    ||                                                                                  |
8580 |                           |+--------------------------------------------------------------+|                                                                                  |
8581 |                           ||:diagtext:`sending to parameter of different type`            ||                                                                                  |
8582 |                           |+--------------------------------------------------------------+|                                                                                  |
8583 |                           ||:diagtext:`casting between types`                             ||                                                                                  |
8584 |                           |+--------------------------------------------------------------+|                                                                                  |
8585 +---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------------+
8588 -Wpointer-to-int-cast
8589 ---------------------
8590 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
8592 -Wpointer-type-mismatch
8593 -----------------------
8594 This diagnostic is enabled by default.
8596 **Diagnostic text:**
8598 +------------------------------------------------------------+
8599 |:warning:`warning:` |nbsp| :diagtext:`pointer type mismatch`|
8600 +------------------------------------------------------------+
8603 -Wpotentially-evaluated-expression
8604 ----------------------------------
8605 This diagnostic is enabled by default.
8607 **Diagnostic text:**
8609 +----------------------------------------------------------------------------------------------------------------------------------+
8610 |:warning:`warning:` |nbsp| :diagtext:`expression with side effects will be evaluated despite being used as an operand to 'typeid'`|
8611 +----------------------------------------------------------------------------------------------------------------------------------+
8614 -Wpragma-clang-attribute
8615 ------------------------
8616 This diagnostic is enabled by default.
8618 **Diagnostic text:**
8620 +-------------------------------------------------------------------------------------------------------------------------------------------+
8621 |:warning:`warning:` |nbsp| :diagtext:`unused attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in '#pragma clang attribute push' region`|
8622 +-------------------------------------------------------------------------------------------------------------------------------------------+
8625 -Wpragma-once-outside-header
8626 ----------------------------
8627 This diagnostic is enabled by default.
8629 **Diagnostic text:**
8631 +----------------------------------------------------------------+
8632 |:warning:`warning:` |nbsp| :diagtext:`#pragma once in main file`|
8633 +----------------------------------------------------------------+
8636 -Wpragma-pack
8637 -------------
8638 Some of the diagnostics controlled by this flag are enabled by default.
8640 Also controls `-Wpragma-pack-suspicious-include`_.
8642 **Diagnostic text:**
8644 +----------------------------------------------------------------------------------------------------------------+
8645 |:warning:`warning:` |nbsp| :diagtext:`the current #pragma pack alignment value is modified in the included file`|
8646 +----------------------------------------------------------------------------------------------------------------+
8648 +---------------------------------------------------------------------------------------------+
8649 |:warning:`warning:` |nbsp| :diagtext:`unterminated '#pragma pack (push, ...)' at end of file`|
8650 +---------------------------------------------------------------------------------------------+
8653 -Wpragma-pack-suspicious-include
8654 --------------------------------
8655 **Diagnostic text:**
8657 +-------------------------------------------------------------------------------------------------------------------------------------------+
8658 |:warning:`warning:` |nbsp| :diagtext:`non-default #pragma pack value changes the alignment of struct or union members in the included file`|
8659 +-------------------------------------------------------------------------------------------------------------------------------------------+
8662 -Wpragma-system-header-outside-header
8663 -------------------------------------
8664 This diagnostic is enabled by default.
8666 **Diagnostic text:**
8668 +----------------------------------------------------------------------------------+
8669 |:warning:`warning:` |nbsp| :diagtext:`#pragma system\_header ignored in main file`|
8670 +----------------------------------------------------------------------------------+
8673 -Wpragmas
8674 ---------
8675 Some of the diagnostics controlled by this flag are enabled by default.
8677 Also controls `-Wignored-pragmas`_, `-Wpragma-clang-attribute`_, `-Wpragma-pack`_, `-Wunknown-pragmas`_.
8679 **Diagnostic text:**
8681 +--------------------------------------------------------------------------------------------------------------------------------------+----------------------+------------------------+
8682 |:warning:`warning:` |nbsp| :diagtext:`#pragma redefine\_extname is applicable to external C declarations only; not applied to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B`|
8683 |                                                                                                                                      ||:diagtext:`function`||                        |
8684 |                                                                                                                                      |+--------------------+|                        |
8685 |                                                                                                                                      ||:diagtext:`variable`||                        |
8686 |                                                                                                                                      |+--------------------+|                        |
8687 +--------------------------------------------------------------------------------------------------------------------------------------+----------------------+------------------------+
8690 -Wpredefined-identifier-outside-function
8691 ----------------------------------------
8692 This diagnostic is enabled by default.
8694 **Diagnostic text:**
8696 +------------------------------------------------------------------------------------------+
8697 |:warning:`warning:` |nbsp| :diagtext:`predefined identifier is only valid inside function`|
8698 +------------------------------------------------------------------------------------------+
8701 -Wprivate-extern
8702 ----------------
8703 This diagnostic is enabled by default.
8705 **Diagnostic text:**
8707 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8708 |:warning:`warning:` |nbsp| :diagtext:`use of \_\_private\_extern\_\_ on a declaration may not produce external symbol private to the linkage unit and is deprecated`|
8709 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8712 -Wprivate-header
8713 ----------------
8714 This diagnostic is an error by default, but the flag ``-Wno-private-header`` can be used to disable the error.
8716 **Diagnostic text:**
8718 +----------------------------------------------------------------------------------------------------------------+
8719 |:error:`error:` |nbsp| :diagtext:`use of private header from outside its module: '`:placeholder:`A`:diagtext:`'`|
8720 +----------------------------------------------------------------------------------------------------------------+
8723 -Wprivate-module
8724 ----------------
8725 This diagnostic is enabled by default.
8727 **Diagnostic text:**
8729 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8730 |:warning:`warning:` |nbsp| :diagtext:`top-level module '`:placeholder:`A`:diagtext:`' in private module map, expected a submodule of '`:placeholder:`B`:diagtext:`'`|
8731 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8733 +----------------------------------------------------------------------------------------------------------------------------------+
8734 |:warning:`warning:` |nbsp| :diagtext:`module '`:placeholder:`A`:diagtext:`' already re-exported as '`:placeholder:`B`:diagtext:`'`|
8735 +----------------------------------------------------------------------------------------------------------------------------------+
8738 -Wprofile-instr-missing
8739 -----------------------
8740 **Diagnostic text:**
8742 +-----------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+-------------------+---------------------------+
8743 |: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`|
8744 |                                                                                                                             ||             ||                                             ||:diagtext:`:has` ||                           |
8745 |                                                                                                                             |+-------------+|                                             |+-----------------+|                           |
8746 |                                                                                                                             ||:diagtext:`s`||                                             ||:diagtext:`:have`||                           |
8747 |                                                                                                                             |+-------------+|                                             |+-----------------+|                           |
8748 +-----------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+-------------------+---------------------------+
8751 -Wprofile-instr-out-of-date
8752 ---------------------------
8753 This diagnostic is enabled by default.
8755 **Diagnostic text:**
8757 +------------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+-------------------+--------------------------------------------------------+
8758 |: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`|
8759 |                                                                                                                              ||             ||                                             ||:diagtext:`:has` ||                                                        |
8760 |                                                                                                                              |+-------------+|                                             |+-----------------+|                                                        |
8761 |                                                                                                                              ||:diagtext:`s`||                                             ||:diagtext:`:have`||                                                        |
8762 |                                                                                                                              |+-------------+|                                             |+-----------------+|                                                        |
8763 +------------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+-------------------+--------------------------------------------------------+
8766 -Wprofile-instr-unprofiled
8767 --------------------------
8768 This diagnostic is enabled by default.
8770 **Diagnostic text:**
8772 +--------------------------------------------------------------------------------------------------------+
8773 |:warning:`warning:` |nbsp| :diagtext:`no profile data available for file "`:placeholder:`A`:diagtext:`"`|
8774 +--------------------------------------------------------------------------------------------------------+
8777 -Wproperty-access-dot-syntax
8778 ----------------------------
8779 This diagnostic is enabled by default.
8781 **Diagnostic text:**
8783 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8784 |: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:`?`|
8785 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8788 -Wproperty-attribute-mismatch
8789 -----------------------------
8790 This diagnostic is enabled by default.
8792 **Diagnostic text:**
8794 +-------------------------------------------------------------------------------------------------------------+
8795 |:warning:`warning:` |nbsp| :diagtext:`property attribute in class extension does not match the primary class`|
8796 +-------------------------------------------------------------------------------------------------------------+
8798 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8799 |: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`|
8800 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8802 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8803 |:warning:`warning:` |nbsp| :diagtext:`getter name mismatch between property redeclaration (`:placeholder:`B`:diagtext:`) and its original declaration (`:placeholder:`A`:diagtext:`)`|
8804 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8806 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8807 |:warning:`warning:` |nbsp| :diagtext:`attribute 'readonly' of property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`restricts attribute 'readwrite' of property inherited from` |nbsp| :placeholder:`B`|
8808 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8811 -Wprotocol
8812 ----------
8813 This diagnostic is enabled by default.
8815 **Diagnostic text:**
8817 +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
8818 |:warning:`warning:` |nbsp| :diagtext:`method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in protocol` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not implemented`|
8819 +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
8822 -Wprotocol-property-synthesis-ambiguity
8823 ---------------------------------------
8824 This diagnostic is enabled by default.
8826 **Diagnostic text:**
8828 +-------------------------------------------------------+----------------------------------------------------------------+----------------------------------------------+
8829 |:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`was selected for synthesis`|
8830 |                                                       ||+-------------------------------------------+                 ||                                              |
8831 |                                                       |||:diagtext:`of type` |nbsp| :placeholder:`B`|                 ||                                              |
8832 |                                                       ||+-------------------------------------------+                 ||                                              |
8833 |                                                       |+--------------------------------------------------------------+|                                              |
8834 |                                                       ||+---------------------------------------------------------+   ||                                              |
8835 |                                                       |||:diagtext:`with attribute '`:placeholder:`B`:diagtext:`'`|   ||                                              |
8836 |                                                       ||+---------------------------------------------------------+   ||                                              |
8837 |                                                       |+--------------------------------------------------------------+|                                              |
8838 |                                                       ||+------------------------------------------------------------+||                                              |
8839 |                                                       |||:diagtext:`without attribute '`:placeholder:`B`:diagtext:`'`|||                                              |
8840 |                                                       ||+------------------------------------------------------------+||                                              |
8841 |                                                       |+--------------------------------------------------------------+|                                              |
8842 |                                                       ||+-----------------------------------------------+             ||                                              |
8843 |                                                       |||:diagtext:`with getter` |nbsp| :placeholder:`B`|             ||                                              |
8844 |                                                       ||+-----------------------------------------------+             ||                                              |
8845 |                                                       |+--------------------------------------------------------------+|                                              |
8846 |                                                       ||+-----------------------------------------------+             ||                                              |
8847 |                                                       |||:diagtext:`with setter` |nbsp| :placeholder:`B`|             ||                                              |
8848 |                                                       ||+-----------------------------------------------+             ||                                              |
8849 |                                                       |+--------------------------------------------------------------+|                                              |
8850 +-------------------------------------------------------+----------------------------------------------------------------+----------------------------------------------+
8853 -Wqualified-void-return-type
8854 ----------------------------
8855 This diagnostic is enabled by default.
8857 **Diagnostic text:**
8859 +---------------------------------------------------------------------------------------------------------+
8860 |:warning:`warning:` |nbsp| :diagtext:`function cannot return qualified void type` |nbsp| :placeholder:`A`|
8861 +---------------------------------------------------------------------------------------------------------+
8864 -Wrange-loop-analysis
8865 ---------------------
8866 **Diagnostic text:**
8868 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8869 |:warning:`warning:` |nbsp| :diagtext:`loop variable` |nbsp| :placeholder:`A` |nbsp|  |nbsp| :diagtext:`is initialized with a value of a different type` |nbsp| :diagtext:`resulting in a copy`|
8870 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8872 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8873 |:warning:`warning:` |nbsp| :diagtext:`loop variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`creates a copy from type` |nbsp| :placeholder:`C`|
8874 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8876 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8877 |:warning:`warning:` |nbsp| :diagtext:`loop variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is always a copy because the range of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`does not return a reference`|
8878 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8881 -Wreadonly-iboutlet-property
8882 ----------------------------
8883 This diagnostic is enabled by default.
8885 **Diagnostic text:**
8887 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8888 |:warning:`warning:` |nbsp| :diagtext:`readonly IBOutlet property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when auto-synthesized may not work correctly with 'nib' loader`|
8889 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8892 -Wreceiver-expr
8893 ---------------
8894 This diagnostic is enabled by default.
8896 **Diagnostic text:**
8898 +-------------------------------------------------------------------------------------------------------------------------------------------------------------+
8899 |:warning:`warning:` |nbsp| :diagtext:`receiver type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not 'id' or interface pointer, consider casting it to 'id'`|
8900 +-------------------------------------------------------------------------------------------------------------------------------------------------------------+
8903 -Wreceiver-forward-class
8904 ------------------------
8905 Some of the diagnostics controlled by this flag are enabled by default.
8907 **Diagnostic text:**
8909 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
8910 |:warning:`warning:` |nbsp| :diagtext:`receiver` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a forward class and corresponding @interface may not exist`|
8911 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
8913 +---------------------------------------------------------------------------------------------------------------------------------------------+
8914 |:warning:`warning:` |nbsp| :diagtext:`receiver type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for instance message is a forward declaration`|
8915 +---------------------------------------------------------------------------------------------------------------------------------------------+
8918 -Wredeclared-class-member
8919 -------------------------
8920 This diagnostic is enabled by default.
8922 **Diagnostic text:**
8924 +------------------------------------------------------------------------+
8925 |:warning:`warning:` |nbsp| :diagtext:`class member cannot be redeclared`|
8926 +------------------------------------------------------------------------+
8929 -Wredundant-decls
8930 -----------------
8931 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
8933 -Wredundant-move
8934 ----------------
8935 **Diagnostic text:**
8937 +-------------------------------------------------------------------------+
8938 |:warning:`warning:` |nbsp| :diagtext:`redundant move in return statement`|
8939 +-------------------------------------------------------------------------+
8942 -Wredundant-parens
8943 ------------------
8944 **Diagnostic text:**
8946 +-----------------------------------------------------------------------------------+
8947 |:warning:`warning:` |nbsp| :diagtext:`redundant parentheses surrounding declarator`|
8948 +-----------------------------------------------------------------------------------+
8951 -Wregister
8952 ----------
8953 This diagnostic is enabled by default.
8955 Also controls `-Wdeprecated-register`_.
8957 **Diagnostic text:**
8959 +----------------------------------------------------------------------------------------------+
8960 |:error:`error:` |nbsp| :diagtext:`ISO C++17 does not allow 'register' storage class specifier`|
8961 +----------------------------------------------------------------------------------------------+
8964 -Wreinterpret-base-class
8965 ------------------------
8966 This diagnostic is enabled by default.
8968 **Diagnostic text:**
8970 +------------------------------------------------------------------+------------------+---------------------------------------------------------+------------------+-------------------------------+-------------------------------------+-----------------------------------------------------------------------------------+
8971 |: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'`|
8972 |                                                                  ||:diagtext:`from`||                                                         ||:diagtext:`to`  ||                               ||:diagtext:`virtual base`           ||                                                                                   |
8973 |                                                                  |+----------------+|                                                         |+----------------+|                               |+-----------------------------------+|                                                                                   |
8974 |                                                                  ||:diagtext:`to`  ||                                                         ||:diagtext:`from`||                               ||:diagtext:`base at non-zero offset`||                                                                                   |
8975 |                                                                  |+----------------+|                                                         |+----------------+|                               |+-----------------------------------+|                                                                                   |
8976 +------------------------------------------------------------------+------------------+---------------------------------------------------------+------------------+-------------------------------+-------------------------------------+-----------------------------------------------------------------------------------+
8979 -Rremark-backend-plugin
8980 -----------------------
8981 **Diagnostic text:**
8983 The text of this diagnostic is not controlled by Clang.
8986 -Wreorder
8987 ---------
8988 **Diagnostic text:**
8990 +---------------------------+------------------------+-----------------------------------------------------------------------------+-------------------+------------------------+
8991 |:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`will be initialized after` |nbsp| |+-----------------+| |nbsp| :placeholder:`D`|
8992 |                           ||:diagtext:`field`     ||                                                                             ||:diagtext:`field`||                        |
8993 |                           |+----------------------+|                                                                             |+-----------------+|                        |
8994 |                           ||:diagtext:`base class`||                                                                             ||:diagtext:`base` ||                        |
8995 |                           |+----------------------+|                                                                             |+-----------------+|                        |
8996 +---------------------------+------------------------+-----------------------------------------------------------------------------+-------------------+------------------------+
8999 -Wrequires-super-attribute
9000 --------------------------
9001 This diagnostic is enabled by default.
9003 **Diagnostic text:**
9005 +-----------------------------------------------------------------------------------------------------+----------------------------------+
9006 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute cannot be applied to` |nbsp| |+--------------------------------+|
9007 |                                                                                                     ||:diagtext:`methods in protocols`||
9008 |                                                                                                     |+--------------------------------+|
9009 |                                                                                                     ||:diagtext:`dealloc`             ||
9010 |                                                                                                     |+--------------------------------+|
9011 +-----------------------------------------------------------------------------------------------------+----------------------------------+
9014 -Wreserved-id-macro
9015 -------------------
9016 **Diagnostic text:**
9018 +--------------------------------------------------------------------------+
9019 |:warning:`warning:` |nbsp| :diagtext:`macro name is a reserved identifier`|
9020 +--------------------------------------------------------------------------+
9023 -Wreserved-user-defined-literal
9024 -------------------------------
9025 Some of the diagnostics controlled by this flag are enabled by default.
9027 Also controls `-Wc++11-compat-reserved-user-defined-literal`_.
9029 **Diagnostic text:**
9031 +-----------------------------------------------------------------------------------------------------------------------+
9032 |:warning:`warning:` |nbsp| :diagtext:`invalid suffix on literal; C++11 requires a space between literal and identifier`|
9033 +-----------------------------------------------------------------------------------------------------------------------+
9035 +-------------------------------------------------------------------------------------------------------------------+
9036 |:error:`error:` |nbsp| :diagtext:`invalid suffix on literal; C++11 requires a space between literal and identifier`|
9037 +-------------------------------------------------------------------------------------------------------------------+
9040 -Wretained-language-linkage
9041 ---------------------------
9042 **Diagnostic text:**
9044 +-----------------------------------------------------------------------------------------------------------------------------------------------------+
9045 |:warning:`warning:` |nbsp| :diagtext:`friend function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`retaining previous language linkage is an extension`|
9046 +-----------------------------------------------------------------------------------------------------------------------------------------------------+
9049 -Wreturn-stack-address
9050 ----------------------
9051 This diagnostic is enabled by default.
9053 **Diagnostic text:**
9055 +---------------------------------------------------------------------------------+
9056 |:warning:`warning:` |nbsp| :diagtext:`returning address of label, which is local`|
9057 +---------------------------------------------------------------------------------+
9059 +--------------------------------------------------------+--------------------------+------------------------------------------+
9060 |:warning:`warning:` |nbsp| :diagtext:`returning` |nbsp| |+------------------------+| |nbsp| :diagtext:`local temporary object`|
9061 |                                                        ||:diagtext:`address of`  ||                                          |
9062 |                                                        |+------------------------+|                                          |
9063 |                                                        ||:diagtext:`reference to`||                                          |
9064 |                                                        |+------------------------+|                                          |
9065 +--------------------------------------------------------+--------------------------+------------------------------------------+
9067 +---------------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------+
9068 |:warning:`warning:` |nbsp| |+------------------------+| |nbsp| :diagtext:`stack memory associated with local variable` |nbsp| :placeholder:`B` |nbsp| :diagtext:`returned`|
9069 |                           ||:diagtext:`address of`  ||                                                                                                                   |
9070 |                           |+------------------------+|                                                                                                                   |
9071 |                           ||:diagtext:`reference to`||                                                                                                                   |
9072 |                           |+------------------------+|                                                                                                                   |
9073 +---------------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------+
9076 -Wreturn-type
9077 -------------
9078 This diagnostic is enabled by default.
9080 Also controls `-Wreturn-type-c-linkage`_.
9082 **Diagnostic text:**
9084 +-----------------------+---------------------------+---------------------------------------------------------------------+
9085 |:error:`error:` |nbsp| |+-------------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return a value`|
9086 |                       ||:diagtext:`void function`||                                                                     |
9087 |                       |+-------------------------+|                                                                     |
9088 |                       ||:diagtext:`void method`  ||                                                                     |
9089 |                       |+-------------------------+|                                                                     |
9090 |                       ||:diagtext:`constructor`  ||                                                                     |
9091 |                       |+-------------------------+|                                                                     |
9092 |                       ||:diagtext:`destructor`   ||                                                                     |
9093 |                       |+-------------------------+|                                                                     |
9094 +-----------------------+---------------------------+---------------------------------------------------------------------+
9096 +---------------------------------------------------+----------------------+-----------------------------------------------------------------+
9097 |:error:`error:` |nbsp| :diagtext:`non-void` |nbsp| |+--------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should return a value`|
9098 |                                                   ||:diagtext:`function`||                                                                 |
9099 |                                                   |+--------------------+|                                                                 |
9100 |                                                   ||:diagtext:`method`  ||                                                                 |
9101 |                                                   |+--------------------+|                                                                 |
9102 +---------------------------------------------------+----------------------+-----------------------------------------------------------------+
9104 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9105 |:warning:`warning:` |nbsp| :diagtext:`control reaches end of coroutine; which is undefined behavior because the promise type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not declare 'return\_void()'`|
9106 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9108 +-------------------------------------------------------------------------------+
9109 |:warning:`warning:` |nbsp| :diagtext:`control reaches end of non-void function`|
9110 +-------------------------------------------------------------------------------+
9112 +-----------------------------------------------------------------------------+
9113 |:warning:`warning:` |nbsp| :diagtext:`control reaches end of non-void lambda`|
9114 +-----------------------------------------------------------------------------+
9116 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9117 |:warning:`warning:` |nbsp| :diagtext:`control may reach end of coroutine; which is undefined behavior because the promise type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not declare 'return\_void()'`|
9118 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9120 +---------------------------------------------------------------------------------+
9121 |:warning:`warning:` |nbsp| :diagtext:`control may reach end of non-void function`|
9122 +---------------------------------------------------------------------------------+
9124 +-------------------------------------------------------------------------------+
9125 |:warning:`warning:` |nbsp| :diagtext:`control may reach end of non-void lambda`|
9126 +-------------------------------------------------------------------------------+
9128 +---------------------------------------------------+----------------------+-----------------------------------------------------------------+
9129 |:error:`error:` |nbsp| :diagtext:`non-void` |nbsp| |+--------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should return a value`|
9130 |                                                   ||:diagtext:`function`||                                                                 |
9131 |                                                   |+--------------------+|                                                                 |
9132 |                                                   ||:diagtext:`method`  ||                                                                 |
9133 |                                                   |+--------------------+|                                                                 |
9134 +---------------------------------------------------+----------------------+-----------------------------------------------------------------+
9137 -Wreturn-type-c-linkage
9138 -----------------------
9139 This diagnostic is enabled by default.
9141 **Diagnostic text:**
9143 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9144 |: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`|
9145 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9147 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9148 |: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`|
9149 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9152 -Wrtti-for-exceptions
9153 ---------------------
9154 This diagnostic is enabled by default.
9156 **Diagnostic text:**
9158 +--------------------------------------------------------------------------------------+
9159 |:warning:`warning:` |nbsp| :diagtext:`implicitly enabling rtti for exception handling`|
9160 +--------------------------------------------------------------------------------------+
9163 -Rsanitize-address
9164 ------------------
9165 **Diagnostic text:**
9167 +--------------------------------------------------------------------------------------------------------+
9168 |:remark:`remark:` |nbsp| :diagtext:`-fsanitize-address-field-padding applied to` |nbsp| :placeholder:`A`|
9169 +--------------------------------------------------------------------------------------------------------+
9171 +-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------+
9172 |:remark:`remark:` |nbsp| :diagtext:`-fsanitize-address-field-padding ignored for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`because it` |nbsp| |+------------------------------------+|
9173 |                                                                                                                                               ||:diagtext:`is not C++`              ||
9174 |                                                                                                                                               |+------------------------------------+|
9175 |                                                                                                                                               ||:diagtext:`is packed`               ||
9176 |                                                                                                                                               |+------------------------------------+|
9177 |                                                                                                                                               ||:diagtext:`is a union`              ||
9178 |                                                                                                                                               |+------------------------------------+|
9179 |                                                                                                                                               ||:diagtext:`is trivially copyable`   ||
9180 |                                                                                                                                               |+------------------------------------+|
9181 |                                                                                                                                               ||:diagtext:`has trivial destructor`  ||
9182 |                                                                                                                                               |+------------------------------------+|
9183 |                                                                                                                                               ||:diagtext:`is standard layout`      ||
9184 |                                                                                                                                               |+------------------------------------+|
9185 |                                                                                                                                               ||:diagtext:`is in a blacklisted file`||
9186 |                                                                                                                                               |+------------------------------------+|
9187 |                                                                                                                                               ||:diagtext:`is blacklisted`          ||
9188 |                                                                                                                                               |+------------------------------------+|
9189 +-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------+
9192 -Wsection
9193 ---------
9194 This diagnostic is enabled by default.
9196 **Diagnostic text:**
9198 +--------------------------------------------------------------------------------------------+
9199 |:warning:`warning:` |nbsp| :diagtext:`section attribute is specified on redeclared variable`|
9200 +--------------------------------------------------------------------------------------------+
9202 +----------------------------------------------------------------------------------+
9203 |:warning:`warning:` |nbsp| :diagtext:`section does not match previous declaration`|
9204 +----------------------------------------------------------------------------------+
9207 -Wselector
9208 ----------
9209 Also controls `-Wselector-type-mismatch`_.
9211 **Diagnostic text:**
9213 +-------------------------------------------------------------------------------------------------------------------------------------------------+
9214 |:warning:`warning:` |nbsp| :diagtext:`no method with selector` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is implemented in this translation unit`|
9215 +-------------------------------------------------------------------------------------------------------------------------------------------------+
9218 -Wselector-type-mismatch
9219 ------------------------
9220 **Diagnostic text:**
9222 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9223 |:warning:`warning:` |nbsp| :diagtext:`several methods with selector` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of mismatched types are found for the @selector expression`|
9224 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9227 -Wself-assign
9228 -------------
9229 Some of the diagnostics controlled by this flag are enabled by default.
9231 Also controls `-Wself-assign-field`_.
9233 **Diagnostic text:**
9235 +------------------------------------------------------------------------------------------------------------------------------------------+
9236 |:warning:`warning:` |nbsp| :diagtext:`explicitly assigning value of variable of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to itself`|
9237 +------------------------------------------------------------------------------------------------------------------------------------------+
9240 -Wself-assign-field
9241 -------------------
9242 This diagnostic is enabled by default.
9244 **Diagnostic text:**
9246 +--------------------------------------------------------+-------------------------------+-----------------------------+
9247 |:warning:`warning:` |nbsp| :diagtext:`assigning` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`to itself`|
9248 |                                                        ||:diagtext:`field`            ||                             |
9249 |                                                        |+-----------------------------+|                             |
9250 |                                                        ||:diagtext:`instance variable`||                             |
9251 |                                                        |+-----------------------------+|                             |
9252 +--------------------------------------------------------+-------------------------------+-----------------------------+
9255 -Wself-move
9256 -----------
9257 **Diagnostic text:**
9259 +------------------------------------------------------------------------------------------------------------------------------+
9260 |:warning:`warning:` |nbsp| :diagtext:`explicitly moving variable of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to itself`|
9261 +------------------------------------------------------------------------------------------------------------------------------+
9264 -Wsemicolon-before-method-body
9265 ------------------------------
9266 **Diagnostic text:**
9268 +------------------------------------------------------------------------------+
9269 |:warning:`warning:` |nbsp| :diagtext:`semicolon before method body is ignored`|
9270 +------------------------------------------------------------------------------+
9273 -Wsentinel
9274 ----------
9275 This diagnostic is enabled by default.
9277 **Diagnostic text:**
9279 +------------------------------------------------------------------+-----------------------------+
9280 |:warning:`warning:` |nbsp| :diagtext:`missing sentinel in` |nbsp| |+---------------------------+|
9281 |                                                                  ||:diagtext:`function call`  ||
9282 |                                                                  |+---------------------------+|
9283 |                                                                  ||:diagtext:`method dispatch`||
9284 |                                                                  |+---------------------------+|
9285 |                                                                  ||:diagtext:`block call`     ||
9286 |                                                                  |+---------------------------+|
9287 +------------------------------------------------------------------+-----------------------------+
9289 +------------------------------------------------------------------------------------------------------------------------------------------------+
9290 |:warning:`warning:` |nbsp| :diagtext:`not enough variable arguments in` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declaration to fit a sentinel`|
9291 +------------------------------------------------------------------------------------------------------------------------------------------------+
9294 -Wsequence-point
9295 ----------------
9296 Synonym for `-Wunsequenced`_.
9299 -Wserialized-diagnostics
9300 ------------------------
9301 This diagnostic is enabled by default.
9303 **Diagnostic text:**
9305 +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
9306 |:warning:`warning:` |nbsp| :diagtext:`unable to open file` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for serializing diagnostics (`:placeholder:`B`:diagtext:`)`|
9307 +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
9309 +--------------------------------------------------------------------------------------------+
9310 |:warning:`warning:` |nbsp| :diagtext:`unable to merge a subprocess's serialized diagnostics`|
9311 +--------------------------------------------------------------------------------------------+
9314 -Wshadow
9315 --------
9316 Some of the diagnostics controlled by this flag are enabled by default.
9318 Also controls `-Wshadow-field-in-constructor-modified`_, `-Wshadow-ivar`_.
9320 **Diagnostic text:**
9322 +--------------------------------------------------------------------+-------------------------------------------------------------+
9323 |:warning:`warning:` |nbsp| :diagtext:`declaration shadows a` |nbsp| |+-----------------------------------------------------------+|
9324 |                                                                    ||:diagtext:`local variable`                                 ||
9325 |                                                                    |+-----------------------------------------------------------+|
9326 |                                                                    ||+-----------------------------------------------+          ||
9327 |                                                                    |||:diagtext:`variable in` |nbsp| :placeholder:`C`|          ||
9328 |                                                                    ||+-----------------------------------------------+          ||
9329 |                                                                    |+-----------------------------------------------------------+|
9330 |                                                                    ||+---------------------------------------------------------+||
9331 |                                                                    |||:diagtext:`static data member of` |nbsp| :placeholder:`C`|||
9332 |                                                                    ||+---------------------------------------------------------+||
9333 |                                                                    |+-----------------------------------------------------------+|
9334 |                                                                    ||+--------------------------------------------+             ||
9335 |                                                                    |||:diagtext:`field of` |nbsp| :placeholder:`C`|             ||
9336 |                                                                    ||+--------------------------------------------+             ||
9337 |                                                                    |+-----------------------------------------------------------+|
9338 |                                                                    ||+----------------------------------------------+           ||
9339 |                                                                    |||:diagtext:`typedef in` |nbsp| :placeholder:`C`|           ||
9340 |                                                                    ||+----------------------------------------------+           ||
9341 |                                                                    |+-----------------------------------------------------------+|
9342 |                                                                    ||+-------------------------------------------------+        ||
9343 |                                                                    |||:diagtext:`type alias in` |nbsp| :placeholder:`C`|        ||
9344 |                                                                    ||+-------------------------------------------------+        ||
9345 |                                                                    |+-----------------------------------------------------------+|
9346 +--------------------------------------------------------------------+-------------------------------------------------------------+
9349 -Wshadow-all
9350 ------------
9351 Some of the diagnostics controlled by this flag are enabled by default.
9353 Controls `-Wshadow`_, `-Wshadow-field`_, `-Wshadow-field-in-constructor`_, `-Wshadow-uncaptured-local`_.
9356 -Wshadow-field
9357 --------------
9358 **Diagnostic text:**
9360 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9361 |:warning:`warning:` |nbsp| :diagtext:`non-static data member '`:placeholder:`A`:diagtext:`' of '`:placeholder:`B`:diagtext:`' shadows member inherited from type '`:placeholder:`C`:diagtext:`'`|
9362 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9365 -Wshadow-field-in-constructor
9366 -----------------------------
9367 Also controls `-Wshadow-field-in-constructor-modified`_.
9369 **Diagnostic text:**
9371 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9372 |:warning:`warning:` |nbsp| :diagtext:`constructor parameter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`shadows the field` |nbsp| :placeholder:`B` |nbsp| :diagtext:`of` |nbsp| :placeholder:`C`|
9373 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9376 -Wshadow-field-in-constructor-modified
9377 --------------------------------------
9378 **Diagnostic text:**
9380 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
9381 |:warning:`warning:` |nbsp| :diagtext:`modifying constructor parameter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`that shadows a field of` |nbsp| :placeholder:`B`|
9382 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
9385 -Wshadow-ivar
9386 -------------
9387 This diagnostic is enabled by default.
9389 **Diagnostic text:**
9391 +------------------------------------------------------------------------------------------------------------------------------+
9392 |:warning:`warning:` |nbsp| :diagtext:`local declaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`hides instance variable`|
9393 +------------------------------------------------------------------------------------------------------------------------------+
9396 -Wshadow-uncaptured-local
9397 -------------------------
9398 **Diagnostic text:**
9400 +--------------------------------------------------------------------+-------------------------------------------------------------+
9401 |:warning:`warning:` |nbsp| :diagtext:`declaration shadows a` |nbsp| |+-----------------------------------------------------------+|
9402 |                                                                    ||:diagtext:`local variable`                                 ||
9403 |                                                                    |+-----------------------------------------------------------+|
9404 |                                                                    ||+-----------------------------------------------+          ||
9405 |                                                                    |||:diagtext:`variable in` |nbsp| :placeholder:`C`|          ||
9406 |                                                                    ||+-----------------------------------------------+          ||
9407 |                                                                    |+-----------------------------------------------------------+|
9408 |                                                                    ||+---------------------------------------------------------+||
9409 |                                                                    |||:diagtext:`static data member of` |nbsp| :placeholder:`C`|||
9410 |                                                                    ||+---------------------------------------------------------+||
9411 |                                                                    |+-----------------------------------------------------------+|
9412 |                                                                    ||+--------------------------------------------+             ||
9413 |                                                                    |||:diagtext:`field of` |nbsp| :placeholder:`C`|             ||
9414 |                                                                    ||+--------------------------------------------+             ||
9415 |                                                                    |+-----------------------------------------------------------+|
9416 |                                                                    ||+----------------------------------------------+           ||
9417 |                                                                    |||:diagtext:`typedef in` |nbsp| :placeholder:`C`|           ||
9418 |                                                                    ||+----------------------------------------------+           ||
9419 |                                                                    |+-----------------------------------------------------------+|
9420 |                                                                    ||+-------------------------------------------------+        ||
9421 |                                                                    |||:diagtext:`type alias in` |nbsp| :placeholder:`C`|        ||
9422 |                                                                    ||+-------------------------------------------------+        ||
9423 |                                                                    |+-----------------------------------------------------------+|
9424 +--------------------------------------------------------------------+-------------------------------------------------------------+
9427 -Wshift-count-negative
9428 ----------------------
9429 This diagnostic is enabled by default.
9431 **Diagnostic text:**
9433 +--------------------------------------------------------------+
9434 |:warning:`warning:` |nbsp| :diagtext:`shift count is negative`|
9435 +--------------------------------------------------------------+
9438 -Wshift-count-overflow
9439 ----------------------
9440 This diagnostic is enabled by default.
9442 **Diagnostic text:**
9444 +-------------------------------------------------------------------+
9445 |:warning:`warning:` |nbsp| :diagtext:`shift count >= width of type`|
9446 +-------------------------------------------------------------------+
9449 -Wshift-negative-value
9450 ----------------------
9451 This diagnostic is enabled by default.
9453 **Diagnostic text:**
9455 +------------------------------------------------------------------------------------+
9456 |:warning:`warning:` |nbsp| :diagtext:`shifting a negative signed value is undefined`|
9457 +------------------------------------------------------------------------------------+
9460 -Wshift-op-parentheses
9461 ----------------------
9462 This diagnostic is enabled by default.
9464 **Diagnostic text:**
9466 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9467 |:warning:`warning:` |nbsp| :diagtext:`operator '`:placeholder:`A`:diagtext:`' has lower precedence than '`:placeholder:`B`:diagtext:`'; '`:placeholder:`B`:diagtext:`' will be evaluated first`|
9468 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9471 -Wshift-overflow
9472 ----------------
9473 This diagnostic is enabled by default.
9475 **Diagnostic text:**
9477 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9478 |: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`|
9479 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9482 -Wshift-sign-overflow
9483 ---------------------
9484 **Diagnostic text:**
9486 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9487 |: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`|
9488 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9491 -Wshorten-64-to-32
9492 ------------------
9493 **Diagnostic text:**
9495 +---------------------------------------------------------------------------------------------------------------------------------------------------------+
9496 |:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses integer precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
9497 +---------------------------------------------------------------------------------------------------------------------------------------------------------+
9500 -Wsign-compare
9501 --------------
9502 **Diagnostic text:**
9504 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
9505 |:warning:`warning:` |nbsp| :diagtext:`comparison of integers of different signs:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`|
9506 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
9509 -Wsign-conversion
9510 -----------------
9511 **Diagnostic text:**
9513 +----------------------------------------------------------------------------------------------------------------------------------------------------+
9514 |:warning:`warning:` |nbsp| :diagtext:`implicit conversion changes signedness:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
9515 +----------------------------------------------------------------------------------------------------------------------------------------------------+
9517 +---------------------------------------------------------------------------------------------------------------------------------------------+
9518 |:warning:`warning:` |nbsp| :diagtext:`operand of ? changes signedness:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
9519 +---------------------------------------------------------------------------------------------------------------------------------------------+
9522 -Wsign-promo
9523 ------------
9524 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
9526 -Wsigned-enum-bitfield
9527 ----------------------
9528 **Diagnostic text:**
9530 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9531 |: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`|
9532 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9535 -Wsizeof-array-argument
9536 -----------------------
9537 This diagnostic is enabled by default.
9539 **Diagnostic text:**
9541 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9542 |:warning:`warning:` |nbsp| :diagtext:`sizeof on array function parameter will return size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`instead of` |nbsp| :placeholder:`B`|
9543 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9546 -Wsizeof-array-decay
9547 --------------------
9548 This diagnostic is enabled by default.
9550 **Diagnostic text:**
9552 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9553 |:warning:`warning:` |nbsp| :diagtext:`sizeof on pointer operation will return size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`instead of` |nbsp| :placeholder:`B`|
9554 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9557 -Wsizeof-pointer-memaccess
9558 --------------------------
9559 This diagnostic is enabled by default.
9561 **Diagnostic text:**
9563 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9564 |: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`|
9565 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9567 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------+
9568 |: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`|
9569 |                                                                                                                                                                                                 ||:diagtext:`destination`||                                                                                       |
9570 |                                                                                                                                                                                                 |+-----------------------+|                                                                                       |
9571 |                                                                                                                                                                                                 ||:diagtext:`source`     ||                                                                                       |
9572 |                                                                                                                                                                                                 |+-----------------------+|                                                                                       |
9573 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------+
9576 -Wslash-u-filename
9577 ------------------
9578 This diagnostic is enabled by default.
9580 **Diagnostic text:**
9582 +--------------------------------------------------------------------------------------------------+
9583 |:warning:`warning:` |nbsp| :diagtext:`'/U`:placeholder:`A`:diagtext:`' treated as the '/U' option`|
9584 +--------------------------------------------------------------------------------------------------+
9587 -Wsometimes-uninitialized
9588 -------------------------
9589 **Diagnostic text:**
9591 +-----------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
9592 |:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is` |nbsp| |+--------------------+| |nbsp| :diagtext:`uninitialized whenever` |nbsp| |+------------------------------------------------------------------------------------------------------------+|
9593 |                                                                                                     ||:diagtext:`used`    ||                                                  ||+---------------------------------------------------------------+-------------------+                       ||
9594 |                                                                                                     |+--------------------+|                                                  |||:diagtext:`'`:placeholder:`D`:diagtext:`' condition is` |nbsp| |+-----------------+|                       ||
9595 |                                                                                                     ||:diagtext:`captured`||                                                  |||                                                               ||:diagtext:`true` ||                       ||
9596 |                                                                                                     |+--------------------+|                                                  |||                                                               |+-----------------+|                       ||
9597 |                                                                                                     |                      |                                                  |||                                                               ||:diagtext:`false`||                       ||
9598 |                                                                                                     |                      |                                                  |||                                                               |+-----------------+|                       ||
9599 |                                                                                                     |                      |                                                  ||+---------------------------------------------------------------+-------------------+                       ||
9600 |                                                                                                     |                      |                                                  |+------------------------------------------------------------------------------------------------------------+|
9601 |                                                                                                     |                      |                                                  ||+-------------------------------------------------------+--------------------------------------------------+||
9602 |                                                                                                     |                      |                                                  |||:diagtext:`'`:placeholder:`D`:diagtext:`' loop` |nbsp| |+------------------------------------------------+|||
9603 |                                                                                                     |                      |                                                  |||                                                       ||:diagtext:`is entered`                          ||||
9604 |                                                                                                     |                      |                                                  |||                                                       |+------------------------------------------------+|||
9605 |                                                                                                     |                      |                                                  |||                                                       ||:diagtext:`exits because its condition is false`||||
9606 |                                                                                                     |                      |                                                  |||                                                       |+------------------------------------------------+|||
9607 |                                                                                                     |                      |                                                  ||+-------------------------------------------------------+--------------------------------------------------+||
9608 |                                                                                                     |                      |                                                  |+------------------------------------------------------------------------------------------------------------+|
9609 |                                                                                                     |                      |                                                  ||+-------------------------------------------------------+--------------------------------------------------+||
9610 |                                                                                                     |                      |                                                  |||:diagtext:`'`:placeholder:`D`:diagtext:`' loop` |nbsp| |+------------------------------------------------+|||
9611 |                                                                                                     |                      |                                                  |||                                                       ||:diagtext:`condition is true`                   ||||
9612 |                                                                                                     |                      |                                                  |||                                                       |+------------------------------------------------+|||
9613 |                                                                                                     |                      |                                                  |||                                                       ||:diagtext:`exits because its condition is false`||||
9614 |                                                                                                     |                      |                                                  |||                                                       |+------------------------------------------------+|||
9615 |                                                                                                     |                      |                                                  ||+-------------------------------------------------------+--------------------------------------------------+||
9616 |                                                                                                     |                      |                                                  |+------------------------------------------------------------------------------------------------------------+|
9617 |                                                                                                     |                      |                                                  ||+----------------------------------------------------------------------+                                    ||
9618 |                                                                                                     |                      |                                                  |||:diagtext:`switch` |nbsp| :placeholder:`D` |nbsp| :diagtext:`is taken`|                                    ||
9619 |                                                                                                     |                      |                                                  ||+----------------------------------------------------------------------+                                    ||
9620 |                                                                                                     |                      |                                                  |+------------------------------------------------------------------------------------------------------------+|
9621 |                                                                                                     |                      |                                                  ||:diagtext:`its declaration is reached`                                                                      ||
9622 |                                                                                                     |                      |                                                  |+------------------------------------------------------------------------------------------------------------+|
9623 |                                                                                                     |                      |                                                  ||+---------------------------------------------+                                                             ||
9624 |                                                                                                     |                      |                                                  |||:placeholder:`D` |nbsp| :diagtext:`is called`|                                                             ||
9625 |                                                                                                     |                      |                                                  ||+---------------------------------------------+                                                             ||
9626 |                                                                                                     |                      |                                                  |+------------------------------------------------------------------------------------------------------------+|
9627 +-----------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
9630 -Wsource-uses-openmp
9631 --------------------
9632 Some of the diagnostics controlled by this flag are enabled by default.
9634 **Diagnostic text:**
9636 +------------------------------------------------------------------------------------------------------------------------------+
9637 |:warning:`warning:` |nbsp| :diagtext:`OpenMP only allows an ordered construct with the simd clause nested in a simd construct`|
9638 +------------------------------------------------------------------------------------------------------------------------------+
9640 +------------------------------------------------------------------------------+
9641 |:warning:`warning:` |nbsp| :diagtext:`unexpected '#pragma omp ...' in program`|
9642 +------------------------------------------------------------------------------+
9645 -Wspir-compat
9646 -------------
9647 **Diagnostic text:**
9649 +----------------------------------------------------------------------------------------------------------------------+
9650 |:warning:`warning:` |nbsp| :diagtext:`sampler initializer has invalid` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bits`|
9651 +----------------------------------------------------------------------------------------------------------------------+
9654 -Wstack-protector
9655 -----------------
9656 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
9658 -Wstatic-float-init
9659 -------------------
9660 This diagnostic is enabled by default.
9662 Also controls `-Wgnu-static-float-init`_.
9664 **Diagnostic text:**
9666 +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
9667 |:error:`error:` |nbsp| :diagtext:`in-class initializer for static data member of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires 'constexpr' specifier`|
9668 +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
9671 -Wstatic-in-inline
9672 ------------------
9673 Some of the diagnostics controlled by this flag are enabled by default.
9675 **Diagnostic text:**
9677 +-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
9678 |:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`|
9679 |                                                     ||:diagtext:`function`||                                                                                               |
9680 |                                                     |+--------------------+|                                                                                               |
9681 |                                                     ||:diagtext:`variable`||                                                                                               |
9682 |                                                     |+--------------------+|                                                                                               |
9683 +-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
9685 +-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
9686 |:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`|
9687 |                                                     ||:diagtext:`function`||                                                                                               |
9688 |                                                     |+--------------------+|                                                                                               |
9689 |                                                     ||:diagtext:`variable`||                                                                                               |
9690 |                                                     |+--------------------+|                                                                                               |
9691 +-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
9694 -Wstatic-inline-explicit-instantiation
9695 --------------------------------------
9696 This diagnostic is enabled by default.
9698 **Diagnostic text:**
9700 +-------------------------------------------------+--------------------+--------------------------------------------------------+
9701 |:warning:`warning:` |nbsp| :diagtext:`ignoring '`|+------------------+|:diagtext:`' keyword on explicit template instantiation`|
9702 |                                                 ||:diagtext:`static`||                                                        |
9703 |                                                 |+------------------+|                                                        |
9704 |                                                 ||:diagtext:`inline`||                                                        |
9705 |                                                 |+------------------+|                                                        |
9706 +-------------------------------------------------+--------------------+--------------------------------------------------------+
9709 -Wstatic-local-in-inline
9710 ------------------------
9711 This diagnostic is enabled by default.
9713 **Diagnostic text:**
9715 +--------------------------------------------------------------------------------------------------------------------------------+
9716 |:warning:`warning:` |nbsp| :diagtext:`non-constant static local variable in inline function may be different in different files`|
9717 +--------------------------------------------------------------------------------------------------------------------------------+
9720 -Wstatic-self-init
9721 ------------------
9722 This diagnostic is enabled by default.
9724 **Diagnostic text:**
9726 +----------------------------------------------------------------------------------------------------------------------------------------------------+
9727 |:warning:`warning:` |nbsp| :diagtext:`static variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is suspiciously used within its own initialization`|
9728 +----------------------------------------------------------------------------------------------------------------------------------------------------+
9731 -Wstrict-aliasing
9732 -----------------
9733 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
9735 -Wstrict-aliasing=0
9736 -------------------
9737 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
9739 -Wstrict-aliasing=1
9740 -------------------
9741 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
9743 -Wstrict-aliasing=2
9744 -------------------
9745 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
9747 -Wstrict-overflow
9748 -----------------
9749 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
9751 -Wstrict-overflow=0
9752 -------------------
9753 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
9755 -Wstrict-overflow=1
9756 -------------------
9757 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
9759 -Wstrict-overflow=2
9760 -------------------
9761 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
9763 -Wstrict-overflow=3
9764 -------------------
9765 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
9767 -Wstrict-overflow=4
9768 -------------------
9769 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
9771 -Wstrict-overflow=5
9772 -------------------
9773 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
9775 -Wstrict-prototypes
9776 -------------------
9777 **Diagnostic text:**
9779 +---------------------------------------------------+--------------------------------------------------------------+-------------------------------+
9780 |:warning:`warning:` |nbsp| :diagtext:`this` |nbsp| |+------------------------------------------------------------+| |nbsp| :diagtext:`a prototype`|
9781 |                                                   ||:diagtext:`function declaration is not`                     ||                               |
9782 |                                                   |+------------------------------------------------------------+|                               |
9783 |                                                   ||:diagtext:`block declaration is not`                        ||                               |
9784 |                                                   |+------------------------------------------------------------+|                               |
9785 |                                                   ||:diagtext:`old-style function definition is not preceded by`||                               |
9786 |                                                   |+------------------------------------------------------------+|                               |
9787 +---------------------------------------------------+--------------------------------------------------------------+-------------------------------+
9790 -Wstrict-prototypes
9791 -------------------
9792 **Diagnostic text:**
9794 +---------------------------------------------------+--------------------------------------------------------------+-------------------------------+
9795 |:warning:`warning:` |nbsp| :diagtext:`this` |nbsp| |+------------------------------------------------------------+| |nbsp| :diagtext:`a prototype`|
9796 |                                                   ||:diagtext:`function declaration is not`                     ||                               |
9797 |                                                   |+------------------------------------------------------------+|                               |
9798 |                                                   ||:diagtext:`block declaration is not`                        ||                               |
9799 |                                                   |+------------------------------------------------------------+|                               |
9800 |                                                   ||:diagtext:`old-style function definition is not preceded by`||                               |
9801 |                                                   |+------------------------------------------------------------+|                               |
9802 +---------------------------------------------------+--------------------------------------------------------------+-------------------------------+
9805 -Wstrict-selector-match
9806 -----------------------
9807 **Diagnostic text:**
9809 +--------------------------------------------------------------------------------------------------------------+
9810 |:warning:`warning:` |nbsp| :diagtext:`multiple methods named` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found`|
9811 +--------------------------------------------------------------------------------------------------------------+
9814 -Wstring-compare
9815 ----------------
9816 This diagnostic is enabled by default.
9818 **Diagnostic text:**
9820 +---------------------------------------------------------------------------+------------------------------+--------------------------------------------------------+
9821 |:warning:`warning:` |nbsp| :diagtext:`result of comparison against` |nbsp| |+----------------------------+| |nbsp| :diagtext:`is unspecified (use strncmp instead)`|
9822 |                                                                           ||:diagtext:`a string literal`||                                                        |
9823 |                                                                           |+----------------------------+|                                                        |
9824 |                                                                           ||:diagtext:`@encode`         ||                                                        |
9825 |                                                                           |+----------------------------+|                                                        |
9826 +---------------------------------------------------------------------------+------------------------------+--------------------------------------------------------+
9829 -Wstring-conversion
9830 -------------------
9831 **Diagnostic text:**
9833 +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
9834 |:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns string literal into bool:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
9835 +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
9838 -Wstring-plus-char
9839 ------------------
9840 This diagnostic is enabled by default.
9842 **Diagnostic text:**
9844 +------------------------------------------------------------------------------------------------------------------------------------------+
9845 |:warning:`warning:` |nbsp| :diagtext:`adding` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to a string pointer does not append to the string`|
9846 +------------------------------------------------------------------------------------------------------------------------------------------+
9849 -Wstring-plus-int
9850 -----------------
9851 This diagnostic is enabled by default.
9853 **Diagnostic text:**
9855 +----------------------------------------------------------------------------------------------------------------------------------+
9856 |:warning:`warning:` |nbsp| :diagtext:`adding` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to a string does not append to the string`|
9857 +----------------------------------------------------------------------------------------------------------------------------------+
9860 -Wstrlcpy-strlcat-size
9861 ----------------------
9862 This diagnostic is enabled by default.
9864 **Diagnostic text:**
9866 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9867 |: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`|
9868 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9871 -Wstrncat-size
9872 --------------
9873 This diagnostic is enabled by default.
9875 **Diagnostic text:**
9877 +--------------------------------------------------------------------------------------------------------------------------------+
9878 |:warning:`warning:` |nbsp| :diagtext:`the value of the size argument in 'strncat' is too large, might lead to a buffer overflow`|
9879 +--------------------------------------------------------------------------------------------------------------------------------+
9881 +-------------------------------------------------------------------------------------------------------+
9882 |:warning:`warning:` |nbsp| :diagtext:`size argument in 'strncat' call appears to be size of the source`|
9883 +-------------------------------------------------------------------------------------------------------+
9885 +-------------------------------------------------------------------------------------------+
9886 |:warning:`warning:` |nbsp| :diagtext:`the value of the size argument to 'strncat' is wrong`|
9887 +-------------------------------------------------------------------------------------------+
9890 -Wsuper-class-method-mismatch
9891 -----------------------------
9892 **Diagnostic text:**
9894 +--------------------------------------------------------------------------------------------------------------------------------+
9895 |:warning:`warning:` |nbsp| :diagtext:`method parameter type` |nbsp| :diagtext:`does not match super class method parameter type`|
9896 +--------------------------------------------------------------------------------------------------------------------------------+
9899 -Wswitch
9900 --------
9901 This diagnostic is enabled by default.
9903 **Diagnostic text:**
9905 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9906 |:warning:`warning:` |nbsp| :diagtext:`overflow converting case value to switch condition type (`:placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`:diagtext:`)`|
9907 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9909 +---------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9910 |:warning:`warning:` |nbsp| |+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
9911 |                           ||+-----------------------------------------------------------------------------------------------+                                                                                                            ||
9912 |                           |||:diagtext:`:enumeration value` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not handled in switch`|                                                                                                            ||
9913 |                           ||+-----------------------------------------------------------------------------------------------+                                                                                                            ||
9914 |                           |+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
9915 |                           ||+-----------------------------------------------------------------------------------------------------------------------------------------------+                                                            ||
9916 |                           |||:diagtext:`:enumeration values` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C` |nbsp| :diagtext:`not handled in switch`|                                                            ||
9917 |                           ||+-----------------------------------------------------------------------------------------------------------------------------------------------+                                                            ||
9918 |                           |+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
9919 |                           ||+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+                             ||
9920 |                           |||:diagtext:`:enumeration values` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D` |nbsp| :diagtext:`not handled in switch`|                             ||
9921 |                           ||+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+                             ||
9922 |                           |+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
9923 |                           ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
9924 |                           |||:diagtext:`:`:placeholder:`A` |nbsp| :diagtext:`enumeration values not handled in switch:` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`...`|||
9925 |                           ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
9926 |                           |+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
9927 +---------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9929 +------------------------------------------------------------------------------------------------+
9930 |:warning:`warning:` |nbsp| :diagtext:`case value not in enumerated type` |nbsp| :placeholder:`A`|
9931 +------------------------------------------------------------------------------------------------+
9934 -Wswitch-bool
9935 -------------
9936 This diagnostic is enabled by default.
9938 **Diagnostic text:**
9940 +-------------------------------------------------------------------------+
9941 |:warning:`warning:` |nbsp| :diagtext:`switch condition has boolean value`|
9942 +-------------------------------------------------------------------------+
9945 -Wswitch-default
9946 ----------------
9947 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
9949 -Wswitch-enum
9950 -------------
9951 **Diagnostic text:**
9953 +---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9954 |:warning:`warning:` |nbsp| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
9955 |                           ||+----------------------------------------------------------------------------------------------------------+                                                                                                            ||
9956 |                           |||:diagtext:`:enumeration value` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not explicitly handled in switch`|                                                                                                            ||
9957 |                           ||+----------------------------------------------------------------------------------------------------------+                                                                                                            ||
9958 |                           |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
9959 |                           ||+----------------------------------------------------------------------------------------------------------------------------------------------------------+                                                            ||
9960 |                           |||:diagtext:`:enumeration values` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C` |nbsp| :diagtext:`not explicitly handled in switch`|                                                            ||
9961 |                           ||+----------------------------------------------------------------------------------------------------------------------------------------------------------+                                                            ||
9962 |                           |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
9963 |                           ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+                             ||
9964 |                           |||:diagtext:`:enumeration values` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D` |nbsp| :diagtext:`not explicitly handled in switch`|                             ||
9965 |                           ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+                             ||
9966 |                           |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
9967 |                           ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
9968 |                           |||:diagtext:`:`:placeholder:`A` |nbsp| :diagtext:`enumeration values not explicitly handled in switch:` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`...`|||
9969 |                           ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
9970 |                           |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
9971 +---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9974 -Wsync-fetch-and-nand-semantics-changed
9975 ---------------------------------------
9976 This diagnostic is enabled by default.
9978 **Diagnostic text:**
9980 +-------------------------------------------------------------------------------------------------------------------------------------------+
9981 |:warning:`warning:` |nbsp| :diagtext:`the semantics of this intrinsic changed with GCC version 4.4 - the newer semantics are provided here`|
9982 +-------------------------------------------------------------------------------------------------------------------------------------------+
9985 -Wsynth
9986 -------
9987 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
9989 -Wtautological-compare
9990 ----------------------
9991 Some of the diagnostics controlled by this flag are enabled by default.
9993 Also controls `-Wtautological-constant-compare`_, `-Wtautological-overlap-compare`_, `-Wtautological-pointer-compare`_, `-Wtautological-undefined-compare`_.
9995 **Diagnostic text:**
9997 +---------------------------+---------------------------+--------------------------------------------------+------------------------+
9998 |:warning:`warning:` |nbsp| |+-------------------------+|:diagtext:`comparison always evaluates to` |nbsp| |+----------------------+|
9999 |                           ||:diagtext:`self-`        ||                                                  ||:diagtext:`false`     ||
10000 |                           |+-------------------------+|                                                  |+----------------------+|
10001 |                           ||:diagtext:`array` |nbsp| ||                                                  ||:diagtext:`true`      ||
10002 |                           |+-------------------------+|                                                  |+----------------------+|
10003 |                           |                           |                                                  ||:diagtext:`a constant`||
10004 |                           |                           |                                                  |+----------------------+|
10005 +---------------------------+---------------------------+--------------------------------------------------+------------------------+
10007 +-------------------------------------------------------------------------------------+-------------------+
10008 |:warning:`warning:` |nbsp| :diagtext:`bitwise comparison always evaluates to` |nbsp| |+-----------------+|
10009 |                                                                                     ||:diagtext:`false`||
10010 |                                                                                     |+-----------------+|
10011 |                                                                                     ||:diagtext:`true` ||
10012 |                                                                                     |+-----------------+|
10013 +-------------------------------------------------------------------------------------+-------------------+
10016 -Wtautological-constant-compare
10017 -------------------------------
10018 This diagnostic is enabled by default.
10020 Also controls `-Wtautological-constant-out-of-range-compare`_, `-Wtautological-unsigned-enum-zero-compare`_, `-Wtautological-unsigned-zero-compare`_.
10022 **Diagnostic text:**
10024 +---------------------------------------------------------+------------------+--------------------------------+------------------+-------------------------------------+-------------------+
10025 |:warning:`warning:` |nbsp| :diagtext:`comparison` |nbsp| |+----------------+| |nbsp| :placeholder:`C` |nbsp| |+----------------+| |nbsp| :diagtext:`is always` |nbsp| |+-----------------+|
10026 |                                                         ||:placeholder:`D`||                                ||:placeholder:`B`||                                     ||:diagtext:`false`||
10027 |                                                         |+----------------+|                                |+----------------+|                                     |+-----------------+|
10028 |                                                         ||:placeholder:`B`||                                ||:placeholder:`D`||                                     ||:diagtext:`true` ||
10029 |                                                         |+----------------+|                                |+----------------+|                                     |+-----------------+|
10030 +---------------------------------------------------------+------------------+--------------------------------+------------------+-------------------------------------+-------------------+
10033 -Wtautological-constant-out-of-range-compare
10034 --------------------------------------------
10035 This diagnostic is enabled by default.
10037 **Diagnostic text:**
10039 +------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-------------------------------------+-------------------+
10040 |:warning:`warning:` |nbsp| :diagtext:`comparison of` |nbsp| |+----------------------------------------------+| |nbsp| :diagtext:`with` |nbsp| |+--------------------------------------------------------+| |nbsp| :diagtext:`is always` |nbsp| |+-----------------+|
10041 |                                                            ||+--------------------------------------------+||                                ||+------------------------------------------------------+||                                     ||:diagtext:`false`||
10042 |                                                            |||:diagtext:`constant` |nbsp| :placeholder:`A`|||                                |||:diagtext:`expression of type` |nbsp| :placeholder:`C`|||                                     |+-----------------+|
10043 |                                                            ||+--------------------------------------------+||                                ||+------------------------------------------------------+||                                     ||:diagtext:`true` ||
10044 |                                                            |+----------------------------------------------+|                                |+--------------------------------------------------------+|                                     |+-----------------+|
10045 |                                                            ||:diagtext:`true`                              ||                                ||:diagtext:`boolean expression`                          ||                                     |                   |
10046 |                                                            |+----------------------------------------------+|                                |+--------------------------------------------------------+|                                     |                   |
10047 |                                                            ||:diagtext:`false`                             ||                                |                                                          |                                     |                   |
10048 |                                                            |+----------------------------------------------+|                                |                                                          |                                     |                   |
10049 +------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-------------------------------------+-------------------+
10052 -Wtautological-overlap-compare
10053 ------------------------------
10054 **Diagnostic text:**
10056 +-----------------------------------------------------------------------------------------+-------------------+
10057 |:warning:`warning:` |nbsp| :diagtext:`overlapping comparisons always evaluate to` |nbsp| |+-----------------+|
10058 |                                                                                         ||:diagtext:`false`||
10059 |                                                                                         |+-----------------+|
10060 |                                                                                         ||:diagtext:`true` ||
10061 |                                                                                         |+-----------------+|
10062 +-----------------------------------------------------------------------------------------+-------------------+
10065 -Wtautological-pointer-compare
10066 ------------------------------
10067 This diagnostic is enabled by default.
10069 **Diagnostic text:**
10071 +--------------------------------------------------------------------+---------------------------+----------------------------------------------------------+-------------------------+----------------------------------------+-------------------+--------------------------------+
10072 |: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`|
10073 |                                                                    ||:diagtext:`function call`||                                                          ||:diagtext:`not` |nbsp| ||                                        ||:diagtext:`true` ||                                |
10074 |                                                                    |+-------------------------+|                                                          |+-----------------------+|                                        |+-----------------+|                                |
10075 |                                                                    ||:diagtext:`parameter`    ||                                                          ||                       ||                                        ||:diagtext:`false`||                                |
10076 |                                                                    |+-------------------------+|                                                          |+-----------------------+|                                        |+-----------------+|                                |
10077 +--------------------------------------------------------------------+---------------------------+----------------------------------------------------------+-------------------------+----------------------------------------+-------------------+--------------------------------+
10079 +------------------------------------------------------------+------------------------+----------------------------------------------------------+-------------------------+-----------------------------------------------------+-------------------+
10080 |:warning:`warning:` |nbsp| :diagtext:`comparison of` |nbsp| |+----------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`'` |nbsp| |+-----------------------+|:diagtext:`equal to a null pointer is always` |nbsp| |+-----------------+|
10081 |                                                            ||:diagtext:`address of`||                                                          ||:diagtext:`not` |nbsp| ||                                                     ||:diagtext:`true` ||
10082 |                                                            |+----------------------+|                                                          |+-----------------------+|                                                     |+-----------------+|
10083 |                                                            ||:diagtext:`function`  ||                                                          ||                       ||                                                     ||:diagtext:`false`||
10084 |                                                            |+----------------------+|                                                          |+-----------------------+|                                                     |+-----------------+|
10085 |                                                            ||:diagtext:`array`     ||                                                          |                         |                                                     |                   |
10086 |                                                            |+----------------------+|                                                          |                         |                                                     |                   |
10087 +------------------------------------------------------------+------------------------+----------------------------------------------------------+-------------------------+-----------------------------------------------------+-------------------+
10090 -Wtautological-undefined-compare
10091 --------------------------------
10092 This diagnostic is enabled by default.
10094 **Diagnostic text:**
10096 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
10097 |: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| |+-----------------+|
10098 |                                                                                                                                                                               ||:diagtext:`true` ||
10099 |                                                                                                                                                                               |+-----------------+|
10100 |                                                                                                                                                                               ||:diagtext:`false`||
10101 |                                                                                                                                                                               |+-----------------+|
10102 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
10104 +------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
10105 |:warning:`warning:` |nbsp| :diagtext:`'this' pointer cannot be null in well-defined C++ code; comparison may be assumed to always evaluate to` |nbsp| |+-----------------+|
10106 |                                                                                                                                                      ||:diagtext:`true` ||
10107 |                                                                                                                                                      |+-----------------+|
10108 |                                                                                                                                                      ||:diagtext:`false`||
10109 |                                                                                                                                                      |+-----------------+|
10110 +------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
10113 -Wtautological-unsigned-enum-zero-compare
10114 -----------------------------------------
10115 This diagnostic is enabled by default.
10117 **Diagnostic text:**
10119 +------------------------------------------------------------+--------------------------------------+--------------------------------+--------------------------------------+-------------------------------------+-------------------+
10120 |:warning:`warning:` |nbsp| :diagtext:`comparison of` |nbsp| |+------------------------------------+| |nbsp| :placeholder:`C` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`is always` |nbsp| |+-----------------+|
10121 |                                                            ||:placeholder:`D`                    ||                                ||:diagtext:`unsigned enum expression`||                                     ||:diagtext:`false`||
10122 |                                                            |+------------------------------------+|                                |+------------------------------------+|                                     |+-----------------+|
10123 |                                                            ||:diagtext:`unsigned enum expression`||                                ||:placeholder:`D`                    ||                                     ||:diagtext:`true` ||
10124 |                                                            |+------------------------------------+|                                |+------------------------------------+|                                     |+-----------------+|
10125 +------------------------------------------------------------+--------------------------------------+--------------------------------+--------------------------------------+-------------------------------------+-------------------+
10128 -Wtautological-unsigned-zero-compare
10129 ------------------------------------
10130 This diagnostic is enabled by default.
10132 **Diagnostic text:**
10134 +------------------------------------------------------------+---------------------------------+--------------------------------+---------------------------------+-------------------------------------+-------------------+
10135 |:warning:`warning:` |nbsp| :diagtext:`comparison of` |nbsp| |+-------------------------------+| |nbsp| :placeholder:`C` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`is always` |nbsp| |+-----------------+|
10136 |                                                            ||:placeholder:`D`               ||                                ||:diagtext:`unsigned expression`||                                     ||:diagtext:`false`||
10137 |                                                            |+-------------------------------+|                                |+-------------------------------+|                                     |+-----------------+|
10138 |                                                            ||:diagtext:`unsigned expression`||                                ||:placeholder:`D`               ||                                     ||:diagtext:`true` ||
10139 |                                                            |+-------------------------------+|                                |+-------------------------------+|                                     |+-----------------+|
10140 +------------------------------------------------------------+---------------------------------+--------------------------------+---------------------------------+-------------------------------------+-------------------+
10143 -Wtentative-definition-incomplete-type
10144 --------------------------------------
10145 This diagnostic is enabled by default.
10147 **Diagnostic text:**
10149 +---------------------------------------------------------------------------------------------------------------------------------------------------+
10150 |:warning:`warning:` |nbsp| :diagtext:`tentative definition of variable with internal linkage has incomplete non-array type` |nbsp| :placeholder:`A`|
10151 +---------------------------------------------------------------------------------------------------------------------------------------------------+
10154 -Wthread-safety
10155 ---------------
10156 Controls `-Wthread-safety-analysis`_, `-Wthread-safety-attributes`_, `-Wthread-safety-precise`_, `-Wthread-safety-reference`_.
10159 -Wthread-safety-analysis
10160 ------------------------
10161 **Diagnostic text:**
10163 +----------------------------------------------------------------------------------------------------------------------------------------------------+
10164 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' must be acquired before '`:placeholder:`C`:diagtext:`'`|
10165 +----------------------------------------------------------------------------------------------------------------------------------------------------+
10167 +---------------------------------------------------------------------------------------------------------------------------------+
10168 |:warning:`warning:` |nbsp| :diagtext:`Cycle in acquired\_before/after dependencies, starting with '`:placeholder:`A`:diagtext:`'`|
10169 +---------------------------------------------------------------------------------------------------------------------------------+
10171 +---------------------------------------------------------------------+
10172 |:warning:`warning:` |nbsp| :diagtext:`cannot resolve lock expression`|
10173 +---------------------------------------------------------------------+
10175 +-----------------------------------------------------------------------------------------------------------------------------------------------+
10176 |:warning:`warning:` |nbsp| :diagtext:`acquiring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' that is already held`|
10177 +-----------------------------------------------------------------------------------------------------------------------------------------------+
10179 +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
10180 |:warning:`warning:` |nbsp| :diagtext:`expecting` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' to be held at start of each loop`|
10181 +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
10183 +------------------------------------------------------------------------------------------------------------------------------------------------------------+
10184 |:warning:`warning:` |nbsp| :diagtext:`expecting` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' to be held at the end of function`|
10185 +------------------------------------------------------------------------------------------------------------------------------------------------------------+
10187 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10188 |:warning:`warning:` |nbsp| :diagtext:`cannot call function '`:placeholder:`B`:diagtext:`' while` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`C`:diagtext:`' is held`|
10189 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10191 +---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
10192 |:warning:`warning:` |nbsp| :diagtext:`calling function '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
10193 |                                                                                                                                       ||+------------------------------------------+            ||
10194 |                                                                                                                                       |||:diagtext:`'`:placeholder:`C`:diagtext:`'`|            ||
10195 |                                                                                                                                       ||+------------------------------------------+            ||
10196 |                                                                                                                                       |+--------------------------------------------------------+|
10197 |                                                                                                                                       ||+------------------------------------------------------+||
10198 |                                                                                                                                       |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
10199 |                                                                                                                                       ||+------------------------------------------------------+||
10200 |                                                                                                                                       |+--------------------------------------------------------+|
10201 +---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
10203 +--------------------------------------------------------------------------------------------------------------------------------------------------+
10204 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is acquired exclusively and shared in the same scope`|
10205 +--------------------------------------------------------------------------------------------------------------------------------------------------+
10207 +------------------------------------------------------------------------------------------------------------------------------------+
10208 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is not held on every path through here`|
10209 +------------------------------------------------------------------------------------------------------------------------------------+
10211 +----------------------------------------------------------------------------------------------------------------------------------+
10212 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is still held at the end of function`|
10213 +----------------------------------------------------------------------------------------------------------------------------------+
10215 +--------------------------------------------------------------------------------------------------------------------------------------------+
10216 |:warning:`warning:` |nbsp| :diagtext:`releasing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' that was not held`|
10217 +--------------------------------------------------------------------------------------------------------------------------------------------+
10219 +----------------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+-----------------------+--------------------------+
10220 |:warning:`warning:` |nbsp| :diagtext:`releasing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' using` |nbsp| |+---------------------+| |nbsp| :diagtext:`access, expected` |nbsp| |+---------------------+| |nbsp| :diagtext:`access`|
10221 |                                                                                                                                        ||:diagtext:`shared`   ||                                            ||:diagtext:`shared`   ||                          |
10222 |                                                                                                                                        |+---------------------+|                                            |+---------------------+|                          |
10223 |                                                                                                                                        ||:diagtext:`exclusive`||                                            ||:diagtext:`exclusive`||                          |
10224 |                                                                                                                                        |+---------------------+|                                            |+---------------------+|                          |
10225 +----------------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+-----------------------+--------------------------+
10227 +---------------------------+---------------------+---------------------------------------------------------------------------------------------------+-----------------------------------+
10228 |:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by '`:placeholder:`A`:diagtext:`' requires holding` |nbsp| |+---------------------------------+|
10229 |                           ||:diagtext:`reading`||                                                                                                   ||:diagtext:`any mutex`            ||
10230 |                           |+-------------------+|                                                                                                   |+---------------------------------+|
10231 |                           ||:diagtext:`writing`||                                                                                                   ||:diagtext:`any mutex exclusively`||
10232 |                           |+-------------------+|                                                                                                   |+---------------------------------+|
10233 +---------------------------+---------------------+---------------------------------------------------------------------------------------------------+-----------------------------------+
10235 +---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
10236 |:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
10237 |                           ||:diagtext:`reading`||                                                                                                                           ||+------------------------------------------+            ||
10238 |                           |+-------------------+|                                                                                                                           |||:diagtext:`'`:placeholder:`C`:diagtext:`'`|            ||
10239 |                           ||:diagtext:`writing`||                                                                                                                           ||+------------------------------------------+            ||
10240 |                           |+-------------------+|                                                                                                                           |+--------------------------------------------------------+|
10241 |                           |                     |                                                                                                                           ||+------------------------------------------------------+||
10242 |                           |                     |                                                                                                                           |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
10243 |                           |                     |                                                                                                                           ||+------------------------------------------------------+||
10244 |                           |                     |                                                                                                                           |+--------------------------------------------------------+|
10245 +---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
10247 +---------------------------+---------------------+------------------------------------------------------------------------------------+-----------------------------------+
10248 |:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable '`:placeholder:`A`:diagtext:`' requires holding` |nbsp| |+---------------------------------+|
10249 |                           ||:diagtext:`reading`||                                                                                    ||:diagtext:`any mutex`            ||
10250 |                           |+-------------------+|                                                                                    |+---------------------------------+|
10251 |                           ||:diagtext:`writing`||                                                                                    ||:diagtext:`any mutex exclusively`||
10252 |                           |+-------------------+|                                                                                    |+---------------------------------+|
10253 +---------------------------+---------------------+------------------------------------------------------------------------------------+-----------------------------------+
10255 +---------------------------+---------------------+------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
10256 |:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
10257 |                           ||:diagtext:`reading`||                                                                                                            ||+------------------------------------------+            ||
10258 |                           |+-------------------+|                                                                                                            |||:diagtext:`'`:placeholder:`C`:diagtext:`'`|            ||
10259 |                           ||:diagtext:`writing`||                                                                                                            ||+------------------------------------------+            ||
10260 |                           |+-------------------+|                                                                                                            |+--------------------------------------------------------+|
10261 |                           |                     |                                                                                                            ||+------------------------------------------------------+||
10262 |                           |                     |                                                                                                            |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
10263 |                           |                     |                                                                                                            ||+------------------------------------------------------+||
10264 |                           |                     |                                                                                                            |+--------------------------------------------------------+|
10265 +---------------------------+---------------------+------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
10268 -Wthread-safety-attributes
10269 --------------------------
10270 **Diagnostic text:**
10272 +----------------------------------------------------------------------------------------------------------------------------------------+
10273 |:warning:`warning:` |nbsp| :diagtext:`invalid capability name '`:placeholder:`A`:diagtext:`'; capability name must be 'mutex' or 'role'`|
10274 +----------------------------------------------------------------------------------------------------------------------------------------+
10276 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10277 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute requires arguments whose type is annotated with 'capability' attribute; type here is` |nbsp| :placeholder:`B`|
10278 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10280 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
10281 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute can only be applied in a context annotated with 'capability("mutex")' attribute`|
10282 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
10284 +----------------------------------------------------------------------------------------------------------------------------------+
10285 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`only applies to pointer types; type here is` |nbsp| :placeholder:`B`|
10286 +----------------------------------------------------------------------------------------------------------------------------------+
10288 +------------------------------------------------------------------------------------------------------------------------------------+
10289 |:warning:`warning:` |nbsp| :diagtext:`ignoring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute because its argument is invalid`|
10290 +------------------------------------------------------------------------------------------------------------------------------------+
10293 -Wthread-safety-beta
10294 --------------------
10295 **Diagnostic text:**
10297 +------------------------------------------------------------------+
10298 |:warning:`warning:` |nbsp| :diagtext:`Thread safety beta warning.`|
10299 +------------------------------------------------------------------+
10302 -Wthread-safety-negative
10303 ------------------------
10304 **Diagnostic text:**
10306 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10307 |:warning:`warning:` |nbsp| :diagtext:`acquiring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' requires negative capability '`:placeholder:`C`:diagtext:`'`|
10308 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10311 -Wthread-safety-precise
10312 -----------------------
10313 **Diagnostic text:**
10315 +---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
10316 |:warning:`warning:` |nbsp| :diagtext:`calling function '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
10317 |                                                                                                                                       ||+------------------------------------------+            ||
10318 |                                                                                                                                       |||:diagtext:`'`:placeholder:`C`:diagtext:`'`|            ||
10319 |                                                                                                                                       ||+------------------------------------------+            ||
10320 |                                                                                                                                       |+--------------------------------------------------------+|
10321 |                                                                                                                                       ||+------------------------------------------------------+||
10322 |                                                                                                                                       |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
10323 |                                                                                                                                       ||+------------------------------------------------------+||
10324 |                                                                                                                                       |+--------------------------------------------------------+|
10325 +---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
10327 +---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
10328 |:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
10329 |                           ||:diagtext:`reading`||                                                                                                                           ||+------------------------------------------+            ||
10330 |                           |+-------------------+|                                                                                                                           |||:diagtext:`'`:placeholder:`C`:diagtext:`'`|            ||
10331 |                           ||:diagtext:`writing`||                                                                                                                           ||+------------------------------------------+            ||
10332 |                           |+-------------------+|                                                                                                                           |+--------------------------------------------------------+|
10333 |                           |                     |                                                                                                                           ||+------------------------------------------------------+||
10334 |                           |                     |                                                                                                                           |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
10335 |                           |                     |                                                                                                                           ||+------------------------------------------------------+||
10336 |                           |                     |                                                                                                                           |+--------------------------------------------------------+|
10337 +---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
10339 +---------------------------+---------------------+------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
10340 |:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
10341 |                           ||:diagtext:`reading`||                                                                                                            ||+------------------------------------------+            ||
10342 |                           |+-------------------+|                                                                                                            |||:diagtext:`'`:placeholder:`C`:diagtext:`'`|            ||
10343 |                           ||:diagtext:`writing`||                                                                                                            ||+------------------------------------------+            ||
10344 |                           |+-------------------+|                                                                                                            |+--------------------------------------------------------+|
10345 |                           |                     |                                                                                                            ||+------------------------------------------------------+||
10346 |                           |                     |                                                                                                            |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
10347 |                           |                     |                                                                                                            ||+------------------------------------------------------+||
10348 |                           |                     |                                                                                                            |+--------------------------------------------------------+|
10349 +---------------------------+---------------------+------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
10352 -Wthread-safety-reference
10353 -------------------------
10354 **Diagnostic text:**
10356 +----------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
10357 |:warning:`warning:` |nbsp| :diagtext:`passing variable '`:placeholder:`B`:diagtext:`' by reference requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
10358 |                                                                                                                                                    ||+------------------------------------------+            ||
10359 |                                                                                                                                                    |||:diagtext:`'`:placeholder:`C`:diagtext:`'`|            ||
10360 |                                                                                                                                                    ||+------------------------------------------+            ||
10361 |                                                                                                                                                    |+--------------------------------------------------------+|
10362 |                                                                                                                                                    ||+------------------------------------------------------+||
10363 |                                                                                                                                                    |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
10364 |                                                                                                                                                    ||+------------------------------------------------------+||
10365 |                                                                                                                                                    |+--------------------------------------------------------+|
10366 +----------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
10368 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
10369 |:warning:`warning:` |nbsp| :diagtext:`passing the value that '`:placeholder:`B`:diagtext:`' points to by reference requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
10370 |                                                                                                                                                                    ||+------------------------------------------+            ||
10371 |                                                                                                                                                                    |||:diagtext:`'`:placeholder:`C`:diagtext:`'`|            ||
10372 |                                                                                                                                                                    ||+------------------------------------------+            ||
10373 |                                                                                                                                                                    |+--------------------------------------------------------+|
10374 |                                                                                                                                                                    ||+------------------------------------------------------+||
10375 |                                                                                                                                                                    |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
10376 |                                                                                                                                                                    ||+------------------------------------------------------+||
10377 |                                                                                                                                                                    |+--------------------------------------------------------+|
10378 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
10381 -Wthread-safety-verbose
10382 -----------------------
10383 **Diagnostic text:**
10385 +---------------------------------------------------------------------+
10386 |:warning:`warning:` |nbsp| :diagtext:`Thread safety verbose warning.`|
10387 +---------------------------------------------------------------------+
10390 -Wtrigraphs
10391 -----------
10392 This diagnostic is enabled by default.
10394 **Diagnostic text:**
10396 +-----------------------------------------------------------------------------------------------------+
10397 |:warning:`warning:` |nbsp| :diagtext:`trigraph converted to '`:placeholder:`A`:diagtext:`' character`|
10398 +-----------------------------------------------------------------------------------------------------+
10400 +------------------------------------------------------------------+
10401 |:warning:`warning:` |nbsp| :diagtext:`trigraph ends block comment`|
10402 +------------------------------------------------------------------+
10404 +-------------------------------------------------------+
10405 |:warning:`warning:` |nbsp| :diagtext:`trigraph ignored`|
10406 +-------------------------------------------------------+
10408 +-------------------------------------------------------------------------------+
10409 |:warning:`warning:` |nbsp| :diagtext:`ignored trigraph would end block comment`|
10410 +-------------------------------------------------------------------------------+
10413 -Wtype-limits
10414 -------------
10415 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
10417 -Wtype-safety
10418 -------------
10419 This diagnostic is enabled by default.
10421 **Diagnostic text:**
10423 +----------------------------------------------------------------------------------------------------------------------------+
10424 |:warning:`warning:` |nbsp| :diagtext:`specified` |nbsp| :placeholder:`A` |nbsp| :diagtext:`type tag requires a null pointer`|
10425 +----------------------------------------------------------------------------------------------------------------------------+
10427 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------+
10428 |:warning:`warning:` |nbsp| :diagtext:`argument type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`doesn't match specified` |nbsp| :placeholder:`B` |nbsp| :diagtext:`type tag` |nbsp| |+---------------------------------------------------+|
10429 |                                                                                                                                                                                   ||+-------------------------------------------------+||
10430 |                                                                                                                                                                                   |||:diagtext:`that requires` |nbsp| :placeholder:`D`|||
10431 |                                                                                                                                                                                   ||+-------------------------------------------------+||
10432 |                                                                                                                                                                                   |+---------------------------------------------------+|
10433 |                                                                                                                                                                                   ||                                                   ||
10434 |                                                                                                                                                                                   |+---------------------------------------------------+|
10435 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------+
10437 +---------------------------------------------------------------------------------------------------+
10438 |:warning:`warning:` |nbsp| :diagtext:`this type tag was not designed to be used with this function`|
10439 +---------------------------------------------------------------------------------------------------+
10442 -Wtypedef-redefinition
10443 ----------------------
10444 This diagnostic is enabled by default.
10446 **Diagnostic text:**
10448 +--------------------------------------------------------------------------------------------------------------------------+
10449 |:warning:`warning:` |nbsp| :diagtext:`redefinition of typedef` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C11 feature`|
10450 +--------------------------------------------------------------------------------------------------------------------------+
10453 -Wtypename-missing
10454 ------------------
10455 This diagnostic is enabled by default.
10457 **Diagnostic text:**
10459 +-------------------------------------------------------------------------------------------------------------------------------------+
10460 |:warning:`warning:` |nbsp| :diagtext:`missing 'typename' prior to dependent type name '`:placeholder:`A`:placeholder:`B`:diagtext:`'`|
10461 +-------------------------------------------------------------------------------------------------------------------------------------+
10464 -Wunable-to-open-stats-file
10465 ---------------------------
10466 This diagnostic is enabled by default.
10468 **Diagnostic text:**
10470 +-------------------------------------------------------------------------------------------------------------------------------------------+
10471 |:warning:`warning:` |nbsp| :diagtext:`unable to open statistics output file '`:placeholder:`A`:diagtext:`': '`:placeholder:`B`:diagtext:`'`|
10472 +-------------------------------------------------------------------------------------------------------------------------------------------+
10475 -Wunavailable-declarations
10476 --------------------------
10477 This diagnostic is enabled by default.
10479 **Diagnostic text:**
10481 +----------------------------------------------------------------------------------------------------------------------+
10482 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be unavailable because the receiver type is unknown`|
10483 +----------------------------------------------------------------------------------------------------------------------+
10486 -Wundeclared-selector
10487 ---------------------
10488 **Diagnostic text:**
10490 +----------------------------------------------------------------------------------+
10491 |:warning:`warning:` |nbsp| :diagtext:`undeclared selector` |nbsp| :placeholder:`A`|
10492 +----------------------------------------------------------------------------------+
10494 +-------------------------------------------------------------------------------------------------------------------------------------------------+
10495 |:warning:`warning:` |nbsp| :diagtext:`undeclared selector` |nbsp| :placeholder:`A`:diagtext:`; did you mean` |nbsp| :placeholder:`B`:diagtext:`?`|
10496 +-------------------------------------------------------------------------------------------------------------------------------------------------+
10499 -Wundef
10500 -------
10501 **Diagnostic text:**
10503 +---------------------------------------------------------------------------------------------+
10504 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not defined, evaluates to 0`|
10505 +---------------------------------------------------------------------------------------------+
10508 -Wundefined-bool-conversion
10509 ---------------------------
10510 This diagnostic is enabled by default.
10512 **Diagnostic text:**
10514 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10515 |: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`|
10516 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10518 +-----------------------------------------------------------------------------------------------------------------------------------------------+
10519 |:warning:`warning:` |nbsp| :diagtext:`'this' pointer cannot be null in well-defined C++ code; pointer may be assumed to always convert to true`|
10520 +-----------------------------------------------------------------------------------------------------------------------------------------------+
10523 -Wundefined-func-template
10524 -------------------------
10525 **Diagnostic text:**
10527 +---------------------------------------------------------------------------------------------------------------------------------------------------------+
10528 |:warning:`warning:` |nbsp| :diagtext:`instantiation of function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`required here, but no definition is available`|
10529 +---------------------------------------------------------------------------------------------------------------------------------------------------------+
10532 -Wundefined-inline
10533 ------------------
10534 This diagnostic is enabled by default.
10536 **Diagnostic text:**
10538 +----------------------------------------------------------------------------------------------------------------+
10539 |:warning:`warning:` |nbsp| :diagtext:`inline function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not defined`|
10540 +----------------------------------------------------------------------------------------------------------------+
10543 -Wundefined-internal
10544 --------------------
10545 This diagnostic is enabled by default.
10547 **Diagnostic text:**
10549 +---------------------------+----------------------+-----------------------------------------------------------------------------------+
10550 |:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`has internal linkage but is not defined`|
10551 |                           ||:diagtext:`function`||                                                                                   |
10552 |                           |+--------------------+|                                                                                   |
10553 |                           ||:diagtext:`variable`||                                                                                   |
10554 |                           |+--------------------+|                                                                                   |
10555 +---------------------------+----------------------+-----------------------------------------------------------------------------------+
10558 -Wundefined-internal-type
10559 -------------------------
10560 **Diagnostic text:**
10562 +---------------------------------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------------------+
10563 |: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`|
10564 |                                                                                                         ||:diagtext:`function`||                                                                                  |
10565 |                                                                                                         |+--------------------+|                                                                                  |
10566 |                                                                                                         ||:diagtext:`variable`||                                                                                  |
10567 |                                                                                                         |+--------------------+|                                                                                  |
10568 +---------------------------------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------------------+
10571 -Wundefined-reinterpret-cast
10572 ----------------------------
10573 **Diagnostic text:**
10575 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10576 |: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`|
10577 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10579 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10580 |:warning:`warning:` |nbsp| :diagtext:`reinterpret\_cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has undefined behavior`|
10581 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10584 -Wundefined-var-template
10585 ------------------------
10586 This diagnostic is enabled by default.
10588 **Diagnostic text:**
10590 +---------------------------------------------------------------------------------------------------------------------------------------------------------+
10591 |:warning:`warning:` |nbsp| :diagtext:`instantiation of variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`required here, but no definition is available`|
10592 +---------------------------------------------------------------------------------------------------------------------------------------------------------+
10595 -Wunevaluated-expression
10596 ------------------------
10597 This diagnostic is enabled by default.
10599 Also controls `-Wpotentially-evaluated-expression`_.
10601 **Diagnostic text:**
10603 +-----------------------------------------------------------------------------------------------------------+
10604 |:warning:`warning:` |nbsp| :diagtext:`expression with side effects has no effect in an unevaluated context`|
10605 +-----------------------------------------------------------------------------------------------------------+
10608 -Wunguarded-availability
10609 ------------------------
10610 Some of the diagnostics controlled by this flag are enabled by default.
10612 Also controls `-Wunguarded-availability-new`_.
10614 **Diagnostic text:**
10616 +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
10617 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is only available on` |nbsp| :placeholder:`B` |nbsp| :placeholder:`C` |nbsp| :diagtext:`or newer`|
10618 +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
10621 -Wunguarded-availability-new
10622 ----------------------------
10623 This diagnostic is enabled by default.
10625 **Diagnostic text:**
10627 +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
10628 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is only available on` |nbsp| :placeholder:`B` |nbsp| :placeholder:`C` |nbsp| :diagtext:`or newer`|
10629 +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
10632 -Wunicode
10633 ---------
10634 This diagnostic is enabled by default.
10636 **Diagnostic text:**
10638 +-------------------------------------------------------------------------------------------------------------------+
10639 |:warning:`warning:` |nbsp| :diagtext:`incomplete universal character name; treating as '\\' followed by identifier`|
10640 +-------------------------------------------------------------------------------------------------------------------+
10642 +-------------------------------------------------------------------------------------------------------------------------------------------------------+
10643 |:warning:`warning:` |nbsp| :diagtext:`\\`:placeholder:`A` |nbsp| :diagtext:`used with no following hex digits; treating as '\\' followed by identifier`|
10644 +-------------------------------------------------------------------------------------------------------------------------------------------------------+
10646 +-----------------------------------------------------------------------------------------------+
10647 |:warning:`warning:` |nbsp| :diagtext:`universal character name refers to a surrogate character`|
10648 +-----------------------------------------------------------------------------------------------+
10650 +--------------------------------------------------------------------------------------------------------------------------------------+
10651 |:warning:`warning:` |nbsp| :diagtext:`universal character names are only valid in C99 or C++; treating as '\\' followed by identifier`|
10652 +--------------------------------------------------------------------------------------------------------------------------------------+
10654 +---------------------------------------------------------------------------------------------+
10655 |:warning:`warning:` |nbsp| :diagtext:`universal character names are only valid in C99 or C++`|
10656 +---------------------------------------------------------------------------------------------+
10659 -Wunicode-whitespace
10660 --------------------
10661 This diagnostic is enabled by default.
10663 **Diagnostic text:**
10665 +-------------------------------------------------------------------------------+
10666 |:warning:`warning:` |nbsp| :diagtext:`treating Unicode character as whitespace`|
10667 +-------------------------------------------------------------------------------+
10670 -Wuninitialized
10671 ---------------
10672 Some of the diagnostics controlled by this flag are enabled by default.
10674 Also controls `-Wsometimes-uninitialized`_, `-Wstatic-self-init`_.
10676 **Diagnostic text:**
10678 +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
10679 |:warning:`warning:` |nbsp| :diagtext:`base class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when used here to access` |nbsp| :placeholder:`B`|
10680 +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
10682 +-----------------------------------------------------------------------------------------------------------------------+
10683 |:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when used here`|
10684 +-----------------------------------------------------------------------------------------------------------------------+
10686 +--------------------------------------------------------------------------------------------------------------------------------------+
10687 |:warning:`warning:` |nbsp| :diagtext:`reference` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not yet bound to a value when used here`|
10688 +--------------------------------------------------------------------------------------------------------------------------------------+
10690 +------------------------------------------------------------------------------------------------------------------------------------------------+
10691 |:warning:`warning:` |nbsp| :diagtext:`block pointer variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when captured by block`|
10692 +------------------------------------------------------------------------------------------------------------------------------------------------+
10694 +---------------------------------------------------------------------------------------------------------------------------------------------------+
10695 |:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when used within its own initialization`|
10696 +---------------------------------------------------------------------------------------------------------------------------------------------------+
10698 +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
10699 |:warning:`warning:` |nbsp| :diagtext:`reference` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not yet bound to a value when used within its own initialization`|
10700 +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
10702 +------------------------------------------------------------------------------------------------------------------------+-------------------------------+
10703 |:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when` |nbsp| |+-----------------------------+|
10704 |                                                                                                                        ||:diagtext:`used here`        ||
10705 |                                                                                                                        |+-----------------------------+|
10706 |                                                                                                                        ||:diagtext:`captured by block`||
10707 |                                                                                                                        |+-----------------------------+|
10708 +------------------------------------------------------------------------------------------------------------------------+-------------------------------+
10711 -Wunknown-argument
10712 ------------------
10713 This diagnostic is enabled by default.
10715 **Diagnostic text:**
10717 +-----------------------------------------------------------------------------------------------------------+
10718 |:warning:`warning:` |nbsp| :diagtext:`unknown argument ignored in clang-cl: '`:placeholder:`A`:diagtext:`'`|
10719 +-----------------------------------------------------------------------------------------------------------+
10722 -Wunknown-attributes
10723 --------------------
10724 This diagnostic is enabled by default.
10726 **Diagnostic text:**
10728 +-----------------------------------------------------------------------------------------------------------+
10729 |:warning:`warning:` |nbsp| :diagtext:`unknown attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored`|
10730 +-----------------------------------------------------------------------------------------------------------+
10733 -Wunknown-escape-sequence
10734 -------------------------
10735 This diagnostic is enabled by default.
10737 **Diagnostic text:**
10739 +-----------------------------------------------------------------------------------------------+
10740 |:warning:`warning:` |nbsp| :diagtext:`unknown escape sequence '\\`:placeholder:`A`:diagtext:`'`|
10741 +-----------------------------------------------------------------------------------------------+
10744 -Wunknown-pragmas
10745 -----------------
10746 Some of the diagnostics controlled by this flag are enabled by default.
10748 **Diagnostic text:**
10750 +------------------------------------------------------------------------------------+
10751 |:warning:`warning:` |nbsp| :diagtext:`expected 'ON' or 'OFF' or 'DEFAULT' in pragma`|
10752 +------------------------------------------------------------------------------------+
10754 +--------------------------------------------------------------------------+
10755 |:warning:`warning:` |nbsp| :diagtext:`expected end of directive in pragma`|
10756 +--------------------------------------------------------------------------+
10758 +-----------------------------------------------------------------------+
10759 |:warning:`warning:` |nbsp| :diagtext:`unknown pragma in STDC namespace`|
10760 +-----------------------------------------------------------------------+
10762 +--------------------------------------------------------------------------------------------+
10763 |:warning:`warning:` |nbsp| :diagtext:`pragma diagnostic pop could not pop, no matching push`|
10764 +--------------------------------------------------------------------------------------------+
10766 +--------------------------------------------------------------------------------------------------------------------------+
10767 |:warning:`warning:` |nbsp| :diagtext:`pragma diagnostic expected 'error', 'warning', 'ignored', 'fatal', 'push', or 'pop'`|
10768 +--------------------------------------------------------------------------------------------------------------------------+
10770 +----------------------------------------------------------------------------------------------+
10771 |:warning:`warning:` |nbsp| :diagtext:`pragma diagnostic expected option name (e.g. "-Wundef")`|
10772 +----------------------------------------------------------------------------------------------+
10774 +----------------------------------------------------------------------------+
10775 |:warning:`warning:` |nbsp| :diagtext:`unexpected token in pragma diagnostic`|
10776 +----------------------------------------------------------------------------+
10778 +-------------------------------------------------------------+
10779 |:warning:`warning:` |nbsp| :diagtext:`unknown pragma ignored`|
10780 +-------------------------------------------------------------+
10782 +----------------------------------------------------------------------------------------------------+
10783 |:warning:`warning:` |nbsp| :diagtext:`pragma include\_alias expected '`:placeholder:`A`:diagtext:`'`|
10784 +----------------------------------------------------------------------------------------------------+
10786 +--------------------------------------------------------------------------------------+
10787 |:warning:`warning:` |nbsp| :diagtext:`pragma include\_alias expected include filename`|
10788 +--------------------------------------------------------------------------------------+
10790 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10791 |:warning:`warning:` |nbsp| :diagtext:`angle-bracketed include <`:placeholder:`A`:diagtext:`> cannot be aliased to double-quoted include "`:placeholder:`B`:diagtext:`"`|
10792 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10794 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10795 |:warning:`warning:` |nbsp| :diagtext:`double-quoted include "`:placeholder:`A`:diagtext:`" cannot be aliased to angle-bracketed include <`:placeholder:`B`:diagtext:`>`|
10796 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10798 +----------------------------------------------------------------------------------------------+
10799 |:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected '`:placeholder:`A`:diagtext:`'`|
10800 +----------------------------------------------------------------------------------------------+
10802 +--------------------------------------------------------------------------------+
10803 |:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected a warning number`|
10804 +--------------------------------------------------------------------------------+
10806 +----------------------------------------------------------------------------------------------------+
10807 |:warning:`warning:` |nbsp| :diagtext:`#pragma warning(push, level) requires a level between 0 and 4`|
10808 +----------------------------------------------------------------------------------------------------+
10810 +-----------------------------------------------------------------------------------------------------------------------------------------------+
10811 |:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected 'push', 'pop', 'default', 'disable', 'error', 'once', 'suppress', 1, 2, 3, or 4`|
10812 +-----------------------------------------------------------------------------------------------------------------------------------------------+
10814 +----------------------------------------------------------------------------------------------------+
10815 |:warning:`warning:` |nbsp| :diagtext:`pragma STDC FENV\_ACCESS ON is not supported, ignoring pragma`|
10816 +----------------------------------------------------------------------------------------------------+
10819 -Wunknown-sanitizers
10820 --------------------
10821 This diagnostic is enabled by default.
10823 **Diagnostic text:**
10825 +-----------------------------------------------------------------------------------------------+
10826 |:warning:`warning:` |nbsp| :diagtext:`unknown sanitizer '`:placeholder:`A`:diagtext:`' ignored`|
10827 +-----------------------------------------------------------------------------------------------+
10830 -Wunknown-warning-option
10831 ------------------------
10832 This diagnostic is enabled by default.
10834 **Diagnostic text:**
10836 +----------------------------------------------------------------------------------------------------+
10837 |:warning:`warning:` |nbsp| :diagtext:`unknown warning group '`:placeholder:`A`:diagtext:`', ignored`|
10838 +----------------------------------------------------------------------------------------------------+
10840 +------------------------------------------------------+---------------------+---------------------------------------------------------+--------------------------------------------------------------+
10841 |:warning:`warning:` |nbsp| :diagtext:`unknown` |nbsp| |+-------------------+| |nbsp| :diagtext:`option '`:placeholder:`B`:diagtext:`'`|+------------------------------------------------------------+|
10842 |                                                      ||:diagtext:`warning`||                                                         ||                                                            ||
10843 |                                                      |+-------------------+|                                                         |+------------------------------------------------------------+|
10844 |                                                      ||:diagtext:`remark` ||                                                         ||+----------------------------------------------------------+||
10845 |                                                      |+-------------------+|                                                         |||:diagtext:`; did you mean '`:placeholder:`D`:diagtext:`'?`|||
10846 |                                                      |                     |                                                         ||+----------------------------------------------------------+||
10847 |                                                      |                     |                                                         |+------------------------------------------------------------+|
10848 +------------------------------------------------------+---------------------+---------------------------------------------------------+--------------------------------------------------------------+
10850 +-------------------------------------------------------------------------------------------------------------------------------------------+
10851 |:warning:`warning:` |nbsp| :diagtext:`unknown` |nbsp| :placeholder:`A` |nbsp| :diagtext:`warning specifier: '`:placeholder:`B`:diagtext:`'`|
10852 +-------------------------------------------------------------------------------------------------------------------------------------------+
10855 -Wunnamed-type-template-args
10856 ----------------------------
10857 Some of the diagnostics controlled by this flag are enabled by default.
10859 Also controls `-Wc++98-compat-unnamed-type-template-args`_.
10861 **Diagnostic text:**
10863 +--------------------------------------------------------------------------+
10864 |:warning:`warning:` |nbsp| :diagtext:`template argument uses unnamed type`|
10865 +--------------------------------------------------------------------------+
10868 -Wunneeded-internal-declaration
10869 -------------------------------
10870 **Diagnostic text:**
10872 +---------------------------+----------------------+---------------------------------------------------------------------------------+
10873 |:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is not needed and will not be emitted`|
10874 |                           ||:diagtext:`function`||                                                                                 |
10875 |                           |+--------------------+|                                                                                 |
10876 |                           ||:diagtext:`variable`||                                                                                 |
10877 |                           |+--------------------+|                                                                                 |
10878 +---------------------------+----------------------+---------------------------------------------------------------------------------+
10880 +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
10881 |:warning:`warning:` |nbsp| :diagtext:`'static' function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared in header file should be declared 'static inline'`|
10882 +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
10885 -Wunneeded-member-function
10886 --------------------------
10887 **Diagnostic text:**
10889 +---------------------------------------------------------------------------------------------------------------------------------------+
10890 |:warning:`warning:` |nbsp| :diagtext:`member function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not needed and will not be emitted`|
10891 +---------------------------------------------------------------------------------------------------------------------------------------+
10894 -Wunreachable-code
10895 ------------------
10896 Also controls `-Wunreachable-code-loop-increment`_.
10898 **Diagnostic text:**
10900 +------------------------------------------------------------------+
10901 |:warning:`warning:` |nbsp| :diagtext:`code will never be executed`|
10902 +------------------------------------------------------------------+
10905 -Wunreachable-code-aggressive
10906 -----------------------------
10907 Controls `-Wunreachable-code`_, `-Wunreachable-code-break`_, `-Wunreachable-code-return`_.
10910 -Wunreachable-code-break
10911 ------------------------
10912 **Diagnostic text:**
10914 +---------------------------------------------------------------------+
10915 |:warning:`warning:` |nbsp| :diagtext:`'break' will never be executed`|
10916 +---------------------------------------------------------------------+
10919 -Wunreachable-code-loop-increment
10920 ---------------------------------
10921 **Diagnostic text:**
10923 +-------------------------------------------------------------------------------------------------+
10924 |:warning:`warning:` |nbsp| :diagtext:`loop will run at most once (loop increment never executed)`|
10925 +-------------------------------------------------------------------------------------------------+
10928 -Wunreachable-code-return
10929 -------------------------
10930 **Diagnostic text:**
10932 +----------------------------------------------------------------------+
10933 |:warning:`warning:` |nbsp| :diagtext:`'return' will never be executed`|
10934 +----------------------------------------------------------------------+
10937 -Wunsequenced
10938 -------------
10939 This diagnostic is enabled by default.
10941 **Diagnostic text:**
10943 +----------------------------------------------------------------------------------------------------+
10944 |:warning:`warning:` |nbsp| :diagtext:`multiple unsequenced modifications to` |nbsp| :placeholder:`A`|
10945 +----------------------------------------------------------------------------------------------------+
10947 +-----------------------------------------------------------------------------------------------------+
10948 |:warning:`warning:` |nbsp| :diagtext:`unsequenced modification and access to` |nbsp| :placeholder:`A`|
10949 +-----------------------------------------------------------------------------------------------------+
10952 -Wunsupported-abs
10953 -----------------
10954 This diagnostic is enabled by default.
10956 **Diagnostic text:**
10958 +-----------------------------------------------------------------------------------------------------------------------------------------------+
10959 |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mabs=2008' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
10960 +-----------------------------------------------------------------------------------------------------------------------------------------------+
10962 +-------------------------------------------------------------------------------------------------------------------------------------------------+
10963 |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mabs=legacy' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
10964 +-------------------------------------------------------------------------------------------------------------------------------------------------+
10967 -Wunsupported-availability-guard
10968 --------------------------------
10969 This diagnostic is enabled by default.
10971 **Diagnostic text:**
10973 +---------------------------+------------------------------------+--------------------------------------------------------------+------------------------------------+---------------------+
10974 |:warning:`warning:` |nbsp| |+----------------------------------+| |nbsp| :diagtext:`does not guard availability here; use if (`|+----------------------------------+|:diagtext:`) instead`|
10975 |                           ||:diagtext:`@available`            ||                                                              ||:diagtext:`@available`            ||                     |
10976 |                           |+----------------------------------+|                                                              |+----------------------------------+|                     |
10977 |                           ||:diagtext:`\_\_builtin\_available`||                                                              ||:diagtext:`\_\_builtin\_available`||                     |
10978 |                           |+----------------------------------+|                                                              |+----------------------------------+|                     |
10979 +---------------------------+------------------------------------+--------------------------------------------------------------+------------------------------------+---------------------+
10982 -Wunsupported-cb
10983 ----------------
10984 This diagnostic is enabled by default.
10986 **Diagnostic text:**
10988 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
10989 |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mcompact-branches=' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
10990 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
10993 -Wunsupported-dll-base-class-template
10994 -------------------------------------
10995 **Diagnostic text:**
10997 +---------------------------------------------------------------------------+------------------------------------+------------------------------------------------------------------------------+
10998 |:warning:`warning:` |nbsp| :diagtext:`propagating dll attribute to` |nbsp| |+----------------------------------+| |nbsp| :diagtext:`base class template without dll attribute is not supported`|
10999 |                                                                           ||:diagtext:`already instantiated`  ||                                                                              |
11000 |                                                                           |+----------------------------------+|                                                                              |
11001 |                                                                           ||:diagtext:`explicitly specialized`||                                                                              |
11002 |                                                                           |+----------------------------------+|                                                                              |
11003 +---------------------------------------------------------------------------+------------------------------------+------------------------------------------------------------------------------+
11006 -Wunsupported-friend
11007 --------------------
11008 This diagnostic is enabled by default.
11010 **Diagnostic text:**
11012 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11013 |:warning:`warning:` |nbsp| :diagtext:`dependent nested name specifier '`:placeholder:`A`:diagtext:`' for friend template declaration is not supported; ignoring this friend declaration`|
11014 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11016 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11017 |: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`|
11018 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11021 -Wunsupported-gpopt
11022 -------------------
11023 This diagnostic is enabled by default.
11025 **Diagnostic text:**
11027 +--------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+
11028 |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mgpopt' option as it cannot be used with` |nbsp| |+-----------------------------------------+|:diagtext:`-mabicalls`|
11029 |                                                                                                  ||                                         ||                      |
11030 |                                                                                                  |+-----------------------------------------+|                      |
11031 |                                                                                                  ||:diagtext:`the implicit usage of` |nbsp| ||                      |
11032 |                                                                                                  |+-----------------------------------------+|                      |
11033 +--------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+
11036 -Wunsupported-nan
11037 -----------------
11038 This diagnostic is enabled by default.
11040 **Diagnostic text:**
11042 +-----------------------------------------------------------------------------------------------------------------------------------------------+
11043 |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mnan=2008' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
11044 +-----------------------------------------------------------------------------------------------------------------------------------------------+
11046 +-------------------------------------------------------------------------------------------------------------------------------------------------+
11047 |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mnan=legacy' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
11048 +-------------------------------------------------------------------------------------------------------------------------------------------------+
11051 -Wunsupported-visibility
11052 ------------------------
11053 This diagnostic is enabled by default.
11055 **Diagnostic text:**
11057 +------------------------------------------------------------------------------------------------------+
11058 |:warning:`warning:` |nbsp| :diagtext:`target does not support 'protected' visibility; using 'default'`|
11059 +------------------------------------------------------------------------------------------------------+
11062 -Wunusable-partial-specialization
11063 ---------------------------------
11064 This diagnostic is an error by default, but the flag ``-Wno-unusable-partial-specialization`` can be used to disable the error.
11066 **Diagnostic text:**
11068 +-----------------------+----------------------+--------------------------------------------------------------------+----------------------------------+------------------------------------------------------------------------------------------+
11069 |:error:`error:` |nbsp| |+--------------------+| |nbsp| :diagtext:`template partial specialization contains` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`that cannot be deduced; this partial specialization will never be used`|
11070 |                       ||:diagtext:`class`   ||                                                                    ||:diagtext:`a template parameter`||                                                                                          |
11071 |                       |+--------------------+|                                                                    |+--------------------------------+|                                                                                          |
11072 |                       ||:diagtext:`variable`||                                                                    ||:diagtext:`template parameters` ||                                                                                          |
11073 |                       |+--------------------+|                                                                    |+--------------------------------+|                                                                                          |
11074 +-----------------------+----------------------+--------------------------------------------------------------------+----------------------------------+------------------------------------------------------------------------------------------+
11077 -Wunused
11078 --------
11079 Some of the diagnostics controlled by this flag are enabled by default.
11081 Controls `-Wunused-argument`_, `-Wunused-function`_, `-Wunused-label`_, `-Wunused-lambda-capture`_, `-Wunused-local-typedef`_, `-Wunused-private-field`_, `-Wunused-property-ivar`_, `-Wunused-value`_, `-Wunused-variable`_.
11084 -Wunused-argument
11085 -----------------
11086 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
11088 -Wunused-command-line-argument
11089 ------------------------------
11090 This diagnostic is enabled by default.
11092 **Diagnostic text:**
11094 +-------------------------------------------------------------------------------------------------------------------------------+
11095 |:warning:`warning:` |nbsp| :diagtext:`argument '`:placeholder:`A`:diagtext:`' requires profile-guided optimization information`|
11096 +-------------------------------------------------------------------------------------------------------------------------------+
11098 +---------------------------------------------------------------------------------------------------------------+
11099 |:warning:`warning:` |nbsp| :diagtext:`joined argument expects additional value: '`:placeholder:`A`:diagtext:`'`|
11100 +---------------------------------------------------------------------------------------------------------------+
11102 +----------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+
11103 |:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: '`:placeholder:`B`:diagtext:`' input unused`|+--------------------------------------------------------------------+|
11104 |                                                                                                    ||+------------------------------------------------------------------+||
11105 |                                                                                                    ||| |nbsp| :diagtext:`when '`:placeholder:`D`:diagtext:`' is present`|||
11106 |                                                                                                    ||+------------------------------------------------------------------+||
11107 |                                                                                                    |+--------------------------------------------------------------------+|
11108 |                                                                                                    ||                                                                    ||
11109 |                                                                                                    |+--------------------------------------------------------------------+|
11110 +----------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+
11112 +----------------------------------------------------------------------------------------------------------------+
11113 |:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: '`:placeholder:`B`:diagtext:`' input unused in cpp mode`|
11114 +----------------------------------------------------------------------------------------------------------------+
11116 +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------+
11117 |:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: previously preprocessed input`|+---------------------------------------------------------------------------+|
11118 |                                                                                      ||+-------------------------------------------------------------------------+||
11119 |                                                                                      ||| |nbsp| :diagtext:`unused when '`:placeholder:`C`:diagtext:`' is present`|||
11120 |                                                                                      ||+-------------------------------------------------------------------------+||
11121 |                                                                                      |+---------------------------------------------------------------------------+|
11122 |                                                                                      ||                                                                           ||
11123 |                                                                                      |+---------------------------------------------------------------------------+|
11124 +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------+
11126 +---------------------------------------------------------------------------------------------------------+
11127 |:warning:`warning:` |nbsp| :diagtext:`argument unused during compilation: '`:placeholder:`A`:diagtext:`'`|
11128 +---------------------------------------------------------------------------------------------------------+
11130 +----------------------------------------------------------------------------------------------------------------------+
11131 |:warning:`warning:` |nbsp| :diagtext:`the flag '`:placeholder:`A`:diagtext:`' has been deprecated and will be ignored`|
11132 +----------------------------------------------------------------------------------------------------------------------+
11135 -Wunused-comparison
11136 -------------------
11137 This diagnostic is enabled by default.
11139 **Diagnostic text:**
11141 +---------------------------+-----------------------------------------+--------------------------------------------+
11142 |:warning:`warning:` |nbsp| |+---------------------------------------+| |nbsp| :diagtext:`comparison result unused`|
11143 |                           ||+----------------+--------------------+||                                            |
11144 |                           |||+--------------+|:diagtext:`equality`|||                                            |
11145 |                           ||||              ||                    |||                                            |
11146 |                           |||+--------------+|                    |||                                            |
11147 |                           ||||:diagtext:`in`||                    |||                                            |
11148 |                           |||+--------------+|                    |||                                            |
11149 |                           ||+----------------+--------------------+||                                            |
11150 |                           |+---------------------------------------+|                                            |
11151 |                           ||:diagtext:`relational`                 ||                                            |
11152 |                           |+---------------------------------------+|                                            |
11153 +---------------------------+-----------------------------------------+--------------------------------------------+
11156 -Wunused-const-variable
11157 -----------------------
11158 **Diagnostic text:**
11160 +------------------------------------------------------------------------------+
11161 |:warning:`warning:` |nbsp| :diagtext:`unused variable` |nbsp| :placeholder:`A`|
11162 +------------------------------------------------------------------------------+
11165 -Wunused-exception-parameter
11166 ----------------------------
11167 **Diagnostic text:**
11169 +-----------------------------------------------------------------------------------------+
11170 |:warning:`warning:` |nbsp| :diagtext:`unused exception parameter` |nbsp| :placeholder:`A`|
11171 +-----------------------------------------------------------------------------------------+
11174 -Wunused-function
11175 -----------------
11176 Also controls `-Wunneeded-internal-declaration`_.
11178 **Diagnostic text:**
11180 +------------------------------------------------------------------------------+
11181 |:warning:`warning:` |nbsp| :diagtext:`unused function` |nbsp| :placeholder:`A`|
11182 +------------------------------------------------------------------------------+
11185 -Wunused-getter-return-value
11186 ----------------------------
11187 This diagnostic is enabled by default.
11189 **Diagnostic text:**
11191 +------------------------------------------------------------------------------------------------------------------+
11192 |:warning:`warning:` |nbsp| :diagtext:`property access result unused - getters should not be used for side effects`|
11193 +------------------------------------------------------------------------------------------------------------------+
11196 -Wunused-label
11197 --------------
11198 **Diagnostic text:**
11200 +---------------------------------------------------------------------------+
11201 |:warning:`warning:` |nbsp| :diagtext:`unused label` |nbsp| :placeholder:`A`|
11202 +---------------------------------------------------------------------------+
11205 -Wunused-lambda-capture
11206 -----------------------
11207 **Diagnostic text:**
11209 +---------------------------------------------------------------------------------------------------------------+--------------------------------------------------+
11210 |:warning:`warning:` |nbsp| :diagtext:`lambda capture` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not` |nbsp| |+------------------------------------------------+|
11211 |                                                                                                               ||:diagtext:`used`                                ||
11212 |                                                                                                               |+------------------------------------------------+|
11213 |                                                                                                               ||:diagtext:`required to be captured for this use`||
11214 |                                                                                                               |+------------------------------------------------+|
11215 +---------------------------------------------------------------------------------------------------------------+--------------------------------------------------+
11218 -Wunused-local-typedef
11219 ----------------------
11220 **Diagnostic text:**
11222 +-----------------------------------------------------+------------------------+------------------------+
11223 |:warning:`warning:` |nbsp| :diagtext:`unused` |nbsp| |+----------------------+| |nbsp| :placeholder:`B`|
11224 |                                                     ||:diagtext:`typedef`   ||                        |
11225 |                                                     |+----------------------+|                        |
11226 |                                                     ||:diagtext:`type alias`||                        |
11227 |                                                     |+----------------------+|                        |
11228 +-----------------------------------------------------+------------------------+------------------------+
11231 -Wunused-local-typedefs
11232 -----------------------
11233 Synonym for `-Wunused-local-typedef`_.
11236 -Wunused-macros
11237 ---------------
11238 **Diagnostic text:**
11240 +--------------------------------------------------------+
11241 |:warning:`warning:` |nbsp| :diagtext:`macro is not used`|
11242 +--------------------------------------------------------+
11245 -Wunused-member-function
11246 ------------------------
11247 Also controls `-Wunneeded-member-function`_.
11249 **Diagnostic text:**
11251 +-------------------------------------------------------------------------------------+
11252 |:warning:`warning:` |nbsp| :diagtext:`unused member function` |nbsp| :placeholder:`A`|
11253 +-------------------------------------------------------------------------------------+
11256 -Wunused-parameter
11257 ------------------
11258 **Diagnostic text:**
11260 +-------------------------------------------------------------------------------+
11261 |:warning:`warning:` |nbsp| :diagtext:`unused parameter` |nbsp| :placeholder:`A`|
11262 +-------------------------------------------------------------------------------+
11265 -Wunused-private-field
11266 ----------------------
11267 **Diagnostic text:**
11269 +-----------------------------------------------------------------------------------------------------------+
11270 |:warning:`warning:` |nbsp| :diagtext:`private field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not used`|
11271 +-----------------------------------------------------------------------------------------------------------+
11274 -Wunused-property-ivar
11275 ----------------------
11276 **Diagnostic text:**
11278 +-------------------------------------------------------------------------------------------------------------------------------------------------------------+
11279 |:warning:`warning:` |nbsp| :diagtext:`ivar` |nbsp| :placeholder:`A` |nbsp| :diagtext:`which backs the property is not referenced in this property's accessor`|
11280 +-------------------------------------------------------------------------------------------------------------------------------------------------------------+
11283 -Wunused-result
11284 ---------------
11285 This diagnostic is enabled by default.
11287 **Diagnostic text:**
11289 +-------------------------------------------------------------------------------------------------------------------------------------------+
11290 |:warning:`warning:` |nbsp| :diagtext:`ignoring return value of function declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute`|
11291 +-------------------------------------------------------------------------------------------------------------------------------------------+
11294 -Wunused-template
11295 -----------------
11296 Also controls `-Wunneeded-internal-declaration`_.
11298 **Diagnostic text:**
11300 +-----------------------------------------------------+----------------------+----------------------------------------------------+
11301 |:warning:`warning:` |nbsp| :diagtext:`unused` |nbsp| |+--------------------+| |nbsp| :diagtext:`template` |nbsp| :placeholder:`B`|
11302 |                                                     ||:diagtext:`function`||                                                    |
11303 |                                                     |+--------------------+|                                                    |
11304 |                                                     ||:diagtext:`variable`||                                                    |
11305 |                                                     |+--------------------+|                                                    |
11306 +-----------------------------------------------------+----------------------+----------------------------------------------------+
11309 -Wunused-value
11310 --------------
11311 This diagnostic is enabled by default.
11313 Also controls `-Wunevaluated-expression`_, `-Wunused-comparison`_, `-Wunused-result`_.
11315 **Diagnostic text:**
11317 +-------------------------------------------------------------------------------------------------------------------------------------------+
11318 |:warning:`warning:` |nbsp| :diagtext:`ignoring return value of function declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute`|
11319 +-------------------------------------------------------------------------------------------------------------------------------------------+
11321 +----------------------------------------------------------------------------------------------------------------------------+
11322 |:warning:`warning:` |nbsp| :diagtext:`container access result unused - container access should not be used for side effects`|
11323 +----------------------------------------------------------------------------------------------------------------------------+
11325 +---------------------------------------------------------------+
11326 |:warning:`warning:` |nbsp| :diagtext:`expression result unused`|
11327 +---------------------------------------------------------------+
11329 +-----------------------------------------------------------------------------------------------+
11330 |:warning:`warning:` |nbsp| :diagtext:`expression result unused; should this cast be to 'void'?`|
11331 +-----------------------------------------------------------------------------------------------+
11334 -Wunused-variable
11335 -----------------
11336 Also controls `-Wunused-const-variable`_.
11338 **Diagnostic text:**
11340 +------------------------------------------------------------------------------+
11341 |:warning:`warning:` |nbsp| :diagtext:`unused variable` |nbsp| :placeholder:`A`|
11342 +------------------------------------------------------------------------------+
11345 -Wunused-volatile-lvalue
11346 ------------------------
11347 This diagnostic is enabled by default.
11349 **Diagnostic text:**
11351 +----------------------------------------------------------------------------------------------------------------+
11352 |:warning:`warning:` |nbsp| :diagtext:`expression result unused; assign into a variable to force a volatile load`|
11353 +----------------------------------------------------------------------------------------------------------------+
11356 -Wused-but-marked-unused
11357 ------------------------
11358 **Diagnostic text:**
11360 +---------------------------------------------------------------------------------------------+
11361 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`was marked unused but was used`|
11362 +---------------------------------------------------------------------------------------------+
11365 -Wuser-defined-literals
11366 -----------------------
11367 This diagnostic is enabled by default.
11369 **Diagnostic text:**
11371 +--------------------------------------------------------------------------------------------------------+----------------------------------------------------+
11372 |:warning:`warning:` |nbsp| :diagtext:`user-defined literal suffixes not starting with '\_' are reserved`|+--------------------------------------------------+|
11373 |                                                                                                        ||:diagtext:`; no literal will invoke this operator`||
11374 |                                                                                                        |+--------------------------------------------------+|
11375 |                                                                                                        ||                                                  ||
11376 |                                                                                                        |+--------------------------------------------------+|
11377 +--------------------------------------------------------------------------------------------------------+----------------------------------------------------+
11380 -Wuser-defined-warnings
11381 -----------------------
11382 This diagnostic is enabled by default.
11384 **Diagnostic text:**
11386 The text of this diagnostic is not controlled by Clang.
11389 -Wvarargs
11390 ---------
11391 This diagnostic is enabled by default.
11393 **Diagnostic text:**
11395 +-----------------------------------------------------------------------------------------------------+
11396 |:warning:`warning:` |nbsp| :diagtext:`second argument to 'va\_start' is not the last named parameter`|
11397 +-----------------------------------------------------------------------------------------------------+
11399 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11400 |: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`|
11401 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11403 +------------------------------------------------------+-----------------------------------------------------------------+---------------------------------------------------------+
11404 |:warning:`warning:` |nbsp| :diagtext:`passing` |nbsp| |+---------------------------------------------------------------+| |nbsp| :diagtext:`to 'va\_start' has undefined behavior`|
11405 |                                                      ||:diagtext:`an object that undergoes default argument promotion`||                                                         |
11406 |                                                      |+---------------------------------------------------------------+|                                                         |
11407 |                                                      ||:diagtext:`an object of reference type`                        ||                                                         |
11408 |                                                      |+---------------------------------------------------------------+|                                                         |
11409 |                                                      ||:diagtext:`a parameter declared with the 'register' keyword`   ||                                                         |
11410 |                                                      |+---------------------------------------------------------------+|                                                         |
11411 +------------------------------------------------------+-----------------------------------------------------------------+---------------------------------------------------------+
11414 -Wvariadic-macros
11415 -----------------
11416 Some of the diagnostics controlled by this flag are enabled by default.
11418 **Diagnostic text:**
11420 +--------------------------------------------------------------------------------+
11421 |:warning:`warning:` |nbsp| :diagtext:`named variadic macros are a GNU extension`|
11422 +--------------------------------------------------------------------------------+
11424 +-----------------------------------------------------------------------------------------------------------+
11425 |:warning:`warning:` |nbsp| :diagtext:`\_\_VA\_OPT\_\_ can only appear in the expansion of a variadic macro`|
11426 +-----------------------------------------------------------------------------------------------------------+
11428 +------------------------------------------------------------------------+
11429 |:warning:`warning:` |nbsp| :diagtext:`variadic macros are a C99 feature`|
11430 +------------------------------------------------------------------------+
11433 -Wvec-elem-size
11434 ---------------
11435 This diagnostic is an error by default, but the flag ``-Wno-vec-elem-size`` can be used to disable the error.
11437 **Diagnostic text:**
11439 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11440 |:error:`error:` |nbsp| :diagtext:`vector operands do not have the same elements sizes (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`|
11441 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11444 -Wvector-conversion
11445 -------------------
11446 **Diagnostic text:**
11448 +------------------------------------------------------------------------+----------------------------------------------------------------+
11449 |:warning:`warning:` |nbsp| :diagtext:`incompatible vector types` |nbsp| |+--------------------------------------------------------------+|
11450 |                                                                        ||:diagtext:`assigning to different types`                      ||
11451 |                                                                        |+--------------------------------------------------------------+|
11452 |                                                                        ||:diagtext:`passing to parameter of different type`            ||
11453 |                                                                        |+--------------------------------------------------------------+|
11454 |                                                                        ||:diagtext:`returning from function with different return type`||
11455 |                                                                        |+--------------------------------------------------------------+|
11456 |                                                                        ||:diagtext:`converting between types`                          ||
11457 |                                                                        |+--------------------------------------------------------------+|
11458 |                                                                        ||:diagtext:`initializing with expression of different type`    ||
11459 |                                                                        |+--------------------------------------------------------------+|
11460 |                                                                        ||:diagtext:`sending to parameter of different type`            ||
11461 |                                                                        |+--------------------------------------------------------------+|
11462 |                                                                        ||:diagtext:`casting between types`                             ||
11463 |                                                                        |+--------------------------------------------------------------+|
11464 +------------------------------------------------------------------------+----------------------------------------------------------------+
11467 -Wvector-conversions
11468 --------------------
11469 Synonym for `-Wvector-conversion`_.
11472 -Wvexing-parse
11473 --------------
11474 This diagnostic is enabled by default.
11476 **Diagnostic text:**
11478 +----------------------------------------------------------------------------------------------+
11479 |:warning:`warning:` |nbsp| :diagtext:`empty parentheses interpreted as a function declaration`|
11480 +----------------------------------------------------------------------------------------------+
11482 +-----------------------------------------------------------------------------------------------+
11483 |:warning:`warning:` |nbsp| :diagtext:`parentheses were disambiguated as a function declaration`|
11484 +-----------------------------------------------------------------------------------------------+
11486 +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
11487 |:warning:`warning:` |nbsp| :diagtext:`parentheses were disambiguated as redundant parentheses around declaration of variable named` |nbsp| :placeholder:`A`|
11488 +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
11491 -Wvisibility
11492 ------------
11493 This diagnostic is enabled by default.
11495 **Diagnostic text:**
11497 +---------------------------------------------------------------------------------------------------------------------------------------------+
11498 |:warning:`warning:` |nbsp| :diagtext:`declaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will not be visible outside of this function`|
11499 +---------------------------------------------------------------------------------------------------------------------------------------------+
11501 +----------------------------------------------------------------------------------------------------------------------------------------------+
11502 |:warning:`warning:` |nbsp| :diagtext:`redefinition of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will not be visible outside of this function`|
11503 +----------------------------------------------------------------------------------------------------------------------------------------------+
11506 -Wvla
11507 -----
11508 **Diagnostic text:**
11510 +-----------------------------------------------------------------+
11511 |:warning:`warning:` |nbsp| :diagtext:`variable length array used`|
11512 +-----------------------------------------------------------------+
11515 -Wvla-extension
11516 ---------------
11517 **Diagnostic text:**
11519 +-------------------------------------------------------------------------------+
11520 |:warning:`warning:` |nbsp| :diagtext:`variable length arrays are a C99 feature`|
11521 +-------------------------------------------------------------------------------+
11524 -Wvoid-ptr-dereference
11525 ----------------------
11526 This diagnostic is enabled by default.
11528 **Diagnostic text:**
11530 +--------------------------------------------------------------------------------------------------------------------+
11531 |:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow indirection on operand of type` |nbsp| :placeholder:`A`|
11532 +--------------------------------------------------------------------------------------------------------------------+
11535 -Wvolatile-register-var
11536 -----------------------
11537 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
11539 -Wweak-template-vtables
11540 -----------------------
11541 **Diagnostic text:**
11543 +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
11544 |:warning:`warning:` |nbsp| :diagtext:`explicit template instantiation` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will emit a vtable in every translation unit`|
11545 +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
11548 -Wweak-vtables
11549 --------------
11550 **Diagnostic text:**
11552 +------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11553 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has no out-of-line virtual method definitions; its vtable will be emitted in every translation unit`|
11554 +------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11557 -Wwritable-strings
11558 ------------------
11559 This diagnostic is enabled by default.
11561 Also controls `-Wdeprecated-writable-strings`_.
11563 **Diagnostic text:**
11565 +-------------------------------------------------------------------------------------------------------------------------+
11566 |:warning:`warning:` |nbsp| :diagtext:`ISO C++11 does not allow conversion from string literal to` |nbsp| :placeholder:`A`|
11567 +-------------------------------------------------------------------------------------------------------------------------+
11570 -Wwrite-strings
11571 ---------------
11572 Synonym for `-Wwritable-strings`_.
11575 -Wzero-as-null-pointer-constant
11576 -------------------------------
11577 **Diagnostic text:**
11579 +--------------------------------------------------------------------+
11580 |:warning:`warning:` |nbsp| :diagtext:`zero as null pointer constant`|
11581 +--------------------------------------------------------------------+
11584 -Wzero-length-array
11585 -------------------
11586 **Diagnostic text:**
11588 +------------------------------------------------------------------------+
11589 |:warning:`warning:` |nbsp| :diagtext:`zero size arrays are an extension`|
11590 +------------------------------------------------------------------------+