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  -------------------------------------------------------------------
6
7.. Add custom CSS to output. FIXME: This should be put into <head> rather
8   than the start of <body>.
9.. raw:: html
10
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>
46
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:
51
52.. Roles generated by clang-tblgen.
53.. role:: error
54.. role:: warning
55.. role:: remark
56.. role:: diagtext
57.. role:: placeholder(emphasis)
58
59=========================
60Diagnostic flags in Clang
61=========================
62.. contents::
63   :local:
64
65Introduction
66============
67
68This page lists the diagnostic flags currently supported by Clang.
69
70Diagnostic flags
71================
72
73-W
74--
75Synonym for `-Wextra`_.
76
77
78-W#pragma-messages
79------------------
80This diagnostic is enabled by default.
81
82**Diagnostic text:**
83
84The text of this diagnostic is not controlled by Clang.
85
86
87-W#warnings
88-----------
89This diagnostic is enabled by default.
90
91**Diagnostic text:**
92
93The text of this diagnostic is not controlled by Clang.
94
95
96-WCFString-literal
97------------------
98This diagnostic is enabled by default.
99
100**Diagnostic text:**
101
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+------------------------------------------------------------------------------------------------------------------------------------+
105
106
107-WCL4
108-----
109Some of the diagnostics controlled by this flag are enabled by default.
110
111Controls `-Wall`_, `-Wextra`_.
112
113
114-WIndependentClass-attribute
115----------------------------
116This diagnostic is enabled by default.
117
118**Diagnostic text:**
119
120+------------------------------------------------------------------------------------------------------------------------------+
121|:warning:`warning:` |nbsp| :diagtext:`'objc\_independent\_class' attribute may be put on a typedef only; attribute is ignored`|
122+------------------------------------------------------------------------------------------------------------------------------+
123
124+----------------------------------------------------------------------------------------------------------------------------------------------------+
125|:warning:`warning:` |nbsp| :diagtext:`'objc\_independent\_class' attribute may be put on Objective-C object pointer type only; attribute is ignored`|
126+----------------------------------------------------------------------------------------------------------------------------------------------------+
127
128
129-WNSObject-attribute
130--------------------
131This diagnostic is enabled by default.
132
133**Diagnostic text:**
134
135+--------------------------------------------------------------------------------------------------------------+
136|:warning:`warning:` |nbsp| :diagtext:`'NSObject' attribute may be put on a typedef only; attribute is ignored`|
137+--------------------------------------------------------------------------------------------------------------+
138
139
140-Wabi
141-----
142This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
143
144-Wabsolute-value
145----------------
146This diagnostic is enabled by default.
147
148**Diagnostic text:**
149
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+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
153
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+---------------------------------------------------------------------------+----------------------+---------------------------------------------------------------------------------+
163
164+------------------------------------------------------------------------------------------------------------------------------------------+
165|:warning:`warning:` |nbsp| :diagtext:`taking the absolute value of unsigned type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has no effect`|
166+------------------------------------------------------------------------------------------------------------------------------------------+
167
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+----------------------------------------------------+----------------------------+------------------------------------------------------------------------------------------------------------------+----------------------------+------------------------+
177
178
179-Wabstract-final-class
180----------------------
181This diagnostic is enabled by default.
182
183**Diagnostic text:**
184
185+-----------------------------------------------------------------+--------------------+-------------+
186|:warning:`warning:` |nbsp| :diagtext:`abstract class is marked '`|+------------------+|:diagtext:`'`|
187|                                                                 ||:diagtext:`final` ||             |
188|                                                                 |+------------------+|             |
189|                                                                 ||:diagtext:`sealed`||             |
190|                                                                 |+------------------+|             |
191+-----------------------------------------------------------------+--------------------+-------------+
192
193
194-Wabstract-vbase-init
195---------------------
196**Diagnostic text:**
197
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+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
201
202
203-Waddress
204---------
205This diagnostic is enabled by default.
206
207Controls `-Wpointer-bool-conversion`_, `-Wstring-compare`_, `-Wtautological-pointer-compare`_.
208
209
210-Waddress-of-packed-member
211--------------------------
212This diagnostic is enabled by default.
213
214**Diagnostic text:**
215
216+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
217|: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`|
218+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
219
220
221-Waddress-of-temporary
222----------------------
223This diagnostic is an error by default, but the flag ``-Wno-address-of-temporary`` can be used to disable the error.
224
225**Diagnostic text:**
226
227+-----------------------------------------------------------------------------------------------------------+
228|:error:`error:` |nbsp| :diagtext:`taking the address of a temporary object of type` |nbsp| :placeholder:`A`|
229+-----------------------------------------------------------------------------------------------------------+
230
231
232-Waggregate-return
233------------------
234This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
235
236-Wall
237-----
238Some of the diagnostics controlled by this flag are enabled by default.
239
240Controls `-Wmost`_, `-Wparentheses`_, `-Wswitch`_, `-Wswitch-bool`_.
241
242
243-Walloca-with-align-alignof
244---------------------------
245This diagnostic is enabled by default.
246
247**Diagnostic text:**
248
249+--------------------------------------------------------------------------------------------------------------------+
250|:warning:`warning:` |nbsp| :diagtext:`second argument to \_\_builtin\_alloca\_with\_align is supposed to be in bits`|
251+--------------------------------------------------------------------------------------------------------------------+
252
253
254-Wambiguous-delete
255------------------
256This diagnostic is enabled by default.
257
258**Diagnostic text:**
259
260+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
261|: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`|
262+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
263
264
265-Wambiguous-ellipsis
266--------------------
267This diagnostic is enabled by default.
268
269**Diagnostic text:**
270
271+------------------------------------------------------------------------------------------------+---------------------------------------------+
272|:warning:`warning:` |nbsp| :diagtext:`'...' in this location creates a C-style varargs function`|+-------------------------------------------+|
273|                                                                                                ||:diagtext:`, not a function parameter pack`||
274|                                                                                                |+-------------------------------------------+|
275|                                                                                                ||                                           ||
276|                                                                                                |+-------------------------------------------+|
277+------------------------------------------------------------------------------------------------+---------------------------------------------+
278
279
280-Wambiguous-macro
281-----------------
282This diagnostic is enabled by default.
283
284**Diagnostic text:**
285
286+-------------------------------------------------------------------------------------------+
287|:warning:`warning:` |nbsp| :diagtext:`ambiguous expansion of macro` |nbsp| :placeholder:`A`|
288+-------------------------------------------------------------------------------------------+
289
290
291-Wambiguous-member-template
292---------------------------
293This diagnostic is enabled by default.
294
295**Diagnostic text:**
296
297+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
298|:warning:`warning:` |nbsp| :diagtext:`lookup of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in member access expression is ambiguous; using member of` |nbsp| :placeholder:`B`|
299+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
300
301
302-Wanalyzer-incompatible-plugin
303------------------------------
304This diagnostic is enabled by default.
305
306**Diagnostic text:**
307
308+----------------------------------------------------------------------------------------------------------------------------------------+
309|:warning:`warning:` |nbsp| :diagtext:`checker plugin '`:placeholder:`A`:diagtext:`' is not compatible with this version of the analyzer`|
310+----------------------------------------------------------------------------------------------------------------------------------------+
311
312
313-Wanonymous-pack-parens
314-----------------------
315This diagnostic is enabled by default.
316
317**Diagnostic text:**
318
319+---------------------------------------------------------------------------------------------------------+
320|:warning:`warning:` |nbsp| :diagtext:`ISO C++11 requires a parenthesized pack declaration to have a name`|
321+---------------------------------------------------------------------------------------------------------+
322
323
324-Warc
325-----
326This diagnostic is enabled by default.
327
328Controls `-Warc-non-pod-memaccess`_, `-Warc-retain-cycles`_, `-Warc-unsafe-retained-assign`_.
329
330
331-Warc-bridge-casts-disallowed-in-nonarc
332---------------------------------------
333This diagnostic is enabled by default.
334
335**Diagnostic text:**
336
337+-------------------------------------------------------------------------------------------------------------+
338|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' casts have no effect when not using ARC`|
339+-------------------------------------------------------------------------------------------------------------+
340
341
342-Warc-maybe-repeated-use-of-weak
343--------------------------------
344**Diagnostic text:**
345
346+---------------------------------------------------+-------------------------------+------------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+
347|: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`|
348|                                                   ||:diagtext:`variable`         ||                                                                                          ||:diagtext:`function`||                                                                                                             |
349|                                                   |+-----------------------------+|                                                                                          |+--------------------+|                                                                                                             |
350|                                                   ||:diagtext:`property`         ||                                                                                          ||:diagtext:`method`  ||                                                                                                             |
351|                                                   |+-----------------------------+|                                                                                          |+--------------------+|                                                                                                             |
352|                                                   ||:diagtext:`implicit property`||                                                                                          ||:diagtext:`block`   ||                                                                                                             |
353|                                                   |+-----------------------------+|                                                                                          |+--------------------+|                                                                                                             |
354|                                                   ||:diagtext:`instance variable`||                                                                                          ||:diagtext:`lambda`  ||                                                                                                             |
355|                                                   |+-----------------------------+|                                                                                          |+--------------------+|                                                                                                             |
356+---------------------------------------------------+-------------------------------+------------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+
357
358
359-Warc-non-pod-memaccess
360-----------------------
361This diagnostic is enabled by default.
362
363**Diagnostic text:**
364
365+---------------------------+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
366|:warning:`warning:` |nbsp| |+---------------------------+| |nbsp| :diagtext:`this` |nbsp| :placeholder:`B` |nbsp| :diagtext:`call is a pointer to ownership-qualified type` |nbsp| :placeholder:`C`|
367|                           ||:diagtext:`destination for`||                                                                                                                                         |
368|                           |+---------------------------+|                                                                                                                                         |
369|                           ||:diagtext:`source of`      ||                                                                                                                                         |
370|                           |+---------------------------+|                                                                                                                                         |
371+---------------------------+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
372
373
374-Warc-performSelector-leaks
375---------------------------
376This diagnostic is enabled by default.
377
378**Diagnostic text:**
379
380+-------------------------------------------------------------------------------------------------------+
381|:warning:`warning:` |nbsp| :diagtext:`performSelector may cause a leak because its selector is unknown`|
382+-------------------------------------------------------------------------------------------------------+
383
384
385-Warc-repeated-use-of-weak
386--------------------------
387Also controls `-Warc-maybe-repeated-use-of-weak`_.
388
389**Diagnostic text:**
390
391+---------------------------------------------------+-------------------------------+--------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+
392|: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`|
393|                                                   ||:diagtext:`variable`         ||                                                                                      ||:diagtext:`function`||                                                                                                             |
394|                                                   |+-----------------------------+|                                                                                      |+--------------------+|                                                                                                             |
395|                                                   ||:diagtext:`property`         ||                                                                                      ||:diagtext:`method`  ||                                                                                                             |
396|                                                   |+-----------------------------+|                                                                                      |+--------------------+|                                                                                                             |
397|                                                   ||:diagtext:`implicit property`||                                                                                      ||:diagtext:`block`   ||                                                                                                             |
398|                                                   |+-----------------------------+|                                                                                      |+--------------------+|                                                                                                             |
399|                                                   ||:diagtext:`instance variable`||                                                                                      ||:diagtext:`lambda`  ||                                                                                                             |
400|                                                   |+-----------------------------+|                                                                                      |+--------------------+|                                                                                                             |
401+---------------------------------------------------+-------------------------------+--------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+
402
403
404-Warc-retain-cycles
405-------------------
406This diagnostic is enabled by default.
407
408**Diagnostic text:**
409
410+------------------------------------------------------------------------------------------------------------------------------------------------------+
411|:warning:`warning:` |nbsp| :diagtext:`capturing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`strongly in this block is likely to lead to a retain cycle`|
412+------------------------------------------------------------------------------------------------------------------------------------------------------+
413
414
415-Warc-unsafe-retained-assign
416----------------------------
417This diagnostic is enabled by default.
418
419**Diagnostic text:**
420
421+--------------------------------------------------------+---------------------------------+-------------------------------------+----------------------+------------------------------------------------------+
422|:warning:`warning:` |nbsp| :diagtext:`assigning` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`to a weak` |nbsp| |+--------------------+|:diagtext:`; object will be released after assignment`|
423|                                                        ||:diagtext:`array literal`      ||                                     ||:diagtext:`property`||                                                      |
424|                                                        |+-------------------------------+|                                     |+--------------------+|                                                      |
425|                                                        ||:diagtext:`dictionary literal` ||                                     ||:diagtext:`variable`||                                                      |
426|                                                        |+-------------------------------+|                                     |+--------------------+|                                                      |
427|                                                        ||:diagtext:`numeric literal`    ||                                     |                      |                                                      |
428|                                                        |+-------------------------------+|                                     |                      |                                                      |
429|                                                        ||:diagtext:`boxed expression`   ||                                     |                      |                                                      |
430|                                                        |+-------------------------------+|                                     |                      |                                                      |
431|                                                        ||:diagtext:`<should not happen>`||                                     |                      |                                                      |
432|                                                        |+-------------------------------+|                                     |                      |                                                      |
433|                                                        ||:diagtext:`block literal`      ||                                     |                      |                                                      |
434|                                                        |+-------------------------------+|                                     |                      |                                                      |
435+--------------------------------------------------------+---------------------------------+-------------------------------------+----------------------+------------------------------------------------------+
436
437+---------------------------------------------------------------------------+--------------------------------+--------+----------------------+------------------------------------------------------+
438|:warning:`warning:` |nbsp| :diagtext:`assigning retained object to` |nbsp| |+------------------------------+| |nbsp| |+--------------------+|:diagtext:`; object will be released after assignment`|
439|                                                                           ||:diagtext:`weak`              ||        ||:diagtext:`property`||                                                      |
440|                                                                           |+------------------------------+|        |+--------------------+|                                                      |
441|                                                                           ||:diagtext:`unsafe\_unretained`||        ||:diagtext:`variable`||                                                      |
442|                                                                           |+------------------------------+|        |+--------------------+|                                                      |
443+---------------------------------------------------------------------------+--------------------------------+--------+----------------------+------------------------------------------------------+
444
445+-----------------------------------------------------------------------------------------------------------------------------+
446|:warning:`warning:` |nbsp| :diagtext:`assigning retained object to unsafe property; object will be released after assignment`|
447+-----------------------------------------------------------------------------------------------------------------------------+
448
449
450-Wargument-outside-range
451------------------------
452This diagnostic is an error by default, but the flag ``-Wno-argument-outside-range`` can be used to disable the error.
453
454**Diagnostic text:**
455
456+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
457|:error:`error:` |nbsp| :diagtext:`argument value` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is outside the valid range \[`:placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`\]`|
458+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
459
460
461-Warray-bounds
462--------------
463This diagnostic is enabled by default.
464
465**Diagnostic text:**
466
467+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+
468|: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:`)`|
469|                                                                                                                                                                                             ||             ||             |
470|                                                                                                                                                                                             |+-------------+|             |
471|                                                                                                                                                                                             ||:diagtext:`s`||             |
472|                                                                                                                                                                                             |+-------------+|             |
473+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+
474
475+----------------------------------------------------------------------------------------------------------------------------------+
476|:warning:`warning:` |nbsp| :diagtext:`array index` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is before the beginning of the array`|
477+----------------------------------------------------------------------------------------------------------------------------------+
478
479+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
480|:warning:`warning:` |nbsp| :diagtext:`array argument is too small; contains` |nbsp| :placeholder:`A` |nbsp| :diagtext:`elements, callee requires at least` |nbsp| :placeholder:`B`|
481+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
482
483+-----------------------------------------------------------------------------------+
484|:warning:`warning:` |nbsp| :diagtext:`'static' has no effect on zero-length arrays`|
485+-----------------------------------------------------------------------------------+
486
487
488-Warray-bounds-pointer-arithmetic
489---------------------------------
490**Diagnostic text:**
491
492+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+
493|: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:`)`|
494|                                                                                                                                                                                                               ||             ||             |
495|                                                                                                                                                                                                               |+-------------+|             |
496|                                                                                                                                                                                                               ||:diagtext:`s`||             |
497|                                                                                                                                                                                                               |+-------------+|             |
498+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+
499
500+-----------------------------------------------------------------------------------------------------------------------------------------------------+
501|:warning:`warning:` |nbsp| :diagtext:`the pointer decremented by` |nbsp| :placeholder:`A` |nbsp| :diagtext:`refers before the beginning of the array`|
502+-----------------------------------------------------------------------------------------------------------------------------------------------------+
503
504
505-Wasm
506-----
507This diagnostic is enabled by default.
508
509Controls `-Wasm-ignored-qualifier`_, `-Wasm-operand-widths`_.
510
511
512-Wasm-ignored-qualifier
513-----------------------
514This diagnostic is enabled by default.
515
516**Diagnostic text:**
517
518+----------------------------------------------------------------------------------------------------------+
519|:warning:`warning:` |nbsp| :diagtext:`ignored` |nbsp| :placeholder:`A` |nbsp| :diagtext:`qualifier on asm`|
520+----------------------------------------------------------------------------------------------------------+
521
522+-------------------------------------------------------------------------------------+
523|:warning:`warning:` |nbsp| :diagtext:`meaningless 'volatile' on asm outside function`|
524+-------------------------------------------------------------------------------------+
525
526
527-Wasm-operand-widths
528--------------------
529This diagnostic is enabled by default.
530
531**Diagnostic text:**
532
533+-----------------------------------------------------------------------------------------------------------------------+
534|:warning:`warning:` |nbsp| :diagtext:`value size does not match register size specified by the constraint and modifier`|
535+-----------------------------------------------------------------------------------------------------------------------+
536
537
538-Wassign-enum
539-------------
540**Diagnostic text:**
541
542+---------------------------------------------------------------------------------------------------------------+
543|:warning:`warning:` |nbsp| :diagtext:`integer constant not in range of enumerated type` |nbsp| :placeholder:`A`|
544+---------------------------------------------------------------------------------------------------------------+
545
546
547-Wassume
548--------
549This diagnostic is enabled by default.
550
551**Diagnostic text:**
552
553+-----------------------------------------------------------------------------------------------------------------------------------------+
554|:warning:`warning:` |nbsp| :diagtext:`the argument to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has side effects that will be discarded`|
555+-----------------------------------------------------------------------------------------------------------------------------------------+
556
557
558-Wat-protocol
559-------------
560This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
561
562-Watimport-in-framework-header
563------------------------------
564This diagnostic is enabled by default.
565
566**Diagnostic text:**
567
568+------------------------------------------------------------------------------------------------------------------------------------+
569|:warning:`warning:` |nbsp| :diagtext:`use of '@import' in framework header is discouraged, including this header requires -fmodules`|
570+------------------------------------------------------------------------------------------------------------------------------------+
571
572
573-Watomic-alignment
574------------------
575This diagnostic is enabled by default.
576
577**Diagnostic text:**
578
579+---------------------------+------------------------+------------------------------------------------------------------------------+
580|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`atomic operation may incur significant performance penalty`|
581|                           ||:diagtext:`large`     ||                                                                              |
582|                           |+----------------------+|                                                                              |
583|                           ||:diagtext:`misaligned`||                                                                              |
584|                           |+----------------------+|                                                                              |
585+---------------------------+------------------------+------------------------------------------------------------------------------+
586
587
588-Watomic-implicit-seq-cst
589-------------------------
590**Diagnostic text:**
591
592+---------------------------------------------------------------------------------------------------------------------------------------+
593|:warning:`warning:` |nbsp| :diagtext:`implicit use of sequentially-consistent atomic may incur stronger memory barriers than necessary`|
594+---------------------------------------------------------------------------------------------------------------------------------------+
595
596
597-Watomic-memory-ordering
598------------------------
599This diagnostic is enabled by default.
600
601**Diagnostic text:**
602
603+-------------------------------------------------------------------------------------------+
604|:warning:`warning:` |nbsp| :diagtext:`memory order argument to atomic operation is invalid`|
605+-------------------------------------------------------------------------------------------+
606
607
608-Watomic-properties
609-------------------
610Controls `-Wcustom-atomic-properties`_, `-Wimplicit-atomic-properties`_.
611
612
613-Watomic-property-with-user-defined-accessor
614--------------------------------------------
615This diagnostic is enabled by default.
616
617**Diagnostic text:**
618
619+--------------------------------------------------------------------------------------------------------------------------------------------+--------------------+-----------------------------------------------+--------------------+
620|:warning:`warning:` |nbsp| :diagtext:`writable atomic property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot pair a synthesized` |nbsp| |+------------------+| |nbsp| :diagtext:`with a user defined` |nbsp| |+------------------+|
621|                                                                                                                                            ||:diagtext:`getter`||                                               ||:diagtext:`getter`||
622|                                                                                                                                            |+------------------+|                                               |+------------------+|
623|                                                                                                                                            ||:diagtext:`setter`||                                               ||:diagtext:`setter`||
624|                                                                                                                                            |+------------------+|                                               |+------------------+|
625+--------------------------------------------------------------------------------------------------------------------------------------------+--------------------+-----------------------------------------------+--------------------+
626
627
628-Wattribute-packed-for-bitfield
629-------------------------------
630This diagnostic is enabled by default.
631
632**Diagnostic text:**
633
634+-------------------------------------------------------------------------------------------------------------------------------------------------+
635|:warning:`warning:` |nbsp| :diagtext:`'packed' attribute was ignored on bit-fields with single-byte alignment in older versions of GCC and Clang`|
636+-------------------------------------------------------------------------------------------------------------------------------------------------+
637
638
639-Wattributes
640------------
641This diagnostic is enabled by default.
642
643Controls `-Wignored-attributes`_, `-Wunknown-attributes`_.
644
645
646-Wauto-disable-vptr-sanitizer
647-----------------------------
648This diagnostic is enabled by default.
649
650**Diagnostic text:**
651
652+------------------------------------------------------------------------------------------------------+
653|:warning:`warning:` |nbsp| :diagtext:`implicitly disabling vptr sanitizer because rtti wasn't enabled`|
654+------------------------------------------------------------------------------------------------------+
655
656
657-Wauto-import
658-------------
659**Diagnostic text:**
660
661+-------------------------------------------------+---------------------------------+-------------------------------------------------------------------------+
662|:warning:`warning:` |nbsp| :diagtext:`treating #`|+-------------------------------+| |nbsp| :diagtext:`as an import of module '`:placeholder:`B`:diagtext:`'`|
663|                                                 ||:diagtext:`include`            ||                                                                         |
664|                                                 |+-------------------------------+|                                                                         |
665|                                                 ||:diagtext:`import`             ||                                                                         |
666|                                                 |+-------------------------------+|                                                                         |
667|                                                 ||:diagtext:`include\_next`      ||                                                                         |
668|                                                 |+-------------------------------+|                                                                         |
669|                                                 ||:diagtext:`\_\_include\_macros`||                                                                         |
670|                                                 |+-------------------------------+|                                                                         |
671+-------------------------------------------------+---------------------------------+-------------------------------------------------------------------------+
672
673
674-Wauto-storage-class
675--------------------
676This diagnostic is enabled by default.
677
678**Diagnostic text:**
679
680+---------------------------------------------------------------------------------------------------------------------------------------------+
681|:warning:`warning:` |nbsp| :diagtext:`'auto' storage class specifier is not permitted in C++11, and will not be supported in future releases`|
682+---------------------------------------------------------------------------------------------------------------------------------------------+
683
684
685-Wauto-var-id
686-------------
687This diagnostic is enabled by default.
688
689**Diagnostic text:**
690
691+-------------------------------------------------------------------------------------------------------+
692|:warning:`warning:` |nbsp| :diagtext:`'auto' deduced as 'id' in declaration of` |nbsp| :placeholder:`A`|
693+-------------------------------------------------------------------------------------------------------+
694
695
696-Wavailability
697--------------
698This diagnostic is enabled by default.
699
700**Diagnostic text:**
701
702+--------------------------------------------------------------------------------------------------------------+
703|:warning:`warning:` |nbsp| :diagtext:`'unavailable' availability overrides all other availability information`|
704+--------------------------------------------------------------------------------------------------------------+
705
706+------------------------------------------------------------------------------+----------------------------------------+
707|:warning:`warning:` |nbsp| :diagtext:`ignoring availability attribute` |nbsp| |+--------------------------------------+|
708|                                                                              ||:diagtext:`on '+load' method`         ||
709|                                                                              |+--------------------------------------+|
710|                                                                              ||:diagtext:`with constructor attribute`||
711|                                                                              |+--------------------------------------+|
712|                                                                              ||:diagtext:`with destructor attribute` ||
713|                                                                              |+--------------------------------------+|
714+------------------------------------------------------------------------------+----------------------------------------+
715
716+---------------------------------------------------------------------------------------------------------------+
717|:warning:`warning:` |nbsp| :diagtext:`only 'unavailable' and 'deprecated' are supported for Swift availability`|
718+---------------------------------------------------------------------------------------------------------------+
719
720+------------------------------------------------------------------------------------------------------------------------+
721|:warning:`warning:` |nbsp| :diagtext:`unknown platform` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in availability macro`|
722+------------------------------------------------------------------------------------------------------------------------+
723
724+----------------------------------------------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------------------------+------------------------+-------------------------------------------------------------------------------------+
725|: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`|
726|                                                                ||:diagtext:`introduced`||                                                                                                                                          ||:diagtext:`introduced`||                                                                                     |
727|                                                                |+----------------------+|                                                                                                                                          |+----------------------+|                                                                                     |
728|                                                                ||:diagtext:`deprecated`||                                                                                                                                          ||:diagtext:`deprecated`||                                                                                     |
729|                                                                |+----------------------+|                                                                                                                                          |+----------------------+|                                                                                     |
730|                                                                ||:diagtext:`obsoleted` ||                                                                                                                                          ||:diagtext:`obsoleted` ||                                                                                     |
731|                                                                |+----------------------+|                                                                                                                                          |+----------------------+|                                                                                     |
732+----------------------------------------------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------------------------+------------------------+-------------------------------------------------------------------------------------+
733
734+---------------------------------------------------------------------------------------------------------------------------+
735|:warning:`warning:` |nbsp| :diagtext:`use same version number separators '\_' or '.'; as in 'major\[.minor\[.subminor\]\]'`|
736+---------------------------------------------------------------------------------------------------------------------------+
737
738+---------------------------------------------------------------------------------------+
739|:warning:`warning:` |nbsp| :diagtext:`availability does not match previous declaration`|
740+---------------------------------------------------------------------------------------+
741
742+---------------------------+--------------------------------+--------------------------+-------------------------------+--------+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
743|:warning:`warning:` |nbsp| |+------------------------------+|:diagtext:`method` |nbsp| |+-----------------------------+| |nbsp| |+---------------------------------------------+| |nbsp| :diagtext:`on` |nbsp| :placeholder:`B` |nbsp| :diagtext:`(`:placeholder:`C` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`D`:diagtext:`)`|
744|                           ||                              ||                          ||:diagtext:`introduced after` ||        ||:diagtext:`the protocol method it implements`||                                                                                                                                               |
745|                           |+------------------------------+|                          |+-----------------------------+|        |+---------------------------------------------+|                                                                                                                                               |
746|                           ||:diagtext:`overriding` |nbsp| ||                          ||:diagtext:`deprecated before`||        ||:diagtext:`overridden method`                ||                                                                                                                                               |
747|                           |+------------------------------+|                          |+-----------------------------+|        |+---------------------------------------------+|                                                                                                                                               |
748|                           |                                |                          ||:diagtext:`obsoleted before` ||        |                                               |                                                                                                                                               |
749|                           |                                |                          |+-----------------------------+|        |                                               |                                                                                                                                               |
750+---------------------------+--------------------------------+--------------------------+-------------------------------+--------+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
751
752+---------------------------+--------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------+--------------------------------+
753|:warning:`warning:` |nbsp| |+------------------------------+|:diagtext:`method cannot be unavailable on` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when` |nbsp| |+---------------------------------------------+| |nbsp| :diagtext:`is available`|
754|                           ||                              ||                                                                                                   ||:diagtext:`the protocol method it implements`||                                |
755|                           |+------------------------------+|                                                                                                   |+---------------------------------------------+|                                |
756|                           ||:diagtext:`overriding` |nbsp| ||                                                                                                   ||:diagtext:`its overridden method`            ||                                |
757|                           |+------------------------------+|                                                                                                   |+---------------------------------------------+|                                |
758+---------------------------+--------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------+--------------------------------+
759
760
761-Wbackend-plugin
762----------------
763This diagnostic is enabled by default.
764
765**Diagnostic text:**
766
767The text of this diagnostic is not controlled by Clang.
768
769
770-Wbackslash-newline-escape
771--------------------------
772This diagnostic is enabled by default.
773
774**Diagnostic text:**
775
776+-------------------------------------------------------------------------------+
777|:warning:`warning:` |nbsp| :diagtext:`backslash and newline separated by space`|
778+-------------------------------------------------------------------------------+
779
780
781-Wbad-function-cast
782-------------------
783**Diagnostic text:**
784
785+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
786|:warning:`warning:` |nbsp| :diagtext:`cast from function call of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to non-matching type` |nbsp| :placeholder:`B`|
787+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
788
789
790-Wbinary-literal
791----------------
792Controls `-Wc++14-binary-literal`_, `-Wc++98-c++11-compat-binary-literal`_, `-Wgnu-binary-literal`_.
793
794
795-Wbind-to-temporary-copy
796------------------------
797Also controls `-Wc++98-compat-bind-to-temporary-copy`_.
798
799**Diagnostic text:**
800
801+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+
802|: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| |+---------------------+|
803|                                                                                                                                                                                              ||:diagtext:`private`  ||
804|                                                                                                                                                                                              |+---------------------+|
805|                                                                                                                                                                                              ||:diagtext:`protected`||
806|                                                                                                                                                                                              |+---------------------+|
807+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+
808
809+--------------------------------------------------------------------+------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
810|: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`|
811|                                                                    ||:diagtext:`copying variable`                        ||                                                                                                                                          |
812|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
813|                                                                    ||:diagtext:`copying parameter`                       ||                                                                                                                                          |
814|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
815|                                                                    ||:diagtext:`returning object`                        ||                                                                                                                                          |
816|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
817|                                                                    ||:diagtext:`initializing statement expression result`||                                                                                                                                          |
818|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
819|                                                                    ||:diagtext:`throwing object`                         ||                                                                                                                                          |
820|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
821|                                                                    ||:diagtext:`copying member subobject`                ||                                                                                                                                          |
822|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
823|                                                                    ||:diagtext:`copying array element`                   ||                                                                                                                                          |
824|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
825|                                                                    ||:diagtext:`allocating object`                       ||                                                                                                                                          |
826|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
827|                                                                    ||:diagtext:`copying temporary`                       ||                                                                                                                                          |
828|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
829|                                                                    ||:diagtext:`initializing base subobject`             ||                                                                                                                                          |
830|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
831|                                                                    ||:diagtext:`initializing vector element`             ||                                                                                                                                          |
832|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
833|                                                                    ||:diagtext:`capturing value`                         ||                                                                                                                                          |
834|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
835+--------------------------------------------------------------------+------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
836
837
838-Wbinding-in-condition
839----------------------
840This diagnostic is enabled by default.
841
842**Diagnostic text:**
843
844+--------------------------------------------------------------------------------------------------------------+
845|:warning:`warning:` |nbsp| :diagtext:`ISO C++17 does not permit structured binding declaration in a condition`|
846+--------------------------------------------------------------------------------------------------------------+
847
848
849-Wbitfield-constant-conversion
850------------------------------
851This diagnostic is enabled by default.
852
853**Diagnostic text:**
854
855+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
856|: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`|
857+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
858
859
860-Wbitfield-enum-conversion
861--------------------------
862**Diagnostic text:**
863
864+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
865|:warning:`warning:` |nbsp| :diagtext:`bit-field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not wide enough to store all enumerators of` |nbsp| :placeholder:`B`|
866+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
867
868+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
869|: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`|
870+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
871
872+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
873|: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`|
874+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
875
876
877-Wbitfield-width
878----------------
879This diagnostic is enabled by default.
880
881**Diagnostic text:**
882
883+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+
884|: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`|+-------------+|
885|                                                                                                                                                                                                                   ||             ||
886|                                                                                                                                                                                                                   |+-------------+|
887|                                                                                                                                                                                                                   ||:diagtext:`s`||
888|                                                                                                                                                                                                                   |+-------------+|
889+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+
890
891+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+
892|: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`|+-------------+|
893|                                                                                                                                                                                                                                                        ||             ||
894|                                                                                                                                                                                                                                                        |+-------------+|
895|                                                                                                                                                                                                                                                        ||:diagtext:`s`||
896|                                                                                                                                                                                                                                                        |+-------------+|
897+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+
898
899
900-Wbitwise-op-parentheses
901------------------------
902This diagnostic is enabled by default.
903
904**Diagnostic text:**
905
906+-----------------------------------------------------------------------------------------------------------+
907|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' within '`:placeholder:`B`:diagtext:`'`|
908+-----------------------------------------------------------------------------------------------------------+
909
910
911-Wblock-capture-autoreleasing
912-----------------------------
913This diagnostic is enabled by default.
914
915**Diagnostic text:**
916
917+-----------------------------------------------------------------------------------------------------------------------------+
918|:warning:`warning:` |nbsp| :diagtext:`block captures an autoreleasing out-parameter, which may result in use-after-free bugs`|
919+-----------------------------------------------------------------------------------------------------------------------------+
920
921
922-Wbool-conversion
923-----------------
924This diagnostic is enabled by default.
925
926Also controls `-Wpointer-bool-conversion`_, `-Wundefined-bool-conversion`_.
927
928**Diagnostic text:**
929
930+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
931|:warning:`warning:` |nbsp| :diagtext:`initialization of pointer of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to null from a constant boolean expression`|
932+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
933
934
935-Wbool-conversions
936------------------
937Synonym for `-Wbool-conversion`_.
938
939
940-Wbraced-scalar-init
941--------------------
942This diagnostic is enabled by default.
943
944**Diagnostic text:**
945
946+-----------------------------------------------------------------------+
947|:warning:`warning:` |nbsp| :diagtext:`braces around scalar initializer`|
948+-----------------------------------------------------------------------+
949
950
951-Wbridge-cast
952-------------
953This diagnostic is enabled by default.
954
955**Diagnostic text:**
956
957+------------------------------------------------------------------------------------------------------------------------------------------+
958|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bridges to` |nbsp| :placeholder:`B`:diagtext:`, not` |nbsp| :placeholder:`C`|
959+------------------------------------------------------------------------------------------------------------------------------------------+
960
961+-------------------------------------------------------------------------------------------------------+
962|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot bridge to` |nbsp| :placeholder:`B`|
963+-------------------------------------------------------------------------------------------------------+
964
965
966-Wbuiltin-macro-redefined
967-------------------------
968This diagnostic is enabled by default.
969
970**Diagnostic text:**
971
972+---------------------------------------------------------------+
973|:warning:`warning:` |nbsp| :diagtext:`redefining builtin macro`|
974+---------------------------------------------------------------+
975
976+---------------------------------------------------------------+
977|:warning:`warning:` |nbsp| :diagtext:`undefining builtin macro`|
978+---------------------------------------------------------------+
979
980
981-Wbuiltin-memcpy-chk-size
982-------------------------
983This diagnostic is enabled by default.
984
985**Diagnostic text:**
986
987+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
988|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' will always overflow; destination buffer has size` |nbsp| :placeholder:`B`:diagtext:`, but size argument is` |nbsp| :placeholder:`C`|
989+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
990
991
992-Wbuiltin-requires-header
993-------------------------
994This diagnostic is enabled by default.
995
996**Diagnostic text:**
997
998+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
999|:warning:`warning:` |nbsp| :diagtext:`declaration of built-in function '`:placeholder:`B`:diagtext:`' requires inclusion of the header <`:placeholder:`A`:diagtext:`>`|
1000+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1001
1002
1003-Wc++-compat
1004------------
1005**Diagnostic text:**
1006
1007+---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+
1008|:warning:`warning:` |nbsp| |+-------------------------+|+------------------+| |nbsp| :diagtext:`has size 0 in C,` |nbsp| |+-------------------------+| |nbsp| :diagtext:`in C++`|
1009|                           ||                         |||:diagtext:`struct`||                                            ||:diagtext:`size 1`       ||                          |
1010|                           |+-------------------------+|+------------------+|                                            |+-------------------------+|                          |
1011|                           ||:diagtext:`empty` |nbsp| |||:diagtext:`union` ||                                            ||:diagtext:`non-zero size`||                          |
1012|                           |+-------------------------+|+------------------+|                                            |+-------------------------+|                          |
1013+---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+
1014
1015
1016-Wc++0x-compat
1017--------------
1018Synonym for `-Wc++11-compat`_.
1019
1020
1021-Wc++0x-extensions
1022------------------
1023Synonym for `-Wc++11-extensions`_.
1024
1025
1026-Wc++0x-narrowing
1027-----------------
1028Synonym for `-Wc++11-narrowing`_.
1029
1030
1031-Wc++11-compat
1032--------------
1033Some of the diagnostics controlled by this flag are enabled by default.
1034
1035Also 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`_.
1036
1037**Diagnostic text:**
1038
1039+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+
1040|: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`|
1041|                                                                                                                                                                                                                 ||:diagtext:`have type 'long long'`||                                    |
1042|                                                                                                                                                                                                                 |+---------------------------------+|                                    |
1043|                                                                                                                                                                                                                 ||:diagtext:`be ill-formed`        ||                                    |
1044|                                                                                                                                                                                                                 |+---------------------------------+|                                    |
1045+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+
1046
1047+--------------------------------------------------------------------------------------------------------------+
1048|:warning:`warning:` |nbsp| :diagtext:`'auto' storage class specifier is redundant and incompatible with C++11`|
1049+--------------------------------------------------------------------------------------------------------------+
1050
1051+-------------------------------------------------------------------------------------------------------------------------+
1052|:warning:`warning:` |nbsp| :diagtext:`identifier after literal will be treated as a user-defined literal suffix in C++11`|
1053+-------------------------------------------------------------------------------------------------------------------------+
1054
1055+-------------------------------------------------------------------------------------------+
1056|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is a keyword in C++11`|
1057+-------------------------------------------------------------------------------------------+
1058
1059+--------------------------------------------------------------------------------------------------------------------------------+
1060|:warning:`warning:` |nbsp| :diagtext:`use of right-shift operator ('>>') in template argument will require parentheses in C++11`|
1061+--------------------------------------------------------------------------------------------------------------------------------+
1062
1063+--------------------------------------------------------------------------------+
1064|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation cannot be 'inline'`|
1065+--------------------------------------------------------------------------------+
1066
1067+--------------------------------------------------------------------------------------------------------------------------------------+
1068|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`must occur at global scope`|
1069+--------------------------------------------------------------------------------------------------------------------------------------+
1070
1071+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
1072|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not in a namespace enclosing` |nbsp| :placeholder:`B`|
1073+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
1074
1075+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
1076|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`must occur in namespace` |nbsp| :placeholder:`B`|
1077+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
1078
1079+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+
1080|: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`|
1081|                                                                                                                                                                          ||:diagtext:`have type 'long long'`||                                    |
1082|                                                                                                                                                                          |+---------------------------------+|                                    |
1083|                                                                                                                                                                          ||:diagtext:`be ill-formed`        ||                                    |
1084|                                                                                                                                                                          |+---------------------------------+|                                    |
1085+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+
1086
1087
1088-Wc++11-compat-deprecated-writable-strings
1089------------------------------------------
1090This diagnostic is enabled by default.
1091
1092**Diagnostic text:**
1093
1094+---------------------------------------------------------------------------------------------------------------------------------+
1095|:warning:`warning:` |nbsp| :diagtext:`conversion from string literal to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated`|
1096+---------------------------------------------------------------------------------------------------------------------------------+
1097
1098
1099-Wc++11-compat-pedantic
1100-----------------------
1101Some of the diagnostics controlled by this flag are enabled by default.
1102
1103Controls `-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`_.
1104
1105
1106-Wc++11-compat-reserved-user-defined-literal
1107--------------------------------------------
1108**Diagnostic text:**
1109
1110+----------------------------------------------------------------------------------------------------------------------------------+
1111|:warning:`warning:` |nbsp| :diagtext:`identifier after literal will be treated as a reserved user-defined literal suffix in C++11`|
1112+----------------------------------------------------------------------------------------------------------------------------------+
1113
1114
1115-Wc++11-extensions
1116------------------
1117Some of the diagnostics controlled by this flag are enabled by default.
1118
1119Also controls `-Wc++11-extra-semi`_, `-Wc++11-inline-namespace`_, `-Wc++11-long-long`_.
1120
1121**Diagnostic text:**
1122
1123+-------------------------------------------------------------------------------+
1124|:warning:`warning:` |nbsp| :diagtext:`alias declarations are a C++11 extension`|
1125+-------------------------------------------------------------------------------+
1126
1127+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+
1128|: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`|
1129|                                                                                                                                                   ||:diagtext:`integral`   ||                                                                                        |
1130|                                                                                                                                                   |+-----------------------+|                                                                                        |
1131|                                                                                                                                                   ||:diagtext:`enumeration`||                                                                                        |
1132|                                                                                                                                                   |+-----------------------+|                                                                                        |
1133+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+
1134
1135+---------------------------------------------------------------------------------+
1136|:warning:`warning:` |nbsp| :diagtext:`'auto' type specifier is a C++11 extension`|
1137+---------------------------------------------------------------------------------+
1138
1139+-----------------------------------------------------------------------------------------------------------+
1140|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a C++11 extension`|
1141+-----------------------------------------------------------------------------------------------------------+
1142
1143+---------------------------+-----------------------+--------------------------------------------------------------+
1144|:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`function definitions are a C++11 extension`|
1145|                           ||:diagtext:`defaulted`||                                                              |
1146|                           |+---------------------+|                                                              |
1147|                           ||:diagtext:`deleted`  ||                                                              |
1148|                           |+---------------------+|                                                              |
1149+---------------------------+-----------------------+--------------------------------------------------------------+
1150
1151+-----------------------------------------------------------------------------------------------------------------------------------+
1152|:warning:`warning:` |nbsp| :diagtext:`befriending enumeration type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C++11 extension`|
1153+-----------------------------------------------------------------------------------------------------------------------------------+
1154
1155+--------------------------------------------------------------------------------------------------+
1156|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C++11 extension`|
1157+--------------------------------------------------------------------------------------------------+
1158
1159+------------------------------------------------------------------------------------------+
1160|:warning:`warning:` |nbsp| :diagtext:`explicit conversion functions are a C++11 extension`|
1161+------------------------------------------------------------------------------------------+
1162
1163+-----------------------------------------------------------------------------+
1164|:warning:`warning:` |nbsp| :diagtext:`extern templates are a C++11 extension`|
1165+-----------------------------------------------------------------------------+
1166
1167+--------------------------------------------------------------------------------+
1168|:warning:`warning:` |nbsp| :diagtext:`range-based for loop is a C++11 extension`|
1169+--------------------------------------------------------------------------------+
1170
1171+------------------------------------------------------------------------------------------+
1172|:warning:`warning:` |nbsp| :diagtext:`generalized initializer lists are a C++11 extension`|
1173+------------------------------------------------------------------------------------------+
1174
1175+---------------------------------------------------------------------------------------------------------+
1176|:warning:`warning:` |nbsp| :diagtext:`use of enumeration in a nested name specifier is a C++11 extension`|
1177+---------------------------------------------------------------------------------------------------------+
1178
1179+----------------------------------------------------------------------------------------------------------------------------+
1180|:warning:`warning:` |nbsp| :diagtext:`non-class friend type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C++11 extension`|
1181+----------------------------------------------------------------------------------------------------------------------------+
1182
1183+-------------------------------------------------------------------------------------------------------------+
1184|:warning:`warning:` |nbsp| :diagtext:`in-class initialization of non-static data member is a C++11 extension`|
1185+-------------------------------------------------------------------------------------------------------------+
1186
1187+--------------------------------------------------------------------------------------------------+
1188|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' keyword is a C++11 extension`|
1189+--------------------------------------------------------------------------------------------------+
1190
1191+----------------------------------------------------------------------------------------------+
1192|:warning:`warning:` |nbsp| :diagtext:`reference qualifiers on functions are a C++11 extension`|
1193+----------------------------------------------------------------------------------------------+
1194
1195+------------------------------------------------------------------------------+
1196|:warning:`warning:` |nbsp| :diagtext:`rvalue references are a C++11 extension`|
1197+------------------------------------------------------------------------------+
1198
1199+--------------------------------------------------------------------------------+
1200|:warning:`warning:` |nbsp| :diagtext:`scoped enumerations are a C++11 extension`|
1201+--------------------------------------------------------------------------------+
1202
1203+----------------------------------------------------------------------------------------------------------------------------------+
1204|:warning:`warning:` |nbsp| :diagtext:`static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in union is a C++11 extension`|
1205+----------------------------------------------------------------------------------------------------------------------------------+
1206
1207+--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------+
1208|:warning:`warning:` |nbsp| :diagtext:`non-type template argument referring to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with internal linkage is a C++11 extension`|
1209|                                                                                      ||:diagtext:`function`||                                                                                      |
1210|                                                                                      |+--------------------+|                                                                                      |
1211|                                                                                      ||:diagtext:`object`  ||                                                                                      |
1212|                                                                                      |+--------------------+|                                                                                      |
1213+--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------+
1214
1215+-------------------------------------------------------------------------------+
1216|:warning:`warning:` |nbsp| :diagtext:`'template' keyword outside of a template`|
1217+-------------------------------------------------------------------------------+
1218
1219+---------------------------------------------------------------------------------------------------------------+
1220|:warning:`warning:` |nbsp| :diagtext:`default template arguments for a function template are a C++11 extension`|
1221+---------------------------------------------------------------------------------------------------------------+
1222
1223+------------------------------------------------------------------------------+
1224|:warning:`warning:` |nbsp| :diagtext:`'typename' occurs outside of a template`|
1225+------------------------------------------------------------------------------+
1226
1227+------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------+
1228|:warning:`warning:` |nbsp| :diagtext:`unelaborated friend declaration is a C++11 extension; specify '`|+---------------------+|:diagtext:`' to befriend` |nbsp| :placeholder:`B`|
1229|                                                                                                      ||:diagtext:`struct`   ||                                                 |
1230|                                                                                                      |+---------------------+|                                                 |
1231|                                                                                                      ||:diagtext:`interface`||                                                 |
1232|                                                                                                      |+---------------------+|                                                 |
1233|                                                                                                      ||:diagtext:`union`    ||                                                 |
1234|                                                                                                      |+---------------------+|                                                 |
1235|                                                                                                      ||:diagtext:`class`    ||                                                 |
1236|                                                                                                      |+---------------------+|                                                 |
1237|                                                                                                      ||:diagtext:`enum`     ||                                                 |
1238|                                                                                                      |+---------------------+|                                                 |
1239+------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------+
1240
1241+-------------------------------------------------------------------------------+
1242|:warning:`warning:` |nbsp| :diagtext:`variadic templates are a C++11 extension`|
1243+-------------------------------------------------------------------------------+
1244
1245
1246-Wc++11-extra-semi
1247------------------
1248**Diagnostic text:**
1249
1250+-------------------------------------------------------------------------------------------+
1251|:warning:`warning:` |nbsp| :diagtext:`extra ';' outside of a function is a C++11 extension`|
1252+-------------------------------------------------------------------------------------------+
1253
1254
1255-Wc++11-inline-namespace
1256------------------------
1257This diagnostic is enabled by default.
1258
1259**Diagnostic text:**
1260
1261+----------------------------------------------------------------------------+
1262|:warning:`warning:` |nbsp| :diagtext:`inline namespaces are a C++11 feature`|
1263+----------------------------------------------------------------------------+
1264
1265
1266-Wc++11-long-long
1267-----------------
1268**Diagnostic text:**
1269
1270+-----------------------------------------------------------------------+
1271|:warning:`warning:` |nbsp| :diagtext:`'long long' is a C++11 extension`|
1272+-----------------------------------------------------------------------+
1273
1274
1275-Wc++11-narrowing
1276-----------------
1277Some of the diagnostics controlled by this flag are enabled by default.
1278
1279**Diagnostic text:**
1280
1281+-----------------------+----------------------------------------+--------+--------------------------------------------------------------------------------------------------------------------------+
1282|:error:`error:` |nbsp| |+--------------------------------------+| |nbsp| |+------------------------------------------------------------------------------------------------------------------------+|
1283|                       ||:diagtext:`case value`                ||        ||+--------------------------------------------------------------------------------------------------------------+        ||
1284|                       |+--------------------------------------+|        |||:diagtext:`cannot be narrowed from type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`|        ||
1285|                       ||:diagtext:`enumerator value`          ||        ||+--------------------------------------------------------------------------------------------------------------+        ||
1286|                       |+--------------------------------------+|        |+------------------------------------------------------------------------------------------------------------------------+|
1287|                       ||:diagtext:`non-type template argument`||        ||+----------------------------------------------------------------------------------------------------------------------+||
1288|                       |+--------------------------------------+|        |||:diagtext:`evaluates to` |nbsp| :placeholder:`C`:diagtext:`, which cannot be narrowed to type` |nbsp| :placeholder:`D`|||
1289|                       ||:diagtext:`array size`                ||        ||+----------------------------------------------------------------------------------------------------------------------+||
1290|                       |+--------------------------------------+|        |+------------------------------------------------------------------------------------------------------------------------+|
1291|                       ||:diagtext:`constexpr if condition`    ||        |                                                                                                                          |
1292|                       |+--------------------------------------+|        |                                                                                                                          |
1293+-----------------------+----------------------------------------+--------+--------------------------------------------------------------------------------------------------------------------------+
1294
1295+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1296|:error:`error:` |nbsp| :diagtext:`constant expression evaluates to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`which cannot be narrowed to type` |nbsp| :placeholder:`B`|
1297+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1298
1299+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1300|:error:`error:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be narrowed to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in initializer list`|
1301+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1302
1303+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1304|: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`|
1305+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1306
1307+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1308|: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`|
1309+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1310
1311+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1312|: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`|
1313+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1314
1315+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1316|: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`|
1317+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1318
1319
1320-Wc++14-binary-literal
1321----------------------
1322**Diagnostic text:**
1323
1324+------------------------------------------------------------------------------------+
1325|:warning:`warning:` |nbsp| :diagtext:`binary integer literals are a C++14 extension`|
1326+------------------------------------------------------------------------------------+
1327
1328
1329-Wc++14-compat
1330--------------
1331Controls `-Wc++98-c++11-c++14-c++17-compat`_, `-Wc++98-c++11-c++14-compat`_.
1332
1333
1334-Wc++14-compat-pedantic
1335-----------------------
1336Controls `-Wc++14-compat`_, `-Wc++98-c++11-c++14-c++17-compat-pedantic`_, `-Wc++98-c++11-c++14-compat-pedantic`_.
1337
1338
1339-Wc++14-extensions
1340------------------
1341Some of the diagnostics controlled by this flag are enabled by default.
1342
1343Also controls `-Wc++14-binary-literal`_.
1344
1345**Diagnostic text:**
1346
1347+-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
1348|:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`|
1349|                                                                                   ||:diagtext:`function`   ||                                        |
1350|                                                                                   |+-----------------------+|                                        |
1351|                                                                                   ||:diagtext:`constructor`||                                        |
1352|                                                                                   |+-----------------------+|                                        |
1353+-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
1354
1355+------------------------------------------------------------------------------------------------------------+
1356|:warning:`warning:` |nbsp| :diagtext:`multiple return statements in constexpr function is a C++14 extension`|
1357+------------------------------------------------------------------------------------------------------------+
1358
1359+----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
1360|:warning:`warning:` |nbsp| :diagtext:`variable declaration in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`|
1361|                                                                                  ||:diagtext:`function`   ||                                        |
1362|                                                                                  |+-----------------------+|                                        |
1363|                                                                                  ||:diagtext:`constructor`||                                        |
1364|                                                                                  |+-----------------------+|                                        |
1365+----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
1366
1367+-----------------------------------------------------------------------------+-------------------------+----------------------------------------+
1368|:warning:`warning:` |nbsp| :diagtext:`type definition in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`|
1369|                                                                             ||:diagtext:`function`   ||                                        |
1370|                                                                             |+-----------------------+|                                        |
1371|                                                                             ||:diagtext:`constructor`||                                        |
1372|                                                                             |+-----------------------+|                                        |
1373+-----------------------------------------------------------------------------+-------------------------+----------------------------------------+
1374
1375+---------------------------------------------------------------------------------------------------------------------------+
1376|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++14 extension`|
1377+---------------------------------------------------------------------------------------------------------------------------+
1378
1379+-------------------------------------------------------------------------------------------+
1380|:warning:`warning:` |nbsp| :diagtext:`'decltype(auto)' type specifier is a C++14 extension`|
1381+-------------------------------------------------------------------------------------------+
1382
1383+----------------------------------------------------------------------------------------+
1384|:warning:`warning:` |nbsp| :diagtext:`initialized lambda captures are a C++14 extension`|
1385+----------------------------------------------------------------------------------------+
1386
1387+-------------------------------------------------------------------------------+
1388|:warning:`warning:` |nbsp| :diagtext:`variable templates are a C++14 extension`|
1389+-------------------------------------------------------------------------------+
1390
1391
1392-Wc++17-compat
1393--------------
1394Some of the diagnostics controlled by this flag are enabled by default.
1395
1396Controls `-Wc++17-compat-mangling`_, `-Wc++98-c++11-c++14-c++17-compat`_, `-Wdeprecated-increment-bool`_, `-Wdeprecated-register`_.
1397
1398
1399-Wc++17-compat-mangling
1400-----------------------
1401This diagnostic is enabled by default.
1402
1403**Diagnostic text:**
1404
1405+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1406|: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`|
1407+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1408
1409
1410-Wc++17-compat-pedantic
1411-----------------------
1412Some of the diagnostics controlled by this flag are enabled by default.
1413
1414Controls `-Wc++17-compat`_, `-Wc++98-c++11-c++14-c++17-compat-pedantic`_.
1415
1416
1417-Wc++17-extensions
1418------------------
1419Some of the diagnostics controlled by this flag are enabled by default.
1420
1421**Diagnostic text:**
1422
1423+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1424|:warning:`warning:` |nbsp| :diagtext:`ISO C++ standards before C++17 do not allow new expression for type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to use list-initialization`|
1425+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1426
1427+------------------------------------------------------------------------+
1428|:warning:`warning:` |nbsp| :diagtext:`constexpr if is a C++17 extension`|
1429+------------------------------------------------------------------------+
1430
1431+---------------------------------------------------------------------------------------------+
1432|:warning:`warning:` |nbsp| :diagtext:`'constexpr' on lambda expressions is a C++17 extension`|
1433+---------------------------------------------------------------------------------------------+
1434
1435+---------------------------------------------------------------------------------------------------------------------------+
1436|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++17 extension`|
1437+---------------------------------------------------------------------------------------------------------------------------+
1438
1439+---------------------------------------------------------------------------------------+
1440|:warning:`warning:` |nbsp| :diagtext:`decomposition declarations are a C++17 extension`|
1441+---------------------------------------------------------------------------------------+
1442
1443+--------------------------------------------------------------------------------+
1444|:warning:`warning:` |nbsp| :diagtext:`pack fold expression is a C++17 extension`|
1445+--------------------------------------------------------------------------------+
1446
1447+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1448|:warning:`warning:` |nbsp| :diagtext:`'begin' and 'end' returning different types (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`) is a C++17 extension`|
1449+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1450
1451+----------------------------------------------------------------------------------------+
1452|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are a C++17 feature`|
1453+----------------------------------------------------------------------------------------+
1454
1455+----------------------------------------+--------------------+-------------------------------------------------------------+
1456|:warning:`warning:` |nbsp| :diagtext:`'`|+------------------+|:diagtext:`' initialization statements are a C++17 extension`|
1457|                                        ||:diagtext:`if`    ||                                                             |
1458|                                        |+------------------+|                                                             |
1459|                                        ||:diagtext:`switch`||                                                             |
1460|                                        |+------------------+|                                                             |
1461+----------------------------------------+--------------------+-------------------------------------------------------------+
1462
1463+-----------------------------------------------------------------------------+
1464|:warning:`warning:` |nbsp| :diagtext:`inline variables are a C++17 extension`|
1465+-----------------------------------------------------------------------------+
1466
1467+---------------------------------------------------------------------------------------------------------------------+
1468|:warning:`warning:` |nbsp| :diagtext:`use of multiple declarators in a single using declaration is a C++17 extension`|
1469+---------------------------------------------------------------------------------------------------------------------+
1470
1471+-------------------------------------------------------------------------------------------------------------------------+
1472|:warning:`warning:` |nbsp| :diagtext:`nested namespace definition is a C++17 extension; define each namespace separately`|
1473+-------------------------------------------------------------------------------------------------------------------------+
1474
1475+------------------------------------------------------------+---------------------------+-----------------------------------------------------+
1476|:warning:`warning:` |nbsp| :diagtext:`attributes on` |nbsp| |+-------------------------+| |nbsp| :diagtext:`declaration are a C++17 extension`|
1477|                                                            ||:diagtext:`a namespace`  ||                                                     |
1478|                                                            |+-------------------------+|                                                     |
1479|                                                            ||:diagtext:`an enumerator`||                                                     |
1480|                                                            |+-------------------------+|                                                     |
1481+------------------------------------------------------------+---------------------------+-----------------------------------------------------+
1482
1483+---------------------------------------------------------------------------------------+
1484|:warning:`warning:` |nbsp| :diagtext:`capture of '\*this' by copy is a C++17 extension`|
1485+---------------------------------------------------------------------------------------+
1486
1487+------------------------------------------------------------------------------------------+
1488|:warning:`warning:` |nbsp| :diagtext:`static\_assert with no message is a C++17 extension`|
1489+------------------------------------------------------------------------------------------+
1490
1491+--------------------------------------------------------------------------------------------------------+
1492|:warning:`warning:` |nbsp| :diagtext:`template template parameter using 'typename' is a C++17 extension`|
1493+--------------------------------------------------------------------------------------------------------+
1494
1495+--------------------------------------------------------------------------------------------------+
1496|:warning:`warning:` |nbsp| :diagtext:`default scope specifier for attributes is a C++17 extension`|
1497+--------------------------------------------------------------------------------------------------+
1498
1499+-----------------------------------------------------------------------------------------------+
1500|:warning:`warning:` |nbsp| :diagtext:`pack expansion of using declaration is a C++17 extension`|
1501+-----------------------------------------------------------------------------------------------+
1502
1503
1504-Wc++1y-extensions
1505------------------
1506Synonym for `-Wc++14-extensions`_.
1507
1508
1509-Wc++1z-compat
1510--------------
1511Synonym for `-Wc++17-compat`_.
1512
1513
1514-Wc++1z-compat-mangling
1515-----------------------
1516Synonym for `-Wc++17-compat-mangling`_.
1517
1518
1519-Wc++1z-extensions
1520------------------
1521Synonym for `-Wc++17-extensions`_.
1522
1523
1524-Wc++2a-compat
1525--------------
1526Some of the diagnostics controlled by this flag are enabled by default.
1527
1528**Diagnostic text:**
1529
1530+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1531|:warning:`warning:` |nbsp| :diagtext:`aggregate initialization of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with user-declared constructors is incompatible with C++2a`|
1532+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1533
1534+------------------------------------------------------------------------------------------------------------------+
1535|:warning:`warning:` |nbsp| :diagtext:`'<=>' is a single token in C++2a; add a space to avoid a change in behavior`|
1536+------------------------------------------------------------------------------------------------------------------+
1537
1538+--------------------------------------------------------------------------------------------------------------------------------------------+
1539|:warning:`warning:` |nbsp| :diagtext:`type of UTF-8 string literal will change from array of const char to array of const char8\_t in C++2a`|
1540+--------------------------------------------------------------------------------------------------------------------------------------------+
1541
1542+-------------------------------------------------------------------------------------------+
1543|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is a keyword in C++2a`|
1544+-------------------------------------------------------------------------------------------+
1545
1546
1547-Wc++2a-compat-pedantic
1548-----------------------
1549Synonym for `-Wc++2a-compat`_.
1550
1551
1552-Wc++2a-extensions
1553------------------
1554Some of the diagnostics controlled by this flag are enabled by default.
1555
1556**Diagnostic text:**
1557
1558+----------------------------------------------------------------------------------------------------+
1559|:warning:`warning:` |nbsp| :diagtext:`default member initializer for bit-field is a C++2a extension`|
1560+----------------------------------------------------------------------------------------------------+
1561
1562+-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
1563|:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++2a extension`|
1564|                                                                                   ||:diagtext:`function`   ||                                        |
1565|                                                                                   |+-----------------------+|                                        |
1566|                                                                                   ||:diagtext:`constructor`||                                        |
1567|                                                                                   |+-----------------------+|                                        |
1568+-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
1569
1570+------------------------------------------------------------------------------+-------------------------+----------------------------------------+
1571|:warning:`warning:` |nbsp| :diagtext:`function try block in constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++2a extension`|
1572|                                                                              ||:diagtext:`function`   ||                                        |
1573|                                                                              |+-----------------------+|                                        |
1574|                                                                              ||:diagtext:`constructor`||                                        |
1575|                                                                              |+-----------------------+|                                        |
1576+------------------------------------------------------------------------------+-------------------------+----------------------------------------+
1577
1578+--------------------------------------------------------------------------------------------------------------------+
1579|:warning:`warning:` |nbsp| :diagtext:`explicit capture of 'this' with a capture default of '=' is a C++2a extension`|
1580+--------------------------------------------------------------------------------------------------------------------+
1581
1582+-----------------------------------------------------------------------------------------------------------+
1583|:warning:`warning:` |nbsp| :diagtext:`range-based for loop initialization statements are a C++2a extension`|
1584+-----------------------------------------------------------------------------------------------------------+
1585
1586+----------------------------------------------------------------------------------------------+
1587|:warning:`warning:` |nbsp| :diagtext:`inline nested namespace definition is a C++2a extension`|
1588+----------------------------------------------------------------------------------------------+
1589
1590+--------------------------------------------------------------------------------------------------------------------------+
1591|:warning:`warning:` |nbsp| :diagtext:`invoking a pointer to a 'const &' member function on an rvalue is a C++2a extension`|
1592+--------------------------------------------------------------------------------------------------------------------------+
1593
1594
1595-Wc++98-c++11-c++14-c++17-compat
1596--------------------------------
1597**Diagnostic text:**
1598
1599+-------------------------------------------------------------------------------------------------------------------------------+
1600|:warning:`warning:` |nbsp| :diagtext:`default member initializer for bit-field is incompatible with C++ standards before C++2a`|
1601+-------------------------------------------------------------------------------------------------------------------------------+
1602
1603+-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1604|:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++2a`|
1605|                                                                                   ||:diagtext:`function`   ||                                                                   |
1606|                                                                                   |+-----------------------+|                                                                   |
1607|                                                                                   ||:diagtext:`constructor`||                                                                   |
1608|                                                                                   |+-----------------------+|                                                                   |
1609+-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1610
1611+------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1612|:warning:`warning:` |nbsp| :diagtext:`function try block in constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++2a`|
1613|                                                                              ||:diagtext:`function`   ||                                                                   |
1614|                                                                              |+-----------------------+|                                                                   |
1615|                                                                              ||:diagtext:`constructor`||                                                                   |
1616|                                                                              |+-----------------------+|                                                                   |
1617+------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1618
1619+-------------------------------------------------------------------------+--------------------------------------+----------------------------------------------------------------------------------------------------------------+
1620|:warning:`warning:` |nbsp| :diagtext:`explicitly defaulting this` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`with a type different from the implicit type is incompatible with C++ standards before C++2a`|
1621|                                                                         ||:diagtext:`default constructor`     ||                                                                                                                |
1622|                                                                         |+------------------------------------+|                                                                                                                |
1623|                                                                         ||:diagtext:`copy constructor`        ||                                                                                                                |
1624|                                                                         |+------------------------------------+|                                                                                                                |
1625|                                                                         ||:diagtext:`move constructor`        ||                                                                                                                |
1626|                                                                         |+------------------------------------+|                                                                                                                |
1627|                                                                         ||:diagtext:`copy assignment operator`||                                                                                                                |
1628|                                                                         |+------------------------------------+|                                                                                                                |
1629|                                                                         ||:diagtext:`move assignment operator`||                                                                                                                |
1630|                                                                         |+------------------------------------+|                                                                                                                |
1631|                                                                         ||:diagtext:`destructor`              ||                                                                                                                |
1632|                                                                         |+------------------------------------+|                                                                                                                |
1633+-------------------------------------------------------------------------+--------------------------------------+----------------------------------------------------------------------------------------------------------------+
1634
1635+-----------------------------------------------------------------------------------------------------------------------------------------------+
1636|:warning:`warning:` |nbsp| :diagtext:`explicit capture of 'this' with a capture default of '=' is incompatible with C++ standards before C++2a`|
1637+-----------------------------------------------------------------------------------------------------------------------------------------------+
1638
1639+--------------------------------------------------------------------------------------------------------------------------------------+
1640|:warning:`warning:` |nbsp| :diagtext:`range-based for loop initialization statements are incompatible with C++ standards before C++2a`|
1641+--------------------------------------------------------------------------------------------------------------------------------------+
1642
1643+-------------------------------------------------------------------------------------------------------------------------+
1644|:warning:`warning:` |nbsp| :diagtext:`inline nested namespace definition is incompatible with C++ standards before C++2a`|
1645+-------------------------------------------------------------------------------------------------------------------------+
1646
1647+---------------------------+----------------------------------+-----------------------------------------------------------------------------+
1648|:warning:`warning:` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`of lambda is incompatible with C++ standards before C++2a`|
1649|                           ||:diagtext:`default construction`||                                                                             |
1650|                           |+--------------------------------+|                                                                             |
1651|                           ||:diagtext:`assignment`          ||                                                                             |
1652|                           |+--------------------------------+|                                                                             |
1653+---------------------------+----------------------------------+-----------------------------------------------------------------------------+
1654
1655+-----------------------------------------------------------------------------------------------------+
1656|:warning:`warning:` |nbsp| :diagtext:`'<=>' operator is incompatible with C++ standards before C++2a`|
1657+-----------------------------------------------------------------------------------------------------+
1658
1659+----------------------------------------------------------------------------------------------------------------+
1660|:warning:`warning:` |nbsp| :diagtext:`'char8\_t' type specifier is incompatible with C++ standards before C++20`|
1661+----------------------------------------------------------------------------------------------------------------+
1662
1663
1664-Wc++98-c++11-c++14-c++17-compat-pedantic
1665-----------------------------------------
1666Also controls `-Wc++98-c++11-c++14-c++17-compat`_.
1667
1668**Diagnostic text:**
1669
1670+-----------------------------------------------------------------------------------------------------------------------------------------------------+
1671|:warning:`warning:` |nbsp| :diagtext:`invoking a pointer to a 'const &' member function on an rvalue is incompatible with C++ standards before C++2a`|
1672+-----------------------------------------------------------------------------------------------------------------------------------------------------+
1673
1674
1675-Wc++98-c++11-c++14-compat
1676--------------------------
1677**Diagnostic text:**
1678
1679+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+
1680|:warning:`warning:` |nbsp| :diagtext:`class template argument deduction is incompatible with C++ standards before C++17`|+---------------------------------------------------------------------------------+|
1681|                                                                                                                        ||                                                                                 ||
1682|                                                                                                                        |+---------------------------------------------------------------------------------+|
1683|                                                                                                                        ||+-------------------------------------------------------------------------------+||
1684|                                                                                                                        |||:diagtext:`; for compatibility, use explicit type name` |nbsp| :placeholder:`B`|||
1685|                                                                                                                        ||+-------------------------------------------------------------------------------+||
1686|                                                                                                                        |+---------------------------------------------------------------------------------+|
1687+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+
1688
1689+---------------------------------------------------------------------------------------------------+
1690|:warning:`warning:` |nbsp| :diagtext:`constexpr if is incompatible with C++ standards before C++17`|
1691+---------------------------------------------------------------------------------------------------+
1692
1693+----------------------------------------------------------------------------------------------------------------------+
1694|:warning:`warning:` |nbsp| :diagtext:`constexpr on lambda expressions is incompatible with C++ standards before C++17`|
1695+----------------------------------------------------------------------------------------------------------------------+
1696
1697+------------------------------------------------------------------------------------------------------------------+
1698|:warning:`warning:` |nbsp| :diagtext:`decomposition declarations are incompatible with C++ standards before C++17`|
1699+------------------------------------------------------------------------------------------------------------------+
1700
1701+-----------------------------------------------------------------------------------------------------------+
1702|:warning:`warning:` |nbsp| :diagtext:`pack fold expression is incompatible with C++ standards before C++17`|
1703+-----------------------------------------------------------------------------------------------------------+
1704
1705+---------------------------+--------------------+----------------------------------------------------------------------------------------------+
1706|:warning:`warning:` |nbsp| |+------------------+| |nbsp| :diagtext:`initialization statements are incompatible with C++ standards before C++17`|
1707|                           ||:diagtext:`if`    ||                                                                                              |
1708|                           |+------------------+|                                                                                              |
1709|                           ||:diagtext:`switch`||                                                                                              |
1710|                           |+------------------+|                                                                                              |
1711+---------------------------+--------------------+----------------------------------------------------------------------------------------------+
1712
1713+--------------------------------------------------------------------------------------------------------+
1714|:warning:`warning:` |nbsp| :diagtext:`inline variables are incompatible with C++ standards before C++17`|
1715+--------------------------------------------------------------------------------------------------------+
1716
1717+------------------------------------------------------------------------------------------------------------------+
1718|:warning:`warning:` |nbsp| :diagtext:`nested namespace definition is incompatible with C++ standards before C++17`|
1719+------------------------------------------------------------------------------------------------------------------+
1720
1721+-------------------------------------------------------------------------------------------------------------------+
1722|:warning:`warning:` |nbsp| :diagtext:`by value capture of '\*this' is incompatible with C++ standards before C++17`|
1723+-------------------------------------------------------------------------------------------------------------------+
1724
1725+---------------------------------------------------------------------------------------------------------------------+
1726|:warning:`warning:` |nbsp| :diagtext:`static\_assert with no message is incompatible with C++ standards before C++17`|
1727+---------------------------------------------------------------------------------------------------------------------+
1728
1729+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1730|:warning:`warning:` |nbsp| :diagtext:`non-type template parameters declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`are incompatible with C++ standards before C++17`|
1731+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1732
1733+-----------------------------------------------------------------------------------------------------------------------------------+
1734|:warning:`warning:` |nbsp| :diagtext:`template template parameter using 'typename' is incompatible with C++ standards before C++17`|
1735+-----------------------------------------------------------------------------------------------------------------------------------+
1736
1737+--------------------------------------------------------------------------------------------------------+
1738|:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C++ standards before C++17`|
1739+--------------------------------------------------------------------------------------------------------+
1740
1741+-----------------------------------------------------------------------------------------------------------------------------+
1742|:warning:`warning:` |nbsp| :diagtext:`default scope specifier for attributes is incompatible with C++ standards before C++17`|
1743+-----------------------------------------------------------------------------------------------------------------------------+
1744
1745+------------------------------------------------------------------------------------------------------------------------------------------------+
1746|:warning:`warning:` |nbsp| :diagtext:`use of multiple declarators in a single using declaration is incompatible with C++ standards before C++17`|
1747+------------------------------------------------------------------------------------------------------------------------------------------------+
1748
1749+-----------------------------------------------------------------------------------------------------------------------+
1750|:warning:`warning:` |nbsp| :diagtext:`pack expansion using declaration is incompatible with C++ standards before C++17`|
1751+-----------------------------------------------------------------------------------------------------------------------+
1752
1753+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1754|: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`|
1755+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1756
1757
1758-Wc++98-c++11-c++14-compat-pedantic
1759-----------------------------------
1760Also controls `-Wc++98-c++11-c++14-compat`_.
1761
1762**Diagnostic text:**
1763
1764+------------------------------------------------------------+---------------------------+--------------------------------------------------------------------------------+
1765|:warning:`warning:` |nbsp| :diagtext:`attributes on` |nbsp| |+-------------------------+| |nbsp| :diagtext:`declaration are incompatible with C++ standards before C++17`|
1766|                                                            ||:diagtext:`a namespace`  ||                                                                                |
1767|                                                            |+-------------------------+|                                                                                |
1768|                                                            ||:diagtext:`an enumerator`||                                                                                |
1769|                                                            |+-------------------------+|                                                                                |
1770+------------------------------------------------------------+---------------------------+--------------------------------------------------------------------------------+
1771
1772+---------------------------------------------------------------------------------------------------------------------+
1773|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are incompatible with C++ standards before C++17`|
1774+---------------------------------------------------------------------------------------------------------------------+
1775
1776
1777-Wc++98-c++11-compat
1778--------------------
1779**Diagnostic text:**
1780
1781+-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1782|:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`|
1783|                                                                                   ||:diagtext:`function`   ||                                                                   |
1784|                                                                                   |+-----------------------+|                                                                   |
1785|                                                                                   ||:diagtext:`constructor`||                                                                   |
1786|                                                                                   |+-----------------------+|                                                                   |
1787+-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1788
1789+---------------------------------------------------------------------------------------------------------------------------------------+
1790|:warning:`warning:` |nbsp| :diagtext:`multiple return statements in constexpr function is incompatible with C++ standards before C++14`|
1791+---------------------------------------------------------------------------------------------------------------------------------------+
1792
1793+-----------------------------------------------------------------------------------------------------------------------------------+
1794|:warning:`warning:` |nbsp| :diagtext:`constexpr function with no return statements is incompatible with C++ standards before C++14`|
1795+-----------------------------------------------------------------------------------------------------------------------------------+
1796
1797+----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1798|:warning:`warning:` |nbsp| :diagtext:`variable declaration in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`|
1799|                                                                                  ||:diagtext:`function`   ||                                                                   |
1800|                                                                                  |+-----------------------+|                                                                   |
1801|                                                                                  ||:diagtext:`constructor`||                                                                   |
1802|                                                                                  |+-----------------------+|                                                                   |
1803+----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1804
1805+-----------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1806|:warning:`warning:` |nbsp| :diagtext:`type definition in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`|
1807|                                                                             ||:diagtext:`function`   ||                                                                   |
1808|                                                                             |+-----------------------+|                                                                   |
1809|                                                                             ||:diagtext:`constructor`||                                                                   |
1810|                                                                             |+-----------------------+|                                                                   |
1811+-----------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1812
1813+----------------------------------------------------------------------------------------------------------------------+
1814|:warning:`warning:` |nbsp| :diagtext:`'decltype(auto)' type specifier is incompatible with C++ standards before C++14`|
1815+----------------------------------------------------------------------------------------------------------------------+
1816
1817+------------------------------------------------------------------------------------------------------------+
1818|:warning:`warning:` |nbsp| :diagtext:`return type deduction is incompatible with C++ standards before C++14`|
1819+------------------------------------------------------------------------------------------------------------+
1820
1821+--------------------------------------------------------------------------------------------------------+
1822|:warning:`warning:` |nbsp| :diagtext:`digit separators are incompatible with C++ standards before C++14`|
1823+--------------------------------------------------------------------------------------------------------+
1824
1825+----------------------------------------------------------------------------------+
1826|:warning:`warning:` |nbsp| :diagtext:`generic lambdas are incompatible with C++11`|
1827+----------------------------------------------------------------------------------+
1828
1829+-------------------------------------------------------------------------------------------------------------------+
1830|:warning:`warning:` |nbsp| :diagtext:`initialized lambda captures are incompatible with C++ standards before C++14`|
1831+-------------------------------------------------------------------------------------------------------------------+
1832
1833+----------------------------------------------------------------------------------------------------------+
1834|:warning:`warning:` |nbsp| :diagtext:`variable templates are incompatible with C++ standards before C++14`|
1835+----------------------------------------------------------------------------------------------------------+
1836
1837
1838-Wc++98-c++11-compat-binary-literal
1839-----------------------------------
1840**Diagnostic text:**
1841
1842+---------------------------------------------------------------------------------------------------------------+
1843|:warning:`warning:` |nbsp| :diagtext:`binary integer literals are incompatible with C++ standards before C++14`|
1844+---------------------------------------------------------------------------------------------------------------+
1845
1846
1847-Wc++98-c++11-compat-pedantic
1848-----------------------------
1849Controls `-Wc++98-c++11-compat`_, `-Wc++98-c++11-compat-binary-literal`_.
1850
1851
1852-Wc++98-compat
1853--------------
1854Also 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`_.
1855
1856**Diagnostic text:**
1857
1858+-------------------------------------------------------------------------------------+
1859|:warning:`warning:` |nbsp| :diagtext:`alias declarations are incompatible with C++98`|
1860+-------------------------------------------------------------------------------------+
1861
1862+---------------------------------------------------------------------------+
1863|:warning:`warning:` |nbsp| :diagtext:`'alignas' is incompatible with C++98`|
1864+---------------------------------------------------------------------------+
1865
1866+--------------------------------------------------------------------------------------+
1867|:warning:`warning:` |nbsp| :diagtext:`alignof expressions are incompatible with C++98`|
1868+--------------------------------------------------------------------------------------+
1869
1870+----------------------------------------------------------------------------------------+
1871|:warning:`warning:` |nbsp| :diagtext:`C++11 attribute syntax is incompatible with C++98`|
1872+----------------------------------------------------------------------------------------+
1873
1874+---------------------------------------------------------------------------------------+
1875|:warning:`warning:` |nbsp| :diagtext:`'auto' type specifier is incompatible with C++98`|
1876+---------------------------------------------------------------------------------------+
1877
1878+---------------------------------------------------------------------------------------+
1879|:warning:`warning:` |nbsp| :diagtext:`'constexpr' specifier is incompatible with C++98`|
1880+---------------------------------------------------------------------------------------+
1881
1882+--------------------------------------------------------------------------------------------------------+
1883|:warning:`warning:` |nbsp| :diagtext:`constructor call from initializer list is incompatible with C++98`|
1884+--------------------------------------------------------------------------------------------------------+
1885
1886+-------------------------------------------------------------------------------------------+
1887|:warning:`warning:` |nbsp| :diagtext:`'decltype' type specifier is incompatible with C++98`|
1888+-------------------------------------------------------------------------------------------+
1889
1890+---------------------------+-----------------------+--------------------------------------------------------------------+
1891|:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`function definitions are incompatible with C++98`|
1892|                           ||:diagtext:`defaulted`||                                                                    |
1893|                           |+---------------------+|                                                                    |
1894|                           ||:diagtext:`deleted`  ||                                                                    |
1895|                           |+---------------------+|                                                                    |
1896+---------------------------+-----------------------+--------------------------------------------------------------------+
1897
1898+------------------------------------------------------------------------------------------+
1899|:warning:`warning:` |nbsp| :diagtext:`delegating constructors are incompatible with C++98`|
1900+------------------------------------------------------------------------------------------+
1901
1902+----------------------------------------------------------------------------------------------------------------+
1903|:warning:`warning:` |nbsp| :diagtext:`scalar initialized from empty initializer list is incompatible with C++98`|
1904+----------------------------------------------------------------------------------------------------------------+
1905
1906+-----------------------------------------------------------------------------------------------------------------+
1907|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are incompatible with C++98`|
1908+-----------------------------------------------------------------------------------------------------------------+
1909
1910+-----------------------------------------------------------------------------------------------------------------------------------------+
1911|:warning:`warning:` |nbsp| :diagtext:`befriending enumeration type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with C++98`|
1912+-----------------------------------------------------------------------------------------------------------------------------------------+
1913
1914+-----------------------------------------------------------------------------------------------------------+
1915|:warning:`warning:` |nbsp| :diagtext:`enumeration type in nested name specifier is incompatible with C++98`|
1916+-----------------------------------------------------------------------------------------------------------+
1917
1918+------------------------------------------------------------------------------------------------+
1919|:warning:`warning:` |nbsp| :diagtext:`explicit conversion functions are incompatible with C++98`|
1920+------------------------------------------------------------------------------------------------+
1921
1922+--------------------------------------------------------------------------------------+
1923|:warning:`warning:` |nbsp| :diagtext:`range-based for loop is incompatible with C++98`|
1924+--------------------------------------------------------------------------------------+
1925
1926+---------------------------------------------------------------------------------------------------------------------------+
1927|:warning:`warning:` |nbsp| :diagtext:`friend declaration naming a member of the declaring class is incompatible with C++98`|
1928+---------------------------------------------------------------------------------------------------------------------------+
1929
1930+------------------------------------------------------------------------------------------------+
1931|:warning:`warning:` |nbsp| :diagtext:`generalized initializer lists are incompatible with C++98`|
1932+------------------------------------------------------------------------------------------------+
1933
1934+------------------------------------------------------------------------------------------------------------+
1935|:warning:`warning:` |nbsp| :diagtext:`jump from this goto statement to its label is incompatible with C++98`|
1936+------------------------------------------------------------------------------------------------------------+
1937
1938+---------------------------------------------------------------------------------------------------------------------------------------+
1939|:warning:`warning:` |nbsp| :diagtext:`jump from this indirect goto statement to one of its possible targets is incompatible with C++98`|
1940+---------------------------------------------------------------------------------------------------------------------------------------+
1941
1942+------------------------------------------------------------------------------------------------------------+
1943|:warning:`warning:` |nbsp| :diagtext:`initialization of initializer\_list object is incompatible with C++98`|
1944+------------------------------------------------------------------------------------------------------------+
1945
1946+------------------------------------------------------------------------------------+
1947|:warning:`warning:` |nbsp| :diagtext:`inline namespaces are incompatible with C++98`|
1948+------------------------------------------------------------------------------------+
1949
1950+-------------------------------------------------------------------------------------+
1951|:warning:`warning:` |nbsp| :diagtext:`lambda expressions are incompatible with C++98`|
1952+-------------------------------------------------------------------------------------+
1953
1954+-----------------------------------------------------------------------------------------------------------+
1955|:warning:`warning:` |nbsp| :diagtext:`'<::' is treated as digraph '<:' (aka '\[') followed by ':' in C++98`|
1956+-----------------------------------------------------------------------------------------------------------+
1957
1958+------------------------------------------------------------------------------------+
1959|:warning:`warning:` |nbsp| :diagtext:`literal operators are incompatible with C++98`|
1960+------------------------------------------------------------------------------------+
1961
1962+---------------------------------------------------------------------------------------------------------------------------+
1963|:warning:`warning:` |nbsp| :diagtext:`universal character name referring to a control character is incompatible with C++98`|
1964+---------------------------------------------------------------------------------------------------------------------------+
1965
1966+-----------------------------------------------------------------------------------------------------------------------------------------------------+
1967|:warning:`warning:` |nbsp| :diagtext:`specifying character '`:placeholder:`A`:diagtext:`' with a universal character name is incompatible with C++98`|
1968+-----------------------------------------------------------------------------------------------------------------------------------------------------+
1969
1970+------------------------------------------------------------------------------------------+
1971|:warning:`warning:` |nbsp| :diagtext:`noexcept specifications are incompatible with C++98`|
1972+------------------------------------------------------------------------------------------+
1973
1974+---------------------------------------------------------------------------------------+
1975|:warning:`warning:` |nbsp| :diagtext:`noexcept expressions are incompatible with C++98`|
1976+---------------------------------------------------------------------------------------+
1977
1978+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1979|:warning:`warning:` |nbsp| :diagtext:`use of non-static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in an unevaluated context is incompatible with C++98`|
1980+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1981
1982+----------------------------------------------------------------------------------------------------------------------------------+
1983|:warning:`warning:` |nbsp| :diagtext:`non-class friend type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with C++98`|
1984+----------------------------------------------------------------------------------------------------------------------------------+
1985
1986+--------------------------------------------------------------------------------------------------------------------+
1987|:warning:`warning:` |nbsp| :diagtext:`in-class initialization of non-static data members is incompatible with C++98`|
1988+--------------------------------------------------------------------------------------------------------------------+
1989
1990+---------------------------+------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+----------------------------------------------+
1991|:warning:`warning:` |nbsp| |+----------------------------+| |nbsp| :diagtext:`member` |nbsp| :placeholder:`B` |nbsp| :diagtext:`with a non-trivial` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`is incompatible with C++98`|
1992|                           ||:diagtext:`anonymous struct`||                                                                                                ||:diagtext:`default constructor`     ||                                              |
1993|                           |+----------------------------+|                                                                                                |+------------------------------------+|                                              |
1994|                           ||:diagtext:`union`           ||                                                                                                ||:diagtext:`copy constructor`        ||                                              |
1995|                           |+----------------------------+|                                                                                                |+------------------------------------+|                                              |
1996|                           |                              |                                                                                                ||:diagtext:`move constructor`        ||                                              |
1997|                           |                              |                                                                                                |+------------------------------------+|                                              |
1998|                           |                              |                                                                                                ||:diagtext:`copy assignment operator`||                                              |
1999|                           |                              |                                                                                                |+------------------------------------+|                                              |
2000|                           |                              |                                                                                                ||:diagtext:`move assignment operator`||                                              |
2001|                           |                              |                                                                                                |+------------------------------------+|                                              |
2002|                           |                              |                                                                                                ||:diagtext:`destructor`              ||                                              |
2003|                           |                              |                                                                                                |+------------------------------------+|                                              |
2004+---------------------------+------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+----------------------------------------------+
2005
2006+---------------------------------------------------------------------------+
2007|:warning:`warning:` |nbsp| :diagtext:`'nullptr' is incompatible with C++98`|
2008+---------------------------------------------------------------------------+
2009
2010+--------------------------------------------------------------------------------------------------------+
2011|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' keyword is incompatible with C++98`|
2012+--------------------------------------------------------------------------------------------------------+
2013
2014+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+
2015|: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`|
2016|                                                                                                                                                     ||:diagtext:`function`   ||                                              |
2017|                                                                                                                                                     |+-----------------------+|                                              |
2018|                                                                                                                                                     ||:diagtext:`block`      ||                                              |
2019|                                                                                                                                                     |+-----------------------+|                                              |
2020|                                                                                                                                                     ||:diagtext:`method`     ||                                              |
2021|                                                                                                                                                     |+-----------------------+|                                              |
2022|                                                                                                                                                     ||:diagtext:`constructor`||                                              |
2023|                                                                                                                                                     |+-----------------------+|                                              |
2024+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+
2025
2026+--------------------------------------------------------------------------------------+
2027|:warning:`warning:` |nbsp| :diagtext:`raw string literals are incompatible with C++98`|
2028+--------------------------------------------------------------------------------------+
2029
2030+----------------------------------------------------------------------------------------------------+
2031|:warning:`warning:` |nbsp| :diagtext:`reference qualifiers on functions are incompatible with C++98`|
2032+----------------------------------------------------------------------------------------------------+
2033
2034+-------------------------------------------------------------------------------------------------------------+
2035|:warning:`warning:` |nbsp| :diagtext:`reference initialized from initializer list is incompatible with C++98`|
2036+-------------------------------------------------------------------------------------------------------------+
2037
2038+------------------------------------------------------------------------------------+
2039|:warning:`warning:` |nbsp| :diagtext:`rvalue references are incompatible with C++98`|
2040+------------------------------------------------------------------------------------+
2041
2042+--------------------------------------------------------------------------------------+
2043|:warning:`warning:` |nbsp| :diagtext:`scoped enumerations are incompatible with C++98`|
2044+--------------------------------------------------------------------------------------+
2045
2046+------------------------------------------------------------------------------------------------------------+
2047|:warning:`warning:` |nbsp| :diagtext:`substitution failure due to access control is incompatible with C++98`|
2048+------------------------------------------------------------------------------------------------------------+
2049
2050+----------------------------------------------------------------------------------------------+
2051|:warning:`warning:` |nbsp| :diagtext:`static\_assert declarations are incompatible with C++98`|
2052+----------------------------------------------------------------------------------------------+
2053
2054+----------------------------------------------------------------------------------------------------------------------------------------+
2055|:warning:`warning:` |nbsp| :diagtext:`static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in union is incompatible with C++98`|
2056+----------------------------------------------------------------------------------------------------------------------------------------+
2057
2058+---------------------------------------------------------------------------------------------------------------+
2059|:warning:`warning:` |nbsp| :diagtext:`jump from switch statement to this case label is incompatible with C++98`|
2060+---------------------------------------------------------------------------------------------------------------+
2061
2062+---------------------------------------------------------------------------------------------------------------------------------------+
2063|:warning:`warning:` |nbsp| :diagtext:`redundant parentheses surrounding address non-type template argument are incompatible with C++98`|
2064+---------------------------------------------------------------------------------------------------------------------------------------+
2065
2066+-------------------------------------------------------------------------------------------------------------------+
2067|:warning:`warning:` |nbsp| :diagtext:`use of null pointer as non-type template argument is incompatible with C++98`|
2068+-------------------------------------------------------------------------------------------------------------------+
2069
2070+--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+
2071|:warning:`warning:` |nbsp| :diagtext:`non-type template argument referring to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with internal linkage is incompatible with C++98`|
2072|                                                                                      ||:diagtext:`function`||                                                                                            |
2073|                                                                                      |+--------------------+|                                                                                            |
2074|                                                                                      ||:diagtext:`object`  ||                                                                                            |
2075|                                                                                      |+--------------------+|                                                                                            |
2076+--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+
2077
2078+-----------------------------------------------------------------------------------------------------------------+
2079|:warning:`warning:` |nbsp| :diagtext:`use of 'template' keyword outside of a template is incompatible with C++98`|
2080+-----------------------------------------------------------------------------------------------------------------+
2081
2082+---------------------------------------------------------------------------------------------------------------------+
2083|:warning:`warning:` |nbsp| :diagtext:`default template arguments for a function template are incompatible with C++98`|
2084+---------------------------------------------------------------------------------------------------------------------+
2085
2086+----------------------------------------------------------------------------------------+
2087|:warning:`warning:` |nbsp| :diagtext:`trailing return types are incompatible with C++98`|
2088+----------------------------------------------------------------------------------------+
2089
2090+---------------------------------------------------------------------------------------------------------------+
2091|:warning:`warning:` |nbsp| :diagtext:`consecutive right angle brackets are incompatible with C++98 (use '> >')`|
2092+---------------------------------------------------------------------------------------------------------------+
2093
2094+---------------------------------------------------------------------------------------------------------+
2095|:warning:`warning:` |nbsp| :diagtext:`use of 'typename' outside of a template is incompatible with C++98`|
2096+---------------------------------------------------------------------------------------------------------+
2097
2098+-------------------------------------------------------------------------------------------------------+-----------------------+------------------------------------------------+
2099|:warning:`warning:` |nbsp| :diagtext:`befriending` |nbsp| :placeholder:`B` |nbsp| :diagtext:`without '`|+---------------------+|:diagtext:`' keyword is incompatible with C++98`|
2100|                                                                                                       ||:diagtext:`struct`   ||                                                |
2101|                                                                                                       |+---------------------+|                                                |
2102|                                                                                                       ||:diagtext:`interface`||                                                |
2103|                                                                                                       |+---------------------+|                                                |
2104|                                                                                                       ||:diagtext:`union`    ||                                                |
2105|                                                                                                       |+---------------------+|                                                |
2106|                                                                                                       ||:diagtext:`class`    ||                                                |
2107|                                                                                                       |+---------------------+|                                                |
2108|                                                                                                       ||:diagtext:`enum`     ||                                                |
2109|                                                                                                       |+---------------------+|                                                |
2110+-------------------------------------------------------------------------------------------------------+-----------------------+------------------------------------------------+
2111
2112+-------------------------------------------------------------------------------------------------------+
2113|:warning:`warning:` |nbsp| :diagtext:`using this character in an identifier is incompatible with C++98`|
2114+-------------------------------------------------------------------------------------------------------+
2115
2116+-----------------------------------------------------------------------------------+
2117|:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C++98`|
2118+-----------------------------------------------------------------------------------+
2119
2120+---------------------------------------------------------------------------------------------------------------+
2121|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' type specifier is incompatible with C++98`|
2122+---------------------------------------------------------------------------------------------------------------+
2123
2124+------------------------------------------------------------------------------------------+
2125|:warning:`warning:` |nbsp| :diagtext:`inheriting constructors are incompatible with C++98`|
2126+------------------------------------------------------------------------------------------+
2127
2128+-------------------------------------------------------------------------------------+
2129|:warning:`warning:` |nbsp| :diagtext:`variadic templates are incompatible with C++98`|
2130+-------------------------------------------------------------------------------------+
2131
2132
2133-Wc++98-compat-bind-to-temporary-copy
2134-------------------------------------
2135**Diagnostic text:**
2136
2137+---------------------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------+----------------------------+
2138|: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`|
2139|                           ||:diagtext:`copying variable`                        ||                                                                                                                            ||:diagtext:`invoke an inaccessible constructor`||                            |
2140|                           |+----------------------------------------------------+|                                                                                                                            |+----------------------------------------------+|                            |
2141|                           ||:diagtext:`copying parameter`                       ||                                                                                                                            ||:diagtext:`find no viable constructor`        ||                            |
2142|                           |+----------------------------------------------------+|                                                                                                                            |+----------------------------------------------+|                            |
2143|                           ||:diagtext:`returning object`                        ||                                                                                                                            ||:diagtext:`find ambiguous constructors`       ||                            |
2144|                           |+----------------------------------------------------+|                                                                                                                            |+----------------------------------------------+|                            |
2145|                           ||:diagtext:`initializing statement expression result`||                                                                                                                            ||:diagtext:`invoke a deleted constructor`      ||                            |
2146|                           |+----------------------------------------------------+|                                                                                                                            |+----------------------------------------------+|                            |
2147|                           ||:diagtext:`throwing object`                         ||                                                                                                                            |                                                |                            |
2148|                           |+----------------------------------------------------+|                                                                                                                            |                                                |                            |
2149|                           ||:diagtext:`copying member subobject`                ||                                                                                                                            |                                                |                            |
2150|                           |+----------------------------------------------------+|                                                                                                                            |                                                |                            |
2151|                           ||:diagtext:`copying array element`                   ||                                                                                                                            |                                                |                            |
2152|                           |+----------------------------------------------------+|                                                                                                                            |                                                |                            |
2153|                           ||:diagtext:`allocating object`                       ||                                                                                                                            |                                                |                            |
2154|                           |+----------------------------------------------------+|                                                                                                                            |                                                |                            |
2155|                           ||:diagtext:`copying temporary`                       ||                                                                                                                            |                                                |                            |
2156|                           |+----------------------------------------------------+|                                                                                                                            |                                                |                            |
2157|                           ||:diagtext:`initializing base subobject`             ||                                                                                                                            |                                                |                            |
2158|                           |+----------------------------------------------------+|                                                                                                                            |                                                |                            |
2159|                           ||:diagtext:`initializing vector element`             ||                                                                                                                            |                                                |                            |
2160|                           |+----------------------------------------------------+|                                                                                                                            |                                                |                            |
2161|                           ||:diagtext:`capturing value`                         ||                                                                                                                            |                                                |                            |
2162|                           |+----------------------------------------------------+|                                                                                                                            |                                                |                            |
2163+---------------------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------+----------------------------+
2164
2165
2166-Wc++98-compat-extra-semi
2167-------------------------
2168**Diagnostic text:**
2169
2170+-------------------------------------------------------------------------------------------------+
2171|:warning:`warning:` |nbsp| :diagtext:`extra ';' outside of a function is incompatible with C++98`|
2172+-------------------------------------------------------------------------------------------------+
2173
2174
2175-Wc++98-compat-local-type-template-args
2176---------------------------------------
2177**Diagnostic text:**
2178
2179+--------------------------------------------------------------------------------------------------------------------------------------------+
2180|:warning:`warning:` |nbsp| :diagtext:`local type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as template argument is incompatible with C++98`|
2181+--------------------------------------------------------------------------------------------------------------------------------------------+
2182
2183
2184-Wc++98-compat-pedantic
2185-----------------------
2186Also controls `-Wc++98-c++11-c++14-c++17-compat-pedantic`_, `-Wc++98-c++11-c++14-compat-pedantic`_, `-Wc++98-c++11-compat-pedantic`_, `-Wc++98-compat`_, `-Wc++98-compat-bind-to-temporary-copy`_, `-Wc++98-compat-extra-semi`_.
2187
2188**Diagnostic text:**
2189
2190+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------------+
2191|: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`|
2192|                                                                                                                                                   ||:diagtext:`integral`   ||                                                                                              |
2193|                                                                                                                                                   |+-----------------------+|                                                                                              |
2194|                                                                                                                                                   ||:diagtext:`enumeration`||                                                                                              |
2195|                                                                                                                                                   |+-----------------------+|                                                                                              |
2196+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------------+
2197
2198+------------------------------------------------------------------------------------------------------------------------+
2199|:warning:`warning:` |nbsp| :diagtext:`cast between pointer-to-function and pointer-to-object is incompatible with C++98`|
2200+------------------------------------------------------------------------------------------------------------------------+
2201
2202+----------------------------------------------------------------------------------------+
2203|:warning:`warning:` |nbsp| :diagtext:`empty macro arguments are incompatible with C++98`|
2204+----------------------------------------------------------------------------------------+
2205
2206+--------------------------------------------------------------------------------------------------------+
2207|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are incompatible with C++98`|
2208+--------------------------------------------------------------------------------------------------------+
2209
2210+-----------------------------------------------------------------------------------+
2211|:warning:`warning:` |nbsp| :diagtext:`extern templates are incompatible with C++98`|
2212+-----------------------------------------------------------------------------------+
2213
2214+-----------------------------------------------------------------------------+
2215|:warning:`warning:` |nbsp| :diagtext:`'long long' is incompatible with C++98`|
2216+-----------------------------------------------------------------------------+
2217
2218+----------------------------------------------------------------------------+
2219|:warning:`warning:` |nbsp| :diagtext:`C++98 requires newline at end of file`|
2220+----------------------------------------------------------------------------+
2221
2222+-------------------------------------------------------------------------------------------------+
2223|:warning:`warning:` |nbsp| :diagtext:`#line number greater than 32767 is incompatible with C++98`|
2224+-------------------------------------------------------------------------------------------------+
2225
2226+----------------------------------------------------------------------------------+
2227|:warning:`warning:` |nbsp| :diagtext:`variadic macros are incompatible with C++98`|
2228+----------------------------------------------------------------------------------+
2229
2230
2231-Wc++98-compat-unnamed-type-template-args
2232-----------------------------------------
2233**Diagnostic text:**
2234
2235+---------------------------------------------------------------------------------------------------+
2236|:warning:`warning:` |nbsp| :diagtext:`unnamed type as template argument is incompatible with C++98`|
2237+---------------------------------------------------------------------------------------------------+
2238
2239
2240-Wc11-extensions
2241----------------
2242**Diagnostic text:**
2243
2244+---------------------------------------------------------------------------+
2245|:warning:`warning:` |nbsp| :diagtext:`anonymous unions are a C11 extension`|
2246+---------------------------------------------------------------------------+
2247
2248+----------------------------------------------------------------------------------------+
2249|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C11-specific feature`|
2250+----------------------------------------------------------------------------------------+
2251
2252+----------------------------------------------------------------------------+
2253|:warning:`warning:` |nbsp| :diagtext:`anonymous structs are a C11 extension`|
2254+----------------------------------------------------------------------------+
2255
2256+------------------------------------------------------------------------------------+
2257|:warning:`warning:` |nbsp| :diagtext:`generic selections are a C11-specific feature`|
2258+------------------------------------------------------------------------------------+
2259
2260+--------------------------------------------------------------------------------------+
2261|:warning:`warning:` |nbsp| :diagtext:`\_Noreturn functions are a C11-specific feature`|
2262+--------------------------------------------------------------------------------------+
2263
2264+---------------------------------------------------------------------------------+
2265|:warning:`warning:` |nbsp| :diagtext:`\_Static\_assert is a C11-specific feature`|
2266+---------------------------------------------------------------------------------+
2267
2268
2269-Wc99-compat
2270------------
2271Some of the diagnostics controlled by this flag are enabled by default.
2272
2273**Diagnostic text:**
2274
2275+---------------------------+--------------------------------------------------------+--------------------------------------------+
2276|:warning:`warning:` |nbsp| |+------------------------------------------------------+| |nbsp| :diagtext:`is incompatible with C99`|
2277|                           ||:diagtext:`using this character in an identifier`     ||                                            |
2278|                           |+------------------------------------------------------+|                                            |
2279|                           ||:diagtext:`starting an identifier with this character`||                                            |
2280|                           |+------------------------------------------------------+|                                            |
2281+---------------------------+--------------------------------------------------------+--------------------------------------------+
2282
2283+---------------------------------------------------------------------------------+
2284|:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C99`|
2285+---------------------------------------------------------------------------------+
2286
2287+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+----------------------------------+
2288|: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`|
2289|                                                                                                                                                                        ||:diagtext:`have type 'long long'`||                                  |
2290|                                                                                                                                                                        |+---------------------------------+|                                  |
2291|                                                                                                                                                                        ||:diagtext:`be ill-formed`        ||                                  |
2292|                                                                                                                                                                        |+---------------------------------+|                                  |
2293+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+----------------------------------+
2294
2295
2296-Wc99-extensions
2297----------------
2298Some of the diagnostics controlled by this flag are enabled by default.
2299
2300**Diagnostic text:**
2301
2302+-----------------------------------------------------------------------------------------------+
2303|:warning:`warning:` |nbsp| :diagtext:`initializer for aggregate is not a compile-time constant`|
2304+-----------------------------------------------------------------------------------------------+
2305
2306+---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+
2307|:warning:`warning:` |nbsp| |+--------------------------------+|:diagtext:`array size` |nbsp| |+---------------------+|:diagtext:`is a C99 feature`|
2308|                           ||:diagtext:`qualifier in` |nbsp| ||                              ||                     ||                            |
2309|                           |+--------------------------------+|                              |+---------------------+|                            |
2310|                           ||:diagtext:`static` |nbsp|       ||                              ||                     ||                            |
2311|                           |+--------------------------------+|                              |+---------------------+|                            |
2312|                           ||                                ||                              ||:diagtext:`'\[\*\] '`||                            |
2313|                           |+--------------------------------+|                              |+---------------------+|                            |
2314+---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+
2315
2316+-----------------------------------------------------------------------------------+
2317|:warning:`warning:` |nbsp| :diagtext:`compound literals are a C99-specific feature`|
2318+-----------------------------------------------------------------------------------+
2319
2320+-------------------------------------------------------------------------------+
2321|:warning:`warning:` |nbsp| :diagtext:`flexible array members are a C99 feature`|
2322+-------------------------------------------------------------------------------+
2323
2324+-------------------------------------------------------------------------------------------------+
2325|:warning:`warning:` |nbsp| :diagtext:`variable declaration in for loop is a C99-specific feature`|
2326+-------------------------------------------------------------------------------------------------+
2327
2328+---------------------------------------------------------------------------------------+
2329|:warning:`warning:` |nbsp| :diagtext:`ISO C99 requires whitespace after the macro name`|
2330+---------------------------------------------------------------------------------------+
2331
2332+--------------------------------------------------------------------------------+
2333|:warning:`warning:` |nbsp| :diagtext:`designated initializers are a C99 feature`|
2334+--------------------------------------------------------------------------------+
2335
2336+------------------------------------------------------------------------------+
2337|:warning:`warning:` |nbsp| :diagtext:`empty macro arguments are a C99 feature`|
2338+------------------------------------------------------------------------------+
2339
2340+-------------------------------------------------------------------------------------------------------+
2341|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C99-specific feature`|
2342+-------------------------------------------------------------------------------------------------------+
2343
2344+---------------------------------------------------------------------------------------+
2345|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating constants are a C99 feature`|
2346+---------------------------------------------------------------------------------------+
2347
2348
2349-Wcall-to-pure-virtual-from-ctor-dtor
2350-------------------------------------
2351This diagnostic is enabled by default.
2352
2353**Diagnostic text:**
2354
2355+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+
2356|:warning:`warning:` |nbsp| :diagtext:`call to pure virtual member function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has undefined behavior; overrides of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in subclasses are not available in the` |nbsp| |+-----------------------+| |nbsp| :diagtext:`of` |nbsp| :placeholder:`C`|
2357|                                                                                                                                                                                                                                                     ||:diagtext:`constructor`||                                              |
2358|                                                                                                                                                                                                                                                     |+-----------------------+|                                              |
2359|                                                                                                                                                                                                                                                     ||:diagtext:`destructor` ||                                              |
2360|                                                                                                                                                                                                                                                     |+-----------------------+|                                              |
2361+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+
2362
2363
2364-Wcast-align
2365------------
2366**Diagnostic text:**
2367
2368+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2369|: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`|
2370+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2371
2372
2373-Wcast-calling-convention
2374-------------------------
2375This diagnostic is enabled by default.
2376
2377**Diagnostic text:**
2378
2379+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2380|:warning:`warning:` |nbsp| :diagtext:`cast between incompatible calling conventions '`:placeholder:`A`:diagtext:`' and '`:placeholder:`B`:diagtext:`'; calls through this pointer may abort at runtime`|
2381+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2382
2383
2384-Wcast-of-sel-type
2385------------------
2386This diagnostic is enabled by default.
2387
2388**Diagnostic text:**
2389
2390+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2391|:warning:`warning:` |nbsp| :diagtext:`cast of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is deprecated; use sel\_getName instead`|
2392+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2393
2394
2395-Wcast-qual
2396-----------
2397**Diagnostic text:**
2398
2399+-------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------+
2400|:warning:`warning:` |nbsp| :diagtext:`cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`drops` |nbsp| |+-----------------------------------------+|
2401|                                                                                                                                                       ||:diagtext:`const and volatile qualifiers`||
2402|                                                                                                                                                       |+-----------------------------------------+|
2403|                                                                                                                                                       ||:diagtext:`const qualifier`              ||
2404|                                                                                                                                                       |+-----------------------------------------+|
2405|                                                                                                                                                       ||:diagtext:`volatile qualifier`           ||
2406|                                                                                                                                                       |+-----------------------------------------+|
2407+-------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------+
2408
2409+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2410|: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`|
2411+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2412
2413
2414-Wcast-qual-unrelated
2415---------------------
2416This diagnostic is enabled by default.
2417
2418**Diagnostic text:**
2419
2420+---------------------------------------------------------------------+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2421|:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`from` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to` |nbsp| :placeholder:`C` |nbsp| :diagtext:`because it casts away qualifiers, even though the source and destination types are unrelated`|
2422|                                                                     ||:diagtext:`const\_cast`          ||                                                                                                                                                                                                              |
2423|                                                                     |+---------------------------------+|                                                                                                                                                                                                              |
2424|                                                                     ||:diagtext:`static\_cast`         ||                                                                                                                                                                                                              |
2425|                                                                     |+---------------------------------+|                                                                                                                                                                                                              |
2426|                                                                     ||:diagtext:`reinterpret\_cast`    ||                                                                                                                                                                                                              |
2427|                                                                     |+---------------------------------+|                                                                                                                                                                                                              |
2428|                                                                     ||:diagtext:`dynamic\_cast`        ||                                                                                                                                                                                                              |
2429|                                                                     |+---------------------------------+|                                                                                                                                                                                                              |
2430|                                                                     ||:diagtext:`C-style cast`         ||                                                                                                                                                                                                              |
2431|                                                                     |+---------------------------------+|                                                                                                                                                                                                              |
2432|                                                                     ||:diagtext:`functional-style cast`||                                                                                                                                                                                                              |
2433|                                                                     |+---------------------------------+|                                                                                                                                                                                                              |
2434+---------------------------------------------------------------------+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2435
2436
2437-Wchar-align
2438------------
2439This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
2440
2441-Wchar-subscripts
2442-----------------
2443**Diagnostic text:**
2444
2445+------------------------------------------------------------+-------------------------+-------------------------------------+
2446|:warning:`warning:` |nbsp| :diagtext:`array section` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is of type 'char'`|
2447|                                                            ||:diagtext:`lower bound`||                                     |
2448|                                                            |+-----------------------+|                                     |
2449|                                                            ||:diagtext:`length`     ||                                     |
2450|                                                            |+-----------------------+|                                     |
2451+------------------------------------------------------------+-------------------------+-------------------------------------+
2452
2453+------------------------------------------------------------------------+
2454|:warning:`warning:` |nbsp| :diagtext:`array subscript is of type 'char'`|
2455+------------------------------------------------------------------------+
2456
2457
2458-Wclang-cl-pch
2459--------------
2460This diagnostic is enabled by default.
2461
2462**Diagnostic text:**
2463
2464+-------------------------------------------------------------------------------------------------------------------------+
2465|:warning:`warning:` |nbsp| :diagtext:`support for '/Yc' with more than one source file not implemented yet; flag ignored`|
2466+-------------------------------------------------------------------------------------------------------------------------+
2467
2468+------------------------------------------------------------------------------------------------------------------------------+
2469|:warning:`warning:` |nbsp| :diagtext:`support for '/Yc' and '/Yu' with different filenames not implemented yet; flags ignored`|
2470+------------------------------------------------------------------------------------------------------------------------------+
2471
2472+----------------------------------------------------------------------------------------------------------------------------------------------------+
2473|:warning:`warning:` |nbsp| :diagtext:`support for '`:placeholder:`A`:diagtext:`' without a corresponding /FI flag not implemented yet; flag ignored`|
2474+----------------------------------------------------------------------------------------------------------------------------------------------------+
2475
2476+-------------------------------------------------------------------------------------------------------------------------------------+
2477|:warning:`warning:` |nbsp| :diagtext:`#pragma hdrstop filename not supported, /Fp can be used to specify precompiled header filename`|
2478+-------------------------------------------------------------------------------------------------------------------------------------+
2479
2480+-----------------------------------------------------------------------------------------------------------------------------------------------------+
2481|:warning:`warning:` |nbsp| :diagtext:`definition of macro` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not match definition in precompiled header`|
2482+-----------------------------------------------------------------------------------------------------------------------------------------------------+
2483
2484
2485-Wclass-varargs
2486---------------
2487Some of the diagnostics controlled by this flag are enabled by default.
2488
2489Also controls `-Wnon-pod-varargs`_.
2490
2491**Diagnostic text:**
2492
2493+---------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------+
2494|:warning:`warning:` |nbsp| :diagtext:`passing object of class type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`through variadic` |nbsp| |+-----------------------+|+--------------------------------------------------------------------+|
2495|                                                                                                                                       ||:diagtext:`function`   |||                                                                    ||
2496|                                                                                                                                       |+-----------------------+|+--------------------------------------------------------------------+|
2497|                                                                                                                                       ||:diagtext:`block`      |||+------------------------------------------------------------------+||
2498|                                                                                                                                       |+-----------------------+|||:diagtext:`; did you mean to call '`:placeholder:`D`:diagtext:`'?`|||
2499|                                                                                                                                       ||:diagtext:`method`     |||+------------------------------------------------------------------+||
2500|                                                                                                                                       |+-----------------------+|+--------------------------------------------------------------------+|
2501|                                                                                                                                       ||:diagtext:`constructor`||                                                                      |
2502|                                                                                                                                       |+-----------------------+|                                                                      |
2503+---------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------+
2504
2505
2506-Wcomma
2507-------
2508**Diagnostic text:**
2509
2510+-----------------------------------------------------------------------------+
2511|:warning:`warning:` |nbsp| :diagtext:`possible misuse of comma operator here`|
2512+-----------------------------------------------------------------------------+
2513
2514
2515-Wcomment
2516---------
2517Some of the diagnostics controlled by this flag are enabled by default.
2518
2519**Diagnostic text:**
2520
2521+--------------------------------------------------------------------------------------------------+
2522|:warning:`warning:` |nbsp| :diagtext:`escaped newline between \*/ characters at block comment end`|
2523+--------------------------------------------------------------------------------------------------+
2524
2525+-----------------------------------------------------------------------------------+
2526|:warning:`warning:` |nbsp| :diagtext:`// comments are not allowed in this language`|
2527+-----------------------------------------------------------------------------------+
2528
2529+------------------------------------------------------------+
2530|:warning:`warning:` |nbsp| :diagtext:`multi-line // comment`|
2531+------------------------------------------------------------+
2532
2533+-----------------------------------------------------------------+
2534|:warning:`warning:` |nbsp| :diagtext:`'/\*' within block comment`|
2535+-----------------------------------------------------------------+
2536
2537
2538-Wcomments
2539----------
2540Synonym for `-Wcomment`_.
2541
2542
2543-Wcompare-distinct-pointer-types
2544--------------------------------
2545This diagnostic is enabled by default.
2546
2547**Diagnostic text:**
2548
2549+---------------------------------------------------------------------------+
2550|:warning:`warning:` |nbsp| :diagtext:`comparison of distinct pointer types`|
2551+---------------------------------------------------------------------------+
2552
2553
2554-Wcomplex-component-init
2555------------------------
2556**Diagnostic text:**
2557
2558+----------------------------------------------------------------------------------------------------------------------+
2559|:warning:`warning:` |nbsp| :diagtext:`complex initialization specifying real and imaginary components is an extension`|
2560+----------------------------------------------------------------------------------------------------------------------+
2561
2562
2563-Wconditional-type-mismatch
2564---------------------------
2565This diagnostic is enabled by default.
2566
2567**Diagnostic text:**
2568
2569+----------------------------------------------------------------------------------------------+
2570|:warning:`warning:` |nbsp| :diagtext:`pointer/integer type mismatch in conditional expression`|
2571+----------------------------------------------------------------------------------------------+
2572
2573
2574-Wconditional-uninitialized
2575---------------------------
2576**Diagnostic text:**
2577
2578+----------------------------------------------------------------------------------------------------------------------------+-------------------------------+
2579|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be uninitialized when` |nbsp| |+-----------------------------+|
2580|                                                                                                                            ||:diagtext:`used here`        ||
2581|                                                                                                                            |+-----------------------------+|
2582|                                                                                                                            ||:diagtext:`captured by block`||
2583|                                                                                                                            |+-----------------------------+|
2584+----------------------------------------------------------------------------------------------------------------------------+-------------------------------+
2585
2586
2587-Wconfig-macros
2588---------------
2589This diagnostic is enabled by default.
2590
2591**Diagnostic text:**
2592
2593+---------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+---------------------------------------------------------+
2594|: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`|
2595|                           ||:diagtext:`definition`||                                                                                                                                               ||+----------------------------------------------+||                                                         |
2596|                           |+----------------------+|                                                                                                                                               |||:diagtext:`-D`:placeholder:`B`:diagtext:`=...`|||                                                         |
2597|                           ||:diagtext:`#undef`    ||                                                                                                                                               ||+----------------------------------------------+||                                                         |
2598|                           |+----------------------+|                                                                                                                                               |+------------------------------------------------+|                                                         |
2599|                           |                        |                                                                                                                                               ||+------------------------------+                ||                                                         |
2600|                           |                        |                                                                                                                                               |||:diagtext:`-U`:placeholder:`B`|                ||                                                         |
2601|                           |                        |                                                                                                                                               ||+------------------------------+                ||                                                         |
2602|                           |                        |                                                                                                                                               |+------------------------------------------------+|                                                         |
2603+---------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+---------------------------------------------------------+
2604
2605
2606-Wconstant-conversion
2607---------------------
2608This diagnostic is enabled by default.
2609
2610Also controls `-Wbitfield-constant-conversion`_.
2611
2612**Diagnostic text:**
2613
2614+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2615|: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`|
2616+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2617
2618
2619-Wconstant-logical-operand
2620--------------------------
2621This diagnostic is enabled by default.
2622
2623**Diagnostic text:**
2624
2625+----------------------------------------------------------------------------------------------------------+
2626|:warning:`warning:` |nbsp| :diagtext:`use of logical '`:placeholder:`A`:diagtext:`' with constant operand`|
2627+----------------------------------------------------------------------------------------------------------+
2628
2629
2630-Wconstexpr-not-const
2631---------------------
2632This diagnostic is enabled by default.
2633
2634**Diagnostic text:**
2635
2636+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
2637|: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`|
2638+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
2639
2640
2641-Wconsumed
2642----------
2643**Diagnostic text:**
2644
2645+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
2646|:warning:`warning:` |nbsp| :diagtext:`consumed analysis attribute is attached to member of class '`:placeholder:`A`:diagtext:`' which isn't marked as consumable`|
2647+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
2648
2649+--------------------------------------------------------------------------------------------------------------------------------+
2650|:warning:`warning:` |nbsp| :diagtext:`state of variable '`:placeholder:`A`:diagtext:`' must match at the entry and exit of loop`|
2651+--------------------------------------------------------------------------------------------------------------------------------+
2652
2653+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2654|:warning:`warning:` |nbsp| :diagtext:`parameter '`:placeholder:`A`:diagtext:`' not in expected state when the function returns: expected '`:placeholder:`B`:diagtext:`', observed '`:placeholder:`C`:diagtext:`'`|
2655+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2656
2657+-------------------------------------------------------------------------------------------------------------------------------------------------------+
2658|:warning:`warning:` |nbsp| :diagtext:`argument not in expected state; expected '`:placeholder:`A`:diagtext:`', observed '`:placeholder:`B`:diagtext:`'`|
2659+-------------------------------------------------------------------------------------------------------------------------------------------------------+
2660
2661+---------------------------------------------------------------------------------------------------------------+
2662|:warning:`warning:` |nbsp| :diagtext:`return state set for an unconsumable type '`:placeholder:`A`:diagtext:`'`|
2663+---------------------------------------------------------------------------------------------------------------+
2664
2665+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
2666|:warning:`warning:` |nbsp| :diagtext:`return value not in expected state; expected '`:placeholder:`A`:diagtext:`', observed '`:placeholder:`B`:diagtext:`'`|
2667+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
2668
2669+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2670|: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`|
2671+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2672
2673+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2674|:warning:`warning:` |nbsp| :diagtext:`invalid invocation of method '`:placeholder:`A`:diagtext:`' on a temporary object while it is in the '`:placeholder:`B`:diagtext:`' state`|
2675+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2676
2677
2678-Wconversion
2679------------
2680Some of the diagnostics controlled by this flag are enabled by default.
2681
2682Also controls `-Wbitfield-enum-conversion`_, `-Wbool-conversion`_, `-Wconstant-conversion`_, `-Wenum-conversion`_, `-Wfloat-conversion`_, `-Wimplicit-float-conversion`_, `-Wimplicit-int-conversion`_, `-Wint-conversion`_, `-Wliteral-conversion`_, `-Wnon-literal-null-conversion`_, `-Wnull-conversion`_, `-Wobjc-literal-conversion`_, `-Wshorten-64-to-32`_, `-Wsign-conversion`_, `-Wstring-conversion`_.
2683
2684**Diagnostic text:**
2685
2686+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
2687|:warning:`warning:` |nbsp| :diagtext:`implicit conversion discards imaginary component:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
2688+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
2689
2690+--------------------------------------------------------------------------------------------------------------------------------------------------------+
2691|:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns vector to scalar:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
2692+--------------------------------------------------------------------------------------------------------------------------------------------------------+
2693
2694+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2695|:warning:`warning:` |nbsp| :diagtext:`passing non-generic address space pointer to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may cause dynamic conversion affecting performance`|
2696+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2697
2698+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2699|: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`|
2700+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2701
2702+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2703|: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`|
2704+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2705
2706
2707-Wconversion-null
2708-----------------
2709Synonym for `-Wnull-conversion`_.
2710
2711
2712-Wcoroutine
2713-----------
2714Synonym for `-Wcoroutine-missing-unhandled-exception`_.
2715
2716
2717-Wcoroutine-missing-unhandled-exception
2718---------------------------------------
2719This diagnostic is enabled by default.
2720
2721**Diagnostic text:**
2722
2723+-----------------------------------------------------------------------------------------------------------------------------------------------------+
2724|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is required to declare the member 'unhandled\_exception()' when exceptions are enabled`|
2725+-----------------------------------------------------------------------------------------------------------------------------------------------------+
2726
2727
2728-Wcovered-switch-default
2729------------------------
2730**Diagnostic text:**
2731
2732+--------------------------------------------------------------------------------------------------+
2733|:warning:`warning:` |nbsp| :diagtext:`default label in switch which covers all enumeration values`|
2734+--------------------------------------------------------------------------------------------------+
2735
2736
2737-Wcpp
2738-----
2739Synonym for `-W#warnings`_.
2740
2741
2742-Wcstring-format-directive
2743--------------------------
2744**Diagnostic text:**
2745
2746+------------------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+------------------------+
2747|: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| |+----------------------+|
2748|                                                                                                            ||:diagtext:`NSString`||                                                                                            ||:diagtext:`method`    ||
2749|                                                                                                            |+--------------------+|                                                                                            |+----------------------+|
2750|                                                                                                            ||:diagtext:`CFString`||                                                                                            ||:diagtext:`CFfunction`||
2751|                                                                                                            |+--------------------+|                                                                                            |+----------------------+|
2752+------------------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+------------------------+
2753
2754
2755-Wctor-dtor-privacy
2756-------------------
2757This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
2758
2759-Wctu
2760-----
2761This diagnostic is enabled by default.
2762
2763**Diagnostic text:**
2764
2765+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2766|:warning:`warning:` |nbsp| :diagtext:`imported AST from '`:placeholder:`A`:diagtext:`' had been generated for a different target, current:` |nbsp| :placeholder:`B`:diagtext:`, imported:` |nbsp| :placeholder:`C`|
2767+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2768
2769
2770-Wcuda-compat
2771-------------
2772Some of the diagnostics controlled by this flag are enabled by default.
2773
2774**Diagnostic text:**
2775
2776+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
2777|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute parameter` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is negative and will be ignored`|
2778+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
2779
2780+---------------------------------------------------------------------------------------------------------------------------------+
2781|:warning:`warning:` |nbsp| :diagtext:`nvcc does not allow '\_\_`:placeholder:`A`:diagtext:`\_\_' to appear after '()' in lambdas`|
2782+---------------------------------------------------------------------------------------------------------------------------------+
2783
2784+------------------------------------------------------------------------------------------------------------+
2785|:warning:`warning:` |nbsp| :diagtext:`ignored 'inline' attribute on kernel function` |nbsp| :placeholder:`A`|
2786+------------------------------------------------------------------------------------------------------------+
2787
2788+--------------------------------------------------------------------------------------------------------------------------------------------------------+
2789|:warning:`warning:` |nbsp| :diagtext:`kernel function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a member function; this may not be accepted by nvcc`|
2790+--------------------------------------------------------------------------------------------------------------------------------------------------------+
2791
2792+--------------------------------------------------------------------------------------------------------------+
2793|:warning:`warning:` |nbsp| :diagtext:`argument to '#pragma unroll' should not be in parentheses in CUDA C/C++`|
2794+--------------------------------------------------------------------------------------------------------------+
2795
2796
2797-Wcustom-atomic-properties
2798--------------------------
2799**Diagnostic text:**
2800
2801+---------------------------------------------------------------------------------------------------------------------------------------+--------------------+----------------------------------------------------------------------------+
2802|: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)`|
2803|                                                                                                                                       ||:diagtext:`getter`||                                                                            |
2804|                                                                                                                                       |+------------------+|                                                                            |
2805|                                                                                                                                       ||:diagtext:`setter`||                                                                            |
2806|                                                                                                                                       |+------------------+|                                                                            |
2807+---------------------------------------------------------------------------------------------------------------------------------------+--------------------+----------------------------------------------------------------------------+
2808
2809
2810-Wdangling
2811----------
2812This diagnostic is enabled by default.
2813
2814Also controls `-Wdangling-field`_, `-Wdangling-initializer-list`_, `-Wreturn-stack-address`_.
2815
2816**Diagnostic text:**
2817
2818+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------+----------------------------+---------------------------------------------------------------+
2819|:warning:`warning:` |nbsp| |+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| |nbsp| |+--------------------------+|:diagtext:`will be destroyed at the end of the full-expression`|
2820|                           ||+-----------------------------+---------------------------------------------------------+--------+------------------------------------------------------------------------+||        ||+------------------------+||                                                               |
2821|                           |||:diagtext:`temporary` |nbsp| |+-------------------------------------------------------+| |nbsp| |+----------------------------------------------------------------------+|||        |||:placeholder:`D` |nbsp| |||                                                               |
2822|                           |||                             ||:diagtext:`whose address is used as value of`          ||        ||+-------------------------------+------------------------------------+||||        ||+------------------------+||                                                               |
2823|                           |||                             |+-------------------------------------------------------+|        |||+-----------------------------+|:diagtext:`member of local variable`|||||        |+--------------------------+|                                                               |
2824|                           |||                             ||+--------------------------------+--------------------+||        ||||                             ||                                    |||||        ||                          ||                                                               |
2825|                           |||                             |||+------------------------------+|:diagtext:`bound to`|||        |||+-----------------------------+|                                    |||||        |+--------------------------+|                                                               |
2826|                           |||                             ||||                              ||                    |||        ||||:diagtext:`reference` |nbsp| ||                                    |||||        |                            |                                                               |
2827|                           |||                             |||+------------------------------+|                    |||        |||+-----------------------------+|                                    |||||        |                            |                                                               |
2828|                           |||                             ||||:diagtext:`implicitly` |nbsp| ||                    |||        ||+-------------------------------+------------------------------------+||||        |                            |                                                               |
2829|                           |||                             |||+------------------------------+|                    |||        |+----------------------------------------------------------------------+|||        |                            |                                                               |
2830|                           |||                             ||+--------------------------------+--------------------+||        ||+-------------------------+-----------------------+                   ||||        |                            |                                                               |
2831|                           |||                             |+-------------------------------------------------------+|        |||:diagtext:`local` |nbsp| |+---------------------+|                   ||||        |                            |                                                               |
2832|                           |||                             |                                                         |        |||                         ||:diagtext:`variable` ||                   ||||        |                            |                                                               |
2833|                           |||                             |                                                         |        |||                         |+---------------------+|                   ||||        |                            |                                                               |
2834|                           |||                             |                                                         |        |||                         ||:diagtext:`reference`||                   ||||        |                            |                                                               |
2835|                           |||                             |                                                         |        |||                         |+---------------------+|                   ||||        |                            |                                                               |
2836|                           |||                             |                                                         |        ||+-------------------------+-----------------------+                   ||||        |                            |                                                               |
2837|                           |||                             |                                                         |        |+----------------------------------------------------------------------+|||        |                            |                                                               |
2838|                           ||+-----------------------------+---------------------------------------------------------+--------+------------------------------------------------------------------------+||        |                            |                                                               |
2839|                           |+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|        |                            |                                                               |
2840|                           ||+---------------------------------+----------------------------------------------------------+                                                                             ||        |                            |                                                               |
2841|                           |||:diagtext:`array backing` |nbsp| |+--------------------------------------------------------+|                                                                             ||        |                            |                                                               |
2842|                           |||                                 ||:diagtext:`initializer list subobject of local variable`||                                                                             ||        |                            |                                                               |
2843|                           |||                                 |+--------------------------------------------------------+|                                                                             ||        |                            |                                                               |
2844|                           |||                                 ||:diagtext:`local initializer list`                      ||                                                                             ||        |                            |                                                               |
2845|                           |||                                 |+--------------------------------------------------------+|                                                                             ||        |                            |                                                               |
2846|                           ||+---------------------------------+----------------------------------------------------------+                                                                             ||        |                            |                                                               |
2847|                           |+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|        |                            |                                                               |
2848+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------+----------------------------+---------------------------------------------------------------+
2849
2850+---------------------------------------------------------------------------+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+---------------------------+--------------------------------------------------------------+
2851|:warning:`warning:` |nbsp| :diagtext:`sorry, lifetime extension of` |nbsp| |+---------------------------------------------+| |nbsp| :diagtext:`created by aggregate initialization using default member initializer is not supported; lifetime of` |nbsp| |+-------------------------+| |nbsp| :diagtext:`will end at the end of the full-expression`|
2852|                                                                           ||:diagtext:`temporary`                        ||                                                                                                                              ||:diagtext:`temporary`    ||                                                              |
2853|                                                                           |+---------------------------------------------+|                                                                                                                              |+-------------------------+|                                                              |
2854|                                                                           ||:diagtext:`backing array of initializer list`||                                                                                                                              ||:diagtext:`backing array`||                                                              |
2855|                                                                           |+---------------------------------------------+|                                                                                                                              |+-------------------------+|                                                              |
2856+---------------------------------------------------------------------------+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+---------------------------+--------------------------------------------------------------+
2857
2858
2859-Wdangling-else
2860---------------
2861This diagnostic is enabled by default.
2862
2863**Diagnostic text:**
2864
2865+---------------------------------------------------------------------------------+
2866|:warning:`warning:` |nbsp| :diagtext:`add explicit braces to avoid dangling else`|
2867+---------------------------------------------------------------------------------+
2868
2869
2870-Wdangling-field
2871----------------
2872This diagnostic is enabled by default.
2873
2874**Diagnostic text:**
2875
2876+-------------------------------------------------------------------------------------------------------------------------------------+-----------------------+------------------------+
2877|:warning:`warning:` |nbsp| :diagtext:`binding reference member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to stack allocated` |nbsp| |+---------------------+| |nbsp| :placeholder:`B`|
2878|                                                                                                                                     ||:diagtext:`variable` ||                        |
2879|                                                                                                                                     |+---------------------+|                        |
2880|                                                                                                                                     ||:diagtext:`parameter`||                        |
2881|                                                                                                                                     |+---------------------+|                        |
2882+-------------------------------------------------------------------------------------------------------------------------------------+-----------------------+------------------------+
2883
2884+---------------------------+--------------------------------------------------------+--------+----------------------------------+--------------------------------------------------+----------------------+------------------------------------------------------------------------------------------------------------+
2885|:warning:`warning:` |nbsp| |+------------------------------------------------------+| |nbsp| |+--------------------------------+|:diagtext:`member` |nbsp| :placeholder:`A` |nbsp| |+--------------------+| |nbsp| :diagtext:`a temporary object whose lifetime is shorter than the lifetime of the constructed object`|
2886|                           ||:diagtext:`reference`                                 ||        ||                                ||                                                  ||:diagtext:`binds to`||                                                                                                            |
2887|                           |+------------------------------------------------------+|        |+--------------------------------+|                                                  |+--------------------+|                                                                                                            |
2888|                           ||:diagtext:`backing array for 'std::initializer\_list'`||        ||:diagtext:`subobject of` |nbsp| ||                                                  ||:diagtext:`is`      ||                                                                                                            |
2889|                           |+------------------------------------------------------+|        |+--------------------------------+|                                                  |+--------------------+|                                                                                                            |
2890+---------------------------+--------------------------------------------------------+--------+----------------------------------+--------------------------------------------------+----------------------+------------------------------------------------------------------------------------------------------------+
2891
2892+-----------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+------------------------+
2893|:warning:`warning:` |nbsp| :diagtext:`initializing pointer member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with the stack address of` |nbsp| |+---------------------+| |nbsp| :placeholder:`B`|
2894|                                                                                                                                               ||:diagtext:`variable` ||                        |
2895|                                                                                                                                               |+---------------------+|                        |
2896|                                                                                                                                               ||:diagtext:`parameter`||                        |
2897|                                                                                                                                               |+---------------------+|                        |
2898+-----------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+------------------------+
2899
2900+--------------------------------------------------------------------------------------------------------------------------------------------------+
2901|:warning:`warning:` |nbsp| :diagtext:`temporary bound to reference member of allocated object will be destroyed at the end of the full-expression`|
2902+--------------------------------------------------------------------------------------------------------------------------------------------------+
2903
2904
2905-Wdangling-initializer-list
2906---------------------------
2907This diagnostic is enabled by default.
2908
2909**Diagnostic text:**
2910
2911+------------------------------------------------------------+----------------------------------------------------------------+-----------------------------------------------------------------------+
2912|:warning:`warning:` |nbsp| :diagtext:`array backing` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`will be destroyed at the end of the full-expression`|
2913|                                                            ||:diagtext:`initializer list subobject of the allocated object`||                                                                       |
2914|                                                            |+--------------------------------------------------------------+|                                                                       |
2915|                                                            ||:diagtext:`the allocated initializer list`                    ||                                                                       |
2916|                                                            |+--------------------------------------------------------------+|                                                                       |
2917+------------------------------------------------------------+----------------------------------------------------------------+-----------------------------------------------------------------------+
2918
2919
2920-Wdarwin-sdk-settings
2921---------------------
2922This diagnostic is enabled by default.
2923
2924**Diagnostic text:**
2925
2926+----------------------------------------------------------------------------------------------------------+
2927|:warning:`warning:` |nbsp| :diagtext:`SDK settings were ignored as 'SDKSettings.json' could not be parsed`|
2928+----------------------------------------------------------------------------------------------------------+
2929
2930
2931-Wdate-time
2932-----------
2933**Diagnostic text:**
2934
2935+------------------------------------------------------------------------------------------+
2936|:warning:`warning:` |nbsp| :diagtext:`expansion of date or time macro is not reproducible`|
2937+------------------------------------------------------------------------------------------+
2938
2939
2940-Wdealloc-in-category
2941---------------------
2942This diagnostic is enabled by default.
2943
2944**Diagnostic text:**
2945
2946+---------------------------------------------------------------------------------+
2947|:warning:`warning:` |nbsp| :diagtext:`-dealloc is being overridden in a category`|
2948+---------------------------------------------------------------------------------+
2949
2950
2951-Wdebug-compression-unavailable
2952-------------------------------
2953This diagnostic is enabled by default.
2954
2955**Diagnostic text:**
2956
2957+------------------------------------------------------------------------------------------+
2958|:warning:`warning:` |nbsp| :diagtext:`cannot compress debug sections (zlib not installed)`|
2959+------------------------------------------------------------------------------------------+
2960
2961
2962-Wdeclaration-after-statement
2963-----------------------------
2964**Diagnostic text:**
2965
2966+-----------------------------------------------------------------------------------+
2967|:warning:`warning:` |nbsp| :diagtext:`ISO C90 forbids mixing declarations and code`|
2968+-----------------------------------------------------------------------------------+
2969
2970
2971-Wdefaulted-function-deleted
2972----------------------------
2973This diagnostic is enabled by default.
2974
2975**Diagnostic text:**
2976
2977+-------------------------------------------------------------------+--------------------------------------+-----------------------------------------+
2978|:warning:`warning:` |nbsp| :diagtext:`explicitly defaulted` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`is implicitly deleted`|
2979|                                                                   ||:diagtext:`default constructor`     ||                                         |
2980|                                                                   |+------------------------------------+|                                         |
2981|                                                                   ||:diagtext:`copy constructor`        ||                                         |
2982|                                                                   |+------------------------------------+|                                         |
2983|                                                                   ||:diagtext:`move constructor`        ||                                         |
2984|                                                                   |+------------------------------------+|                                         |
2985|                                                                   ||:diagtext:`copy assignment operator`||                                         |
2986|                                                                   |+------------------------------------+|                                         |
2987|                                                                   ||:diagtext:`move assignment operator`||                                         |
2988|                                                                   |+------------------------------------+|                                         |
2989|                                                                   ||:diagtext:`destructor`              ||                                         |
2990|                                                                   |+------------------------------------+|                                         |
2991+-------------------------------------------------------------------+--------------------------------------+-----------------------------------------+
2992
2993
2994-Wdelegating-ctor-cycles
2995------------------------
2996This diagnostic is an error by default, but the flag ``-Wno-delegating-ctor-cycles`` can be used to disable the error.
2997
2998**Diagnostic text:**
2999
3000+------------------------------------------------------------------------------------------------------------------------+
3001|:error:`error:` |nbsp| :diagtext:`constructor for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`creates a delegation cycle`|
3002+------------------------------------------------------------------------------------------------------------------------+
3003
3004
3005-Wdelete-abstract-non-virtual-dtor
3006----------------------------------
3007This diagnostic is enabled by default.
3008
3009**Diagnostic text:**
3010
3011+---------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------+
3012|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`called on` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that is abstract but has non-virtual destructor`|
3013|                           ||:diagtext:`delete`    ||                                                                                                                        |
3014|                           |+----------------------+|                                                                                                                        |
3015|                           ||:diagtext:`destructor`||                                                                                                                        |
3016|                           |+----------------------+|                                                                                                                        |
3017+---------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------+
3018
3019
3020-Wdelete-incomplete
3021-------------------
3022This diagnostic is enabled by default.
3023
3024**Diagnostic text:**
3025
3026+-------------------------------------------------------------------------------------------------------------------+
3027|:warning:`warning:` |nbsp| :diagtext:`cannot delete expression with pointer-to-'void' type` |nbsp| :placeholder:`A`|
3028+-------------------------------------------------------------------------------------------------------------------+
3029
3030+--------------------------------------------------------------------------------------------------------------------------------------------------+
3031|:warning:`warning:` |nbsp| :diagtext:`deleting pointer to incomplete type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may cause undefined behavior`|
3032+--------------------------------------------------------------------------------------------------------------------------------------------------+
3033
3034
3035-Wdelete-non-abstract-non-virtual-dtor
3036--------------------------------------
3037**Diagnostic text:**
3038
3039+---------------------------+------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
3040|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`called on non-final` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that has virtual functions but non-virtual destructor`|
3041|                           ||:diagtext:`delete`    ||                                                                                                                                        |
3042|                           |+----------------------+|                                                                                                                                        |
3043|                           ||:diagtext:`destructor`||                                                                                                                                        |
3044|                           |+----------------------+|                                                                                                                                        |
3045+---------------------------+------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
3046
3047
3048-Wdelete-non-virtual-dtor
3049-------------------------
3050Some of the diagnostics controlled by this flag are enabled by default.
3051
3052Controls `-Wdelete-abstract-non-virtual-dtor`_, `-Wdelete-non-abstract-non-virtual-dtor`_.
3053
3054
3055-Wdeprecated
3056------------
3057Some of the diagnostics controlled by this flag are enabled by default.
3058
3059Also controls `-Wdeprecated-attributes`_, `-Wdeprecated-declarations`_, `-Wdeprecated-dynamic-exception-spec`_, `-Wdeprecated-increment-bool`_, `-Wdeprecated-register`_, `-Wdeprecated-this-capture`_, `-Wdeprecated-writable-strings`_.
3060
3061**Diagnostic text:**
3062
3063+---------------------------------------------------------------+
3064|:warning:`warning:` |nbsp| :diagtext:`-O4 is equivalent to -O3`|
3065+---------------------------------------------------------------+
3066
3067+---------------------------------------------------------------------------------------------------------+
3068|:warning:`warning:` |nbsp| :diagtext:`access declarations are deprecated; use using declarations instead`|
3069+---------------------------------------------------------------------------------------------------------+
3070
3071+--------------------------------------------------------------------------+---------------------------------+-----------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------+
3072|: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| |+------------------------------------------------------------+|
3073|                                                                          ||:diagtext:`constructor`        ||                                                                                                                       ||+------------------------+---------------------------------+||
3074|                                                                          |+-------------------------------+|                                                                                                                       |||:diagtext:`copy` |nbsp| |+-------------------------------+|||
3075|                                                                          ||:diagtext:`assignment operator`||                                                                                                                       |||                        ||:diagtext:`assignment operator`||||
3076|                                                                          |+-------------------------------+|                                                                                                                       |||                        |+-------------------------------+|||
3077|                                                                          |                                 |                                                                                                                       |||                        ||:diagtext:`constructor`        ||||
3078|                                                                          |                                 |                                                                                                                       |||                        |+-------------------------------+|||
3079|                                                                          |                                 |                                                                                                                       ||+------------------------+---------------------------------+||
3080|                                                                          |                                 |                                                                                                                       |+------------------------------------------------------------+|
3081|                                                                          |                                 |                                                                                                                       ||:diagtext:`destructor`                                      ||
3082|                                                                          |                                 |                                                                                                                       |+------------------------------------------------------------+|
3083+--------------------------------------------------------------------------+---------------------------------+-----------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------+
3084
3085+-------------------------------------------------------------------------------------------------------------------------------------+
3086|:warning:`warning:` |nbsp| :diagtext:`out-of-line definition of constexpr static data member is redundant in C++17 and is deprecated`|
3087+-------------------------------------------------------------------------------------------------------------------------------------+
3088
3089+----------------------------------------------------------------------------------------------------------------------------------------+
3090|:warning:`warning:` |nbsp| :diagtext:`argument '`:placeholder:`A`:diagtext:`' is deprecated, use '`:placeholder:`B`:diagtext:`' instead`|
3091+----------------------------------------------------------------------------------------------------------------------------------------+
3092
3093+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3094|:warning:`warning:` |nbsp| :diagtext:`treating '`:placeholder:`A`:diagtext:`' input as '`:placeholder:`B`:diagtext:`' when in C++ mode, this behavior is deprecated`|
3095+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3096
3097+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
3098|:warning:`warning:` |nbsp| :diagtext:`OpenCL version` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not support the option '`:placeholder:`B`:diagtext:`'`|
3099+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
3100
3101+------------------------------------------------------------------------------------+
3102|:warning:`warning:` |nbsp| :diagtext:`Use of 'long' with '\_\_vector' is deprecated`|
3103+------------------------------------------------------------------------------------+
3104
3105
3106-Wdeprecated-attributes
3107-----------------------
3108This diagnostic is enabled by default.
3109
3110**Diagnostic text:**
3111
3112+------------------------------------------------------------------------------------------------------------------------------------------------+
3113|:warning:`warning:` |nbsp| :diagtext:`specifying vector types with the 'mode' attribute is deprecated; use the 'vector\_size' attribute instead`|
3114+------------------------------------------------------------------------------------------------------------------------------------------------+
3115
3116
3117-Wdeprecated-declarations
3118-------------------------
3119This diagnostic is enabled by default.
3120
3121**Diagnostic text:**
3122
3123+--------------------------------------------------------------------------------------------------------------------+
3124|:warning:`warning:` |nbsp| :diagtext:`specifying 'uuid' as an ATL attribute is deprecated; use \_\_declspec instead`|
3125+--------------------------------------------------------------------------------------------------------------------+
3126
3127+-----------------------------------------------------------------------------------------------------------------+
3128|:warning:`warning:` |nbsp| :diagtext:`use of C-style parameters in Objective-C method declarations is deprecated`|
3129+-----------------------------------------------------------------------------------------------------------------+
3130
3131+----------------------------------------------------------------------------+
3132|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated`|
3133+----------------------------------------------------------------------------+
3134
3135+---------------------------------------------------------------------------------------------------------------------+
3136|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be deprecated because the receiver type is unknown`|
3137+---------------------------------------------------------------------------------------------------------------------+
3138
3139+-----------------------------------------------------------------------------------------------------+
3140|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated:` |nbsp| :placeholder:`B`|
3141+-----------------------------------------------------------------------------------------------------+
3142
3143+-------------------------------------------------------------------------------------------------------------------------------------+
3144|:warning:`warning:` |nbsp| :diagtext:`property access is using` |nbsp| :placeholder:`A` |nbsp| :diagtext:`method which is deprecated`|
3145+-------------------------------------------------------------------------------------------------------------------------------------+
3146
3147
3148-Wdeprecated-dynamic-exception-spec
3149-----------------------------------
3150**Diagnostic text:**
3151
3152+--------------------------------------------------------------------------------------+
3153|:warning:`warning:` |nbsp| :diagtext:`dynamic exception specifications are deprecated`|
3154+--------------------------------------------------------------------------------------+
3155
3156
3157-Wdeprecated-implementations
3158----------------------------
3159**Diagnostic text:**
3160
3161+----------------------------------------------------------------------+----------------------+
3162|:warning:`warning:` |nbsp| :diagtext:`implementing deprecated` |nbsp| |+--------------------+|
3163|                                                                      ||:diagtext:`method`  ||
3164|                                                                      |+--------------------+|
3165|                                                                      ||:diagtext:`class`   ||
3166|                                                                      |+--------------------+|
3167|                                                                      ||:diagtext:`category`||
3168|                                                                      |+--------------------+|
3169+----------------------------------------------------------------------+----------------------+
3170
3171+----------------------------------------------------------------------+
3172|:warning:`warning:` |nbsp| :diagtext:`implementing unavailable method`|
3173+----------------------------------------------------------------------+
3174
3175
3176-Wdeprecated-increment-bool
3177---------------------------
3178This diagnostic is enabled by default.
3179
3180**Diagnostic text:**
3181
3182+---------------------------------------------------------------------------------------------------------------------+
3183|:warning:`warning:` |nbsp| :diagtext:`incrementing expression of type bool is deprecated and incompatible with C++17`|
3184+---------------------------------------------------------------------------------------------------------------------+
3185
3186
3187-Wdeprecated-objc-isa-usage
3188---------------------------
3189This diagnostic is enabled by default.
3190
3191**Diagnostic text:**
3192
3193+-------------------------------------------------------------------------------------------------------------------+
3194|:warning:`warning:` |nbsp| :diagtext:`assignment to Objective-C's isa is deprecated in favor of object\_setClass()`|
3195+-------------------------------------------------------------------------------------------------------------------+
3196
3197+----------------------------------------------------------------------------------------------------------------------+
3198|:warning:`warning:` |nbsp| :diagtext:`direct access to Objective-C's isa is deprecated in favor of object\_getClass()`|
3199+----------------------------------------------------------------------------------------------------------------------+
3200
3201
3202-Wdeprecated-objc-pointer-introspection
3203---------------------------------------
3204This diagnostic is enabled by default.
3205
3206Also controls `-Wdeprecated-objc-pointer-introspection-performSelector`_.
3207
3208**Diagnostic text:**
3209
3210+--------------------------------------------------------------------------------------------------------------------------+
3211|:warning:`warning:` |nbsp| :diagtext:`bitmasking for introspection of Objective-C object pointers is strongly discouraged`|
3212+--------------------------------------------------------------------------------------------------------------------------+
3213
3214
3215-Wdeprecated-objc-pointer-introspection-performSelector
3216-------------------------------------------------------
3217This diagnostic is enabled by default.
3218
3219**Diagnostic text:**
3220
3221+--------------------------------------------------------------------------------------------------------------------------+
3222|:warning:`warning:` |nbsp| :diagtext:`bitmasking for introspection of Objective-C object pointers is strongly discouraged`|
3223+--------------------------------------------------------------------------------------------------------------------------+
3224
3225
3226-Wdeprecated-register
3227---------------------
3228This diagnostic is enabled by default.
3229
3230**Diagnostic text:**
3231
3232+-------------------------------------------------------------------------------------------------------------------+
3233|:warning:`warning:` |nbsp| :diagtext:`'register' storage class specifier is deprecated and incompatible with C++17`|
3234+-------------------------------------------------------------------------------------------------------------------+
3235
3236
3237-Wdeprecated-this-capture
3238-------------------------
3239**Diagnostic text:**
3240
3241+-------------------------------------------------------------------------------------------------------------+
3242|:warning:`warning:` |nbsp| :diagtext:`implicit capture of 'this' with a capture default of '=' is deprecated`|
3243+-------------------------------------------------------------------------------------------------------------+
3244
3245
3246-Wdeprecated-writable-strings
3247-----------------------------
3248Synonym for `-Wc++11-compat-deprecated-writable-strings`_.
3249
3250
3251-Wdirect-ivar-access
3252--------------------
3253**Diagnostic text:**
3254
3255+------------------------------------------------------------------------------------------------------------------------------+
3256|:warning:`warning:` |nbsp| :diagtext:`instance variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is being directly accessed`|
3257+------------------------------------------------------------------------------------------------------------------------------+
3258
3259
3260-Wdisabled-macro-expansion
3261--------------------------
3262**Diagnostic text:**
3263
3264+----------------------------------------------------------------------------+
3265|:warning:`warning:` |nbsp| :diagtext:`disabled expansion of recursive macro`|
3266+----------------------------------------------------------------------------+
3267
3268
3269-Wdisabled-optimization
3270-----------------------
3271This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
3272
3273-Wdiscard-qual
3274--------------
3275This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
3276
3277-Wdistributed-object-modifiers
3278------------------------------
3279This diagnostic is enabled by default.
3280
3281**Diagnostic text:**
3282
3283+----------------------------------------------------------------------------------------------------------------------------------------------+
3284|:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on parameter type in implementation of` |nbsp| :placeholder:`A`|
3285+----------------------------------------------------------------------------------------------------------------------------------------------+
3286
3287+-------------------------------------------------------------------------------------------------------------------------------------------+
3288|:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on return type in implementation of` |nbsp| :placeholder:`A`|
3289+-------------------------------------------------------------------------------------------------------------------------------------------+
3290
3291
3292-Wdiv-by-zero
3293-------------
3294Synonym for `-Wdivision-by-zero`_.
3295
3296
3297-Wdivision-by-zero
3298------------------
3299This diagnostic is enabled by default.
3300
3301**Diagnostic text:**
3302
3303+---------------------------+-----------------------+----------------------------------------+
3304|:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`by zero is undefined`|
3305|                           ||:diagtext:`remainder`||                                        |
3306|                           |+---------------------+|                                        |
3307|                           ||:diagtext:`division` ||                                        |
3308|                           |+---------------------+|                                        |
3309+---------------------------+-----------------------+----------------------------------------+
3310
3311
3312-Wdll-attribute-on-redeclaration
3313--------------------------------
3314This diagnostic is enabled by default.
3315
3316**Diagnostic text:**
3317
3318+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3319|:warning:`warning:` |nbsp| :diagtext:`redeclaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not add` |nbsp| :placeholder:`B` |nbsp| :diagtext:`attribute`|
3320+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3321
3322
3323-Wdllexport-explicit-instantiation-decl
3324---------------------------------------
3325This diagnostic is enabled by default.
3326
3327**Diagnostic text:**
3328
3329+---------------------------------------------------------------------------------------------------+
3330|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation declaration should not be 'dllexport'`|
3331+---------------------------------------------------------------------------------------------------+
3332
3333
3334-Wdllimport-static-field-def
3335----------------------------
3336This diagnostic is enabled by default.
3337
3338**Diagnostic text:**
3339
3340+---------------------------------------------------------------------------+
3341|:warning:`warning:` |nbsp| :diagtext:`definition of dllimport static field`|
3342+---------------------------------------------------------------------------+
3343
3344
3345-Wdocumentation
3346---------------
3347Also controls `-Wdocumentation-deprecated-sync`_, `-Wdocumentation-html`_.
3348
3349**Diagnostic text:**
3350
3351+----------------------------------------+----------------+-----------------------+------------------------------------------------------------------------+-----------------------+-------------------------------+
3352|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+---------------------+|:diagtext:`' command should not be used in a comment attached to a non-`|+---------------------+| |nbsp| :diagtext:`declaration`|
3353|                                        ||:diagtext:`\\`|||:diagtext:`class`    ||                                                                        ||:diagtext:`class`    ||                               |
3354|                                        |+--------------+|+---------------------+|                                                                        |+---------------------+|                               |
3355|                                        ||:diagtext:`@` |||:diagtext:`interface`||                                                                        ||:diagtext:`interface`||                               |
3356|                                        |+--------------+|+---------------------+|                                                                        |+---------------------+|                               |
3357|                                        |                ||:diagtext:`protocol` ||                                                                        ||:diagtext:`protocol` ||                               |
3358|                                        |                |+---------------------+|                                                                        |+---------------------+|                               |
3359|                                        |                ||:diagtext:`struct`   ||                                                                        ||:diagtext:`struct`   ||                               |
3360|                                        |                |+---------------------+|                                                                        |+---------------------+|                               |
3361|                                        |                ||:diagtext:`union`    ||                                                                        ||:diagtext:`union`    ||                               |
3362|                                        |                |+---------------------+|                                                                        |+---------------------+|                               |
3363+----------------------------------------+----------------+-----------------------+------------------------------------------------------------------------+-----------------------+-------------------------------+
3364
3365+-----------------------------------------------------------+----------------+-----------------------------+
3366|:warning:`warning:` |nbsp| :diagtext:`duplicated command '`|+--------------+|:placeholder:`B`:diagtext:`'`|
3367|                                                           ||:diagtext:`\\`||                             |
3368|                                                           |+--------------+|                             |
3369|                                                           ||:diagtext:`@` ||                             |
3370|                                                           |+--------------+|                             |
3371+-----------------------------------------------------------+----------------+-----------------------------+
3372
3373+------------------------------------------------------------------+----------------+-------------------------------------+
3374|:warning:`warning:` |nbsp| :diagtext:`empty paragraph passed to '`|+--------------+|:placeholder:`B`:diagtext:`' command`|
3375|                                                                  ||:diagtext:`\\`||                                     |
3376|                                                                  |+--------------+|                                     |
3377|                                                                  ||:diagtext:`@` ||                                     |
3378|                                                                  |+--------------+|                                     |
3379+------------------------------------------------------------------+----------------+-------------------------------------+
3380
3381+----------------------------------------+----------------+--------------------------+---------------------------------------------------------------------------------------------+
3382|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+------------------------+|:diagtext:`' command should not be used in a comment attached to a non-container declaration`|
3383|                                        ||:diagtext:`\\`|||:diagtext:`classdesign` ||                                                                                             |
3384|                                        |+--------------+|+------------------------+|                                                                                             |
3385|                                        ||:diagtext:`@` |||:diagtext:`coclass`     ||                                                                                             |
3386|                                        |+--------------+|+------------------------+|                                                                                             |
3387|                                        |                ||:diagtext:`dependency`  ||                                                                                             |
3388|                                        |                |+------------------------+|                                                                                             |
3389|                                        |                ||:diagtext:`helper`      ||                                                                                             |
3390|                                        |                |+------------------------+|                                                                                             |
3391|                                        |                ||:diagtext:`helperclass` ||                                                                                             |
3392|                                        |                |+------------------------+|                                                                                             |
3393|                                        |                ||:diagtext:`helps`       ||                                                                                             |
3394|                                        |                |+------------------------+|                                                                                             |
3395|                                        |                ||:diagtext:`instancesize`||                                                                                             |
3396|                                        |                |+------------------------+|                                                                                             |
3397|                                        |                ||:diagtext:`ownership`   ||                                                                                             |
3398|                                        |                |+------------------------+|                                                                                             |
3399|                                        |                ||:diagtext:`performance` ||                                                                                             |
3400|                                        |                |+------------------------+|                                                                                             |
3401|                                        |                ||:diagtext:`security`    ||                                                                                             |
3402|                                        |                |+------------------------+|                                                                                             |
3403|                                        |                ||:diagtext:`superclass`  ||                                                                                             |
3404|                                        |                |+------------------------+|                                                                                             |
3405+----------------------------------------+----------------+--------------------------+---------------------------------------------------------------------------------------------+
3406
3407+----------------------------------------+----------------+---------------------------+---------------------------------------------------------------------+-----------------------------------+-------------------------------+
3408|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+-------------------------+|:diagtext:`' command should be used in a comment attached to` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`declaration`|
3409|                                        ||:diagtext:`\\`|||:diagtext:`function`     ||                                                                     ||:diagtext:`a function`           ||                               |
3410|                                        |+--------------+|+-------------------------+|                                                                     |+---------------------------------+|                               |
3411|                                        ||:diagtext:`@` |||:diagtext:`functiongroup`||                                                                     ||:diagtext:`a function`           ||                               |
3412|                                        |+--------------+|+-------------------------+|                                                                     |+---------------------------------+|                               |
3413|                                        |                ||:diagtext:`method`       ||                                                                     ||:diagtext:`an Objective-C method`||                               |
3414|                                        |                |+-------------------------+|                                                                     |+---------------------------------+|                               |
3415|                                        |                ||:diagtext:`methodgroup`  ||                                                                     ||:diagtext:`an Objective-C method`||                               |
3416|                                        |                |+-------------------------+|                                                                     |+---------------------------------+|                               |
3417|                                        |                ||:diagtext:`callback`     ||                                                                     ||:diagtext:`a pointer to function`||                               |
3418|                                        |                |+-------------------------+|                                                                     |+---------------------------------+|                               |
3419+----------------------------------------+----------------+---------------------------+---------------------------------------------------------------------+-----------------------------------+-------------------------------+
3420
3421+-------------------------------------------------------------------------------------------------------+
3422|:warning:`warning:` |nbsp| :diagtext:`HTML start tag prematurely ended, expected attribute name or '>'`|
3423+-------------------------------------------------------------------------------------------------------+
3424
3425+-------------------------------------------------------------------------------+
3426|:warning:`warning:` |nbsp| :diagtext:`expected quoted string after equals sign`|
3427+-------------------------------------------------------------------------------+
3428
3429+-----------------------------------------------------------------------------------------------------+
3430|:warning:`warning:` |nbsp| :diagtext:`parameter '`:placeholder:`A`:diagtext:`' is already documented`|
3431+-----------------------------------------------------------------------------------------------------+
3432
3433+------------------------------------------------------------------------------------------------------------------------------------------+
3434|:warning:`warning:` |nbsp| :diagtext:`unrecognized parameter passing direction, valid directions are '\[in\]', '\[out\]' and '\[in,out\]'`|
3435+------------------------------------------------------------------------------------------------------------------------------------------+
3436
3437+----------------------------------------+----------------+-------------------------------------------------------------------------------------------+
3438|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:diagtext:`param' command used in a comment that is not attached to a function declaration`|
3439|                                        ||:diagtext:`\\`||                                                                                           |
3440|                                        |+--------------+|                                                                                           |
3441|                                        ||:diagtext:`@` ||                                                                                           |
3442|                                        |+--------------+|                                                                                           |
3443+----------------------------------------+----------------+-------------------------------------------------------------------------------------------+
3444
3445+---------------------------------------------------------------------------------------------------------------------+
3446|:warning:`warning:` |nbsp| :diagtext:`parameter '`:placeholder:`A`:diagtext:`' not found in the function declaration`|
3447+---------------------------------------------------------------------------------------------------------------------+
3448
3449+----------------------------------------+----------------+-------------------------------------------------------------------------------------+-------------------------------------+
3450|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command used in a comment that is attached to a` |nbsp| |+-----------------------------------+|
3451|                                        ||:diagtext:`\\`||                                                                                     ||:diagtext:`function returning void`||
3452|                                        |+--------------+|                                                                                     |+-----------------------------------+|
3453|                                        ||:diagtext:`@` ||                                                                                     ||:diagtext:`constructor`            ||
3454|                                        |+--------------+|                                                                                     |+-----------------------------------+|
3455|                                        |                |                                                                                     ||:diagtext:`destructor`             ||
3456|                                        |                |                                                                                     |+-----------------------------------+|
3457|                                        |                |                                                                                     ||:diagtext:`method returning void`  ||
3458|                                        |                |                                                                                     |+-----------------------------------+|
3459+----------------------------------------+----------------+-------------------------------------------------------------------------------------+-------------------------------------+
3460
3461+----------------------------------------+----------------+----------------------------------------------------------------------------------------------------------------+
3462|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command used in a comment that is not attached to a function or method declaration`|
3463|                                        ||:diagtext:`\\`||                                                                                                                |
3464|                                        |+--------------+|                                                                                                                |
3465|                                        ||:diagtext:`@` ||                                                                                                                |
3466|                                        |+--------------+|                                                                                                                |
3467+----------------------------------------+----------------+----------------------------------------------------------------------------------------------------------------+
3468
3469+--------------------------------------------------------------------------------------------------------------+
3470|:warning:`warning:` |nbsp| :diagtext:`template parameter '`:placeholder:`A`:diagtext:`' is already documented`|
3471+--------------------------------------------------------------------------------------------------------------+
3472
3473+----------------------------------------+----------------+--------------------------------------------------------------------------------------------+
3474|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:diagtext:`tparam' command used in a comment that is not attached to a template declaration`|
3475|                                        ||:diagtext:`\\`||                                                                                            |
3476|                                        |+--------------+|                                                                                            |
3477|                                        ||:diagtext:`@` ||                                                                                            |
3478|                                        |+--------------+|                                                                                            |
3479+----------------------------------------+----------------+--------------------------------------------------------------------------------------------+
3480
3481+------------------------------------------------------------------------------------------------------------------------------+
3482|:warning:`warning:` |nbsp| :diagtext:`template parameter '`:placeholder:`A`:diagtext:`' not found in the template declaration`|
3483+------------------------------------------------------------------------------------------------------------------------------+
3484
3485+---------------------------------------------------------------------+
3486|:warning:`warning:` |nbsp| :diagtext:`not a Doxygen trailing comment`|
3487+---------------------------------------------------------------------+
3488
3489+----------------------------------------+----------------+------------------------------------------------------------------------------+
3490|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command does not terminate a verbatim text block`|
3491|                                        ||:diagtext:`\\`||                                                                              |
3492|                                        |+--------------+|                                                                              |
3493|                                        ||:diagtext:`@` ||                                                                              |
3494|                                        |+--------------+|                                                                              |
3495+----------------------------------------+----------------+------------------------------------------------------------------------------+
3496
3497
3498-Wdocumentation-deprecated-sync
3499-------------------------------
3500**Diagnostic text:**
3501
3502+----------------------------------------------------------------------------------------------------------------------------------+
3503|:warning:`warning:` |nbsp| :diagtext:`declaration is marked with '\\deprecated' command but does not have a deprecation attribute`|
3504+----------------------------------------------------------------------------------------------------------------------------------+
3505
3506
3507-Wdocumentation-html
3508--------------------
3509**Diagnostic text:**
3510
3511+-----------------------------------------------------------------------------------------------+
3512|:warning:`warning:` |nbsp| :diagtext:`HTML end tag '`:placeholder:`A`:diagtext:`' is forbidden`|
3513+-----------------------------------------------------------------------------------------------+
3514
3515+--------------------------------------------------------------------------------+
3516|:warning:`warning:` |nbsp| :diagtext:`HTML end tag does not match any start tag`|
3517+--------------------------------------------------------------------------------+
3518
3519+--------------------------------------------------------------------------------------------------+
3520|:warning:`warning:` |nbsp| :diagtext:`HTML tag '`:placeholder:`A`:diagtext:`' requires an end tag`|
3521+--------------------------------------------------------------------------------------------------+
3522
3523+-----------------------------------------------------------------------------------------------------------------------------+
3524|:warning:`warning:` |nbsp| :diagtext:`HTML start tag '`:placeholder:`A`:diagtext:`' closed by '`:placeholder:`B`:diagtext:`'`|
3525+-----------------------------------------------------------------------------------------------------------------------------+
3526
3527
3528-Wdocumentation-pedantic
3529------------------------
3530Also controls `-Wdocumentation-unknown-command`_.
3531
3532**Diagnostic text:**
3533
3534+-----------------------------------------------------------------------------------------------+
3535|:warning:`warning:` |nbsp| :diagtext:`whitespace is not allowed in parameter passing direction`|
3536+-----------------------------------------------------------------------------------------------+
3537
3538
3539-Wdocumentation-unknown-command
3540-------------------------------
3541**Diagnostic text:**
3542
3543+--------------------------------------------------------------------------------------------------------------------------------------------+
3544|:warning:`warning:` |nbsp| :diagtext:`unknown command tag name '`:placeholder:`A`:diagtext:`'; did you mean '`:placeholder:`B`:diagtext:`'?`|
3545+--------------------------------------------------------------------------------------------------------------------------------------------+
3546
3547+---------------------------------------------------------------+
3548|:warning:`warning:` |nbsp| :diagtext:`unknown command tag name`|
3549+---------------------------------------------------------------+
3550
3551
3552-Wdollar-in-identifier-extension
3553--------------------------------
3554**Diagnostic text:**
3555
3556+--------------------------------------------------------+
3557|:warning:`warning:` |nbsp| :diagtext:`'$' in identifier`|
3558+--------------------------------------------------------+
3559
3560
3561-Wdouble-promotion
3562------------------
3563**Diagnostic text:**
3564
3565+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3566|:warning:`warning:` |nbsp| :diagtext:`implicit conversion increases floating-point precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
3567+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3568
3569
3570-Wduplicate-decl-specifier
3571--------------------------
3572Some of the diagnostics controlled by this flag are enabled by default.
3573
3574**Diagnostic text:**
3575
3576+-----------------------------------------------------------------------------------------------------+
3577|:warning:`warning:` |nbsp| :diagtext:`duplicate '`:placeholder:`A`:diagtext:`' declaration specifier`|
3578+-----------------------------------------------------------------------------------------------------+
3579
3580+-----------------------------------------------------------------------------------------------------+
3581|:warning:`warning:` |nbsp| :diagtext:`duplicate '`:placeholder:`A`:diagtext:`' declaration specifier`|
3582+-----------------------------------------------------------------------------------------------------+
3583
3584+-------------------------------------------------------------------------------------------+
3585|:warning:`warning:` |nbsp| :diagtext:`multiple identical address spaces specified for type`|
3586+-------------------------------------------------------------------------------------------+
3587
3588+-----------------------------------------------------------------------------------------------------+
3589|:warning:`warning:` |nbsp| :diagtext:`duplicate '`:placeholder:`A`:diagtext:`' declaration specifier`|
3590+-----------------------------------------------------------------------------------------------------+
3591
3592
3593-Wduplicate-enum
3594----------------
3595**Diagnostic text:**
3596
3597+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3598|: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`|
3599+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3600
3601
3602-Wduplicate-method-arg
3603----------------------
3604**Diagnostic text:**
3605
3606+------------------------------------------------------------------------------------------------+
3607|:warning:`warning:` |nbsp| :diagtext:`redeclaration of method parameter` |nbsp| :placeholder:`A`|
3608+------------------------------------------------------------------------------------------------+
3609
3610
3611-Wduplicate-method-match
3612------------------------
3613**Diagnostic text:**
3614
3615+-----------------------------------------------------------------------------------------------------------------------------------+
3616|:warning:`warning:` |nbsp| :diagtext:`multiple declarations of method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found and ignored`|
3617+-----------------------------------------------------------------------------------------------------------------------------------+
3618
3619
3620-Wduplicate-protocol
3621--------------------
3622This diagnostic is enabled by default.
3623
3624**Diagnostic text:**
3625
3626+-----------------------------------------------------------------------------------------------------------------------------+
3627|:warning:`warning:` |nbsp| :diagtext:`duplicate protocol definition of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is ignored`|
3628+-----------------------------------------------------------------------------------------------------------------------------+
3629
3630
3631-Wdynamic-class-memaccess
3632-------------------------
3633This diagnostic is enabled by default.
3634
3635**Diagnostic text:**
3636
3637+---------------------------+-------------------------------+------------------------------------------------------------------------------------------------+----------------------------------------+---------------------------------------------------------------------------------------------+-------------------------+
3638|: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| |+-----------------------+|
3639|                           ||:diagtext:`destination for`  ||                                                                                                ||                                      ||                                                                                             ||:diagtext:`overwritten`||
3640|                           |+-----------------------------+|                                                                                                |+--------------------------------------+|                                                                                             |+-----------------------+|
3641|                           ||:diagtext:`source of`        ||                                                                                                ||:diagtext:`class containing a` |nbsp| ||                                                                                             ||:diagtext:`copied`     ||
3642|                           |+-----------------------------+|                                                                                                |+--------------------------------------+|                                                                                             |+-----------------------+|
3643|                           ||:diagtext:`first operand of` ||                                                                                                |                                        |                                                                                             ||:diagtext:`moved`      ||
3644|                           |+-----------------------------+|                                                                                                |                                        |                                                                                             |+-----------------------+|
3645|                           ||:diagtext:`second operand of`||                                                                                                |                                        |                                                                                             ||:diagtext:`compared`   ||
3646|                           |+-----------------------------+|                                                                                                |                                        |                                                                                             |+-----------------------+|
3647+---------------------------+-------------------------------+------------------------------------------------------------------------------------------------+----------------------------------------+---------------------------------------------------------------------------------------------+-------------------------+
3648
3649
3650-Wdynamic-exception-spec
3651------------------------
3652Some of the diagnostics controlled by this flag are enabled by default.
3653
3654Also controls `-Wdeprecated-dynamic-exception-spec`_.
3655
3656**Diagnostic text:**
3657
3658+--------------------------------------------------------------------------------------------+
3659|:error:`error:` |nbsp| :diagtext:`ISO C++17 does not allow dynamic exception specifications`|
3660+--------------------------------------------------------------------------------------------+
3661
3662
3663-Weffc++
3664--------
3665Synonym for `-Wnon-virtual-dtor`_.
3666
3667
3668-Wembedded-directive
3669--------------------
3670**Diagnostic text:**
3671
3672+----------------------------------------------------------------------------------------------------------+
3673|:warning:`warning:` |nbsp| :diagtext:`embedding a directive within macro arguments has undefined behavior`|
3674+----------------------------------------------------------------------------------------------------------+
3675
3676
3677-Wempty-body
3678------------
3679This diagnostic is enabled by default.
3680
3681**Diagnostic text:**
3682
3683+--------------------------------------------------------------+
3684|:warning:`warning:` |nbsp| :diagtext:`for loop has empty body`|
3685+--------------------------------------------------------------+
3686
3687+------------------------------------------------------------------+
3688|:warning:`warning:` |nbsp| :diagtext:`if statement has empty body`|
3689+------------------------------------------------------------------+
3690
3691+--------------------------------------------------------------------------+
3692|:warning:`warning:` |nbsp| :diagtext:`range-based for loop has empty body`|
3693+--------------------------------------------------------------------------+
3694
3695+----------------------------------------------------------------------+
3696|:warning:`warning:` |nbsp| :diagtext:`switch statement has empty body`|
3697+----------------------------------------------------------------------+
3698
3699+----------------------------------------------------------------+
3700|:warning:`warning:` |nbsp| :diagtext:`while loop has empty body`|
3701+----------------------------------------------------------------+
3702
3703
3704-Wempty-decomposition
3705---------------------
3706This diagnostic is enabled by default.
3707
3708**Diagnostic text:**
3709
3710+-------------------------------------------------------------------------------------------------+
3711|:warning:`warning:` |nbsp| :diagtext:`ISO C++17 does not allow a decomposition group to be empty`|
3712+-------------------------------------------------------------------------------------------------+
3713
3714
3715-Wempty-init-stmt
3716-----------------
3717**Diagnostic text:**
3718
3719+--------------------------------------------------------------------------+-----------------------------+---------------------------+
3720|:warning:`warning:` |nbsp| :diagtext:`empty initialization statement of '`|+---------------------------+|:diagtext:`' has no effect`|
3721|                                                                          ||:diagtext:`if`             ||                           |
3722|                                                                          |+---------------------------+|                           |
3723|                                                                          ||:diagtext:`switch`         ||                           |
3724|                                                                          |+---------------------------+|                           |
3725|                                                                          ||:diagtext:`range-based for`||                           |
3726|                                                                          |+---------------------------+|                           |
3727+--------------------------------------------------------------------------+-----------------------------+---------------------------+
3728
3729
3730-Wempty-translation-unit
3731------------------------
3732**Diagnostic text:**
3733
3734+------------------------------------------------------------------------------------------------------------+
3735|:warning:`warning:` |nbsp| :diagtext:`ISO C requires a translation unit to contain at least one declaration`|
3736+------------------------------------------------------------------------------------------------------------+
3737
3738
3739-Wencode-type
3740-------------
3741This diagnostic is enabled by default.
3742
3743**Diagnostic text:**
3744
3745+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3746|:warning:`warning:` |nbsp| :diagtext:`encoding of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`type is incomplete because` |nbsp| :placeholder:`B` |nbsp| :diagtext:`component has unknown encoding`|
3747+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3748
3749
3750-Wendif-labels
3751--------------
3752Synonym for `-Wextra-tokens`_.
3753
3754
3755-Wenum-compare
3756--------------
3757This diagnostic is enabled by default.
3758
3759Also controls `-Wenum-compare-switch`_.
3760
3761**Diagnostic text:**
3762
3763+------------------------------------------------------------------------------------------------+
3764|:warning:`warning:` |nbsp| :diagtext:`comparison of two values with different enumeration types`|
3765+------------------------------------------------------------------------------------------------+
3766
3767
3768-Wenum-compare-switch
3769---------------------
3770This diagnostic is enabled by default.
3771
3772**Diagnostic text:**
3773
3774+--------------------------------------------------------------------------------------------------------------------+
3775|:warning:`warning:` |nbsp| :diagtext:`comparison of two values with different enumeration types in switch statement`|
3776+--------------------------------------------------------------------------------------------------------------------+
3777
3778
3779-Wenum-conversion
3780-----------------
3781This diagnostic is enabled by default.
3782
3783**Diagnostic text:**
3784
3785+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3786|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from enumeration type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to different enumeration type` |nbsp| :placeholder:`B`|
3787+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3788
3789
3790-Wenum-too-large
3791----------------
3792This diagnostic is enabled by default.
3793
3794**Diagnostic text:**
3795
3796+-----------------------------------------------------------------------------------------+
3797|:warning:`warning:` |nbsp| :diagtext:`enumeration values exceed range of largest integer`|
3798+-----------------------------------------------------------------------------------------+
3799
3800+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
3801|:warning:`warning:` |nbsp| :diagtext:`incremented enumerator value` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not representable in the largest integer type`|
3802+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
3803
3804
3805-Wexceptions
3806------------
3807This diagnostic is enabled by default.
3808
3809**Diagnostic text:**
3810
3811+--------------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------+
3812|:warning:`warning:` |nbsp| :diagtext:`cannot refer to a non-static member from the handler of a` |nbsp| |+-----------------------+| |nbsp| :diagtext:`function try block`|
3813|                                                                                                        ||:diagtext:`constructor`||                                      |
3814|                                                                                                        |+-----------------------+|                                      |
3815|                                                                                                        ||:diagtext:`destructor` ||                                      |
3816|                                                                                                        |+-----------------------+|                                      |
3817+--------------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------+
3818
3819+-------------------------------------------------------------------------------------------------------------------------------------+
3820|:warning:`warning:` |nbsp| :diagtext:`exception of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will be caught by earlier handler`|
3821+-------------------------------------------------------------------------------------------------------------------------------------+
3822
3823+-----------------------------------------------------------------------------------------------------------------------------+
3824|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has a non-throwing exception specification but can still throw`|
3825+-----------------------------------------------------------------------------------------------------------------------------+
3826
3827
3828-Wexit-time-destructors
3829-----------------------
3830**Diagnostic text:**
3831
3832+-----------------------------------------------------------------------------------+
3833|:warning:`warning:` |nbsp| :diagtext:`declaration requires an exit-time destructor`|
3834+-----------------------------------------------------------------------------------+
3835
3836
3837-Wexpansion-to-defined
3838----------------------
3839Some of the diagnostics controlled by this flag are enabled by default.
3840
3841**Diagnostic text:**
3842
3843+-------------------------------------------------------------------------------------------------+
3844|:warning:`warning:` |nbsp| :diagtext:`macro expansion producing 'defined' has undefined behavior`|
3845+-------------------------------------------------------------------------------------------------+
3846
3847+-------------------------------------------------------------------------------------------------+
3848|:warning:`warning:` |nbsp| :diagtext:`macro expansion producing 'defined' has undefined behavior`|
3849+-------------------------------------------------------------------------------------------------+
3850
3851
3852-Wexperimental-isel
3853-------------------
3854This diagnostic is enabled by default.
3855
3856**Diagnostic text:**
3857
3858+------------------------------------------------------------------------------------------------------------------------------------+
3859|:warning:`warning:` |nbsp| :diagtext:`-fexperimental-isel support for the '`:placeholder:`A`:diagtext:`' architecture is incomplete`|
3860+------------------------------------------------------------------------------------------------------------------------------------+
3861
3862+----------------------------------------------------------------------------------------------------------------------------------------+
3863|:warning:`warning:` |nbsp| :diagtext:`-fexperimental-isel support is incomplete for this architecture at the current optimization level`|
3864+----------------------------------------------------------------------------------------------------------------------------------------+
3865
3866
3867-Wexplicit-initialize-call
3868--------------------------
3869This diagnostic is enabled by default.
3870
3871**Diagnostic text:**
3872
3873+------------------------------------------------------------------------------------------------------------+
3874|:warning:`warning:` |nbsp| :diagtext:`explicit call to +initialize results in duplicate call to +initialize`|
3875+------------------------------------------------------------------------------------------------------------+
3876
3877+----------------------------------------------------------------------------------------------------------------------------+
3878|:warning:`warning:` |nbsp| :diagtext:`explicit call to \[super initialize\] should only be in implementation of +initialize`|
3879+----------------------------------------------------------------------------------------------------------------------------+
3880
3881
3882-Wexplicit-ownership-type
3883-------------------------
3884**Diagnostic text:**
3885
3886+-------------------------------------------------------------------------------------------------------------------------------------+
3887|:warning:`warning:` |nbsp| :diagtext:`method parameter of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with no explicit ownership`|
3888+-------------------------------------------------------------------------------------------------------------------------------------+
3889
3890
3891-Wextern-c-compat
3892-----------------
3893This diagnostic is enabled by default.
3894
3895**Diagnostic text:**
3896
3897+---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+
3898|:warning:`warning:` |nbsp| |+-------------------------+|+------------------+| |nbsp| :diagtext:`has size 0 in C,` |nbsp| |+-------------------------+| |nbsp| :diagtext:`in C++`|
3899|                           ||                         |||:diagtext:`struct`||                                            ||:diagtext:`size 1`       ||                          |
3900|                           |+-------------------------+|+------------------+|                                            |+-------------------------+|                          |
3901|                           ||:diagtext:`empty` |nbsp| |||:diagtext:`union` ||                                            ||:diagtext:`non-zero size`||                          |
3902|                           |+-------------------------+|+------------------+|                                            |+-------------------------+|                          |
3903+---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+
3904
3905
3906-Wextern-initializer
3907--------------------
3908This diagnostic is enabled by default.
3909
3910**Diagnostic text:**
3911
3912+---------------------------------------------------------------------------+
3913|:warning:`warning:` |nbsp| :diagtext:`'extern' variable has an initializer`|
3914+---------------------------------------------------------------------------+
3915
3916
3917-Wextra
3918-------
3919Some of the diagnostics controlled by this flag are enabled by default.
3920
3921Also controls `-Wempty-init-stmt`_, `-Wignored-qualifiers`_, `-Winitializer-overrides`_, `-Wmissing-field-initializers`_, `-Wmissing-method-return-type`_, `-Wnull-pointer-arithmetic`_, `-Wsemicolon-before-method-body`_, `-Wsign-compare`_, `-Wunused-parameter`_.
3922
3923**Diagnostic text:**
3924
3925+-----------------------------------------------------------------------------------------------------------------------------+
3926|:warning:`warning:` |nbsp| :diagtext:`call to function without interrupt attribute could clobber interruptee's VFP registers`|
3927+-----------------------------------------------------------------------------------------------------------------------------+
3928
3929
3930-Wextra-qualification
3931---------------------
3932This diagnostic is enabled by default.
3933
3934**Diagnostic text:**
3935
3936+--------------------------------------------------------------------------------------------+
3937|:warning:`warning:` |nbsp| :diagtext:`extra qualification on member` |nbsp| :placeholder:`A`|
3938+--------------------------------------------------------------------------------------------+
3939
3940
3941-Wextra-semi
3942------------
3943Also controls `-Wc++11-extra-semi`_, `-Wc++98-compat-extra-semi`_.
3944
3945**Diagnostic text:**
3946
3947+--------------------------------------------------------+------------------------------------------------+
3948|:warning:`warning:` |nbsp| :diagtext:`extra ';'` |nbsp| |+----------------------------------------------+|
3949|                                                        ||:diagtext:`outside of a function`             ||
3950|                                                        |+----------------------------------------------+|
3951|                                                        ||+--------------------------------------------+||
3952|                                                        |||:diagtext:`inside a` |nbsp| :placeholder:`B`|||
3953|                                                        ||+--------------------------------------------+||
3954|                                                        |+----------------------------------------------+|
3955|                                                        ||:diagtext:`inside instance variable list`     ||
3956|                                                        |+----------------------------------------------+|
3957|                                                        ||:diagtext:`after member function definition`  ||
3958|                                                        |+----------------------------------------------+|
3959+--------------------------------------------------------+------------------------------------------------+
3960
3961+---------------------------------------------------------------------------------+
3962|:warning:`warning:` |nbsp| :diagtext:`extra ';' after member function definition`|
3963+---------------------------------------------------------------------------------+
3964
3965
3966-Wextra-semi-stmt
3967-----------------
3968Also controls `-Wempty-init-stmt`_.
3969
3970**Diagnostic text:**
3971
3972+-------------------------------------------------------------------------------------------------------------------------------+
3973|:warning:`warning:` |nbsp| :diagtext:`empty expression statement has no effect; remove unnecessary ';' to silence this warning`|
3974+-------------------------------------------------------------------------------------------------------------------------------+
3975
3976
3977-Wextra-tokens
3978--------------
3979This diagnostic is enabled by default.
3980
3981**Diagnostic text:**
3982
3983+------------------------------------------------------------------------------------------------------------+
3984|:warning:`warning:` |nbsp| :diagtext:`extra tokens at end of #`:placeholder:`A` |nbsp| :diagtext:`directive`|
3985+------------------------------------------------------------------------------------------------------------+
3986
3987+-------------------------------------------------------------------------------------------------------------------------------+
3988|:warning:`warning:` |nbsp| :diagtext:`extra tokens at the end of '#pragma omp` |nbsp| :placeholder:`A`:diagtext:`' are ignored`|
3989+-------------------------------------------------------------------------------------------------------------------------------+
3990
3991
3992-Wfallback
3993----------
3994This diagnostic is enabled by default.
3995
3996**Diagnostic text:**
3997
3998+------------------------------------------------------------------------------+
3999|:warning:`warning:` |nbsp| :diagtext:`falling back to` |nbsp| :placeholder:`A`|
4000+------------------------------------------------------------------------------+
4001
4002
4003-Wfixed-enum-extension
4004----------------------
4005**Diagnostic text:**
4006
4007+-----------------------------------------------------------------------------------------------------------+
4008|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a Clang extension`|
4009+-----------------------------------------------------------------------------------------------------------+
4010
4011
4012-Wflag-enum
4013-----------
4014This diagnostic is enabled by default.
4015
4016**Diagnostic text:**
4017
4018+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4019|:warning:`warning:` |nbsp| :diagtext:`enumeration value` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is out of range of flags in enumeration type` |nbsp| :placeholder:`B`|
4020+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4021
4022
4023-Wflexible-array-extensions
4024---------------------------
4025**Diagnostic text:**
4026
4027+-------------------------------------------------------------------------------------------------------------------------------+
4028|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may not be used as an array element due to flexible array member`|
4029+-------------------------------------------------------------------------------------------------------------------------------+
4030
4031+-------------------------------------------------------------------------------------------------------------------------+
4032|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may not be nested in a struct due to flexible array member`|
4033+-------------------------------------------------------------------------------------------------------------------------+
4034
4035
4036-Wfloat-conversion
4037------------------
4038Also controls `-Wfloat-overflow-conversion`_, `-Wfloat-zero-conversion`_.
4039
4040**Diagnostic text:**
4041
4042+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4043|:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns floating-point number into integer:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
4044+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4045
4046
4047-Wfloat-equal
4048-------------
4049**Diagnostic text:**
4050
4051+---------------------------------------------------------------------------------------+
4052|:warning:`warning:` |nbsp| :diagtext:`comparing floating point with == or != is unsafe`|
4053+---------------------------------------------------------------------------------------+
4054
4055
4056-Wfloat-overflow-conversion
4057---------------------------
4058**Diagnostic text:**
4059
4060+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4061|: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`|
4062+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4063
4064+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4065|:warning:`warning:` |nbsp| :diagtext:`implicit conversion of out of range value from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is undefined`|
4066+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4067
4068
4069-Wfloat-zero-conversion
4070-----------------------
4071**Diagnostic text:**
4072
4073+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4074|: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`|
4075+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4076
4077
4078-Wfor-loop-analysis
4079-------------------
4080**Diagnostic text:**
4081
4082+-----------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------+
4083|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is` |nbsp| |+-----------------------+| |nbsp| :diagtext:`both in the loop header and in the loop body`|
4084|                                                                                                     ||:diagtext:`decremented`||                                                                |
4085|                                                                                                     |+-----------------------+|                                                                |
4086|                                                                                                     ||:diagtext:`incremented`||                                                                |
4087|                                                                                                     |+-----------------------+|                                                                |
4088+-----------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------+
4089
4090+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+
4091|:warning:`warning:` |nbsp| :diagtext:`variable`|+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |nbsp| :diagtext:`used in loop condition not modified in loop body`|
4092|                                               ||:diagtext:`s`                                                                                                                                             ||                                                                    |
4093|                                               |+----------------------------------------------------------------------------------------------------------------------------------------------------------+|                                                                    |
4094|                                               ||+------------------------+                                                                                                                                ||                                                                    |
4095|                                               ||| |nbsp| :placeholder:`B`|                                                                                                                                ||                                                                    |
4096|                                               ||+------------------------+                                                                                                                                ||                                                                    |
4097|                                               |+----------------------------------------------------------------------------------------------------------------------------------------------------------+|                                                                    |
4098|                                               ||+------------------------------------------------------------------------------------+                                                                    ||                                                                    |
4099|                                               |||:diagtext:`s` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C`|                                                                    ||                                                                    |
4100|                                               ||+------------------------------------------------------------------------------------+                                                                    ||                                                                    |
4101|                                               |+----------------------------------------------------------------------------------------------------------------------------------------------------------+|                                                                    |
4102|                                               ||+-------------------------------------------------------------------------------------------------------------------+                                     ||                                                                    |
4103|                                               |||:diagtext:`s` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D`|                                     ||                                                                    |
4104|                                               ||+-------------------------------------------------------------------------------------------------------------------+                                     ||                                                                    |
4105|                                               |+----------------------------------------------------------------------------------------------------------------------------------------------------------+|                                                                    |
4106|                                               ||+--------------------------------------------------------------------------------------------------------------------------------------------------------+||                                                                    |
4107|                                               |||:diagtext:`s` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`, and` |nbsp| :placeholder:`E`|||                                                                    |
4108|                                               ||+--------------------------------------------------------------------------------------------------------------------------------------------------------+||                                                                    |
4109|                                               |+----------------------------------------------------------------------------------------------------------------------------------------------------------+|                                                                    |
4110+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+
4111
4112
4113-Wformat
4114--------
4115This diagnostic is enabled by default.
4116
4117Also controls `-Wformat-extra-args`_, `-Wformat-invalid-specifier`_, `-Wformat-security`_, `-Wformat-y2k`_, `-Wformat-zero-length`_, `-Wnonnull`_.
4118
4119**Diagnostic text:**
4120
4121+-------------------------------------------------------------------------------------+
4122|:warning:`warning:` |nbsp| :diagtext:`using '%%P' format specifier without precision`|
4123+-------------------------------------------------------------------------------------+
4124
4125+---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4126|: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`|
4127|                           ||:diagtext:`values of type`                  ||                                                                                                                                                                     |
4128|                           |+--------------------------------------------+|                                                                                                                                                                     |
4129|                           ||:diagtext:`enum values with underlying type`||                                                                                                                                                                     |
4130|                           |+--------------------------------------------+|                                                                                                                                                                     |
4131+---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4132
4133+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
4134|:warning:`warning:` |nbsp| :diagtext:`format specifies type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`but the argument has` |nbsp| |+---------------------------+| |nbsp| :placeholder:`B`|
4135|                                                                                                                                    ||:diagtext:`type`           ||                        |
4136|                                                                                                                                    |+---------------------------+|                        |
4137|                                                                                                                                    ||:diagtext:`underlying type`||                        |
4138|                                                                                                                                    |+---------------------------+|                        |
4139+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
4140
4141+----------------------------------------------------------------------------------------------------------------------------------------+
4142|:warning:`warning:` |nbsp| :diagtext:`using '`:placeholder:`A`:diagtext:`' format specifier annotation outside of os\_log()/os\_trace()`|
4143+----------------------------------------------------------------------------------------------------------------------------------------+
4144
4145+-----------------------------------------------------------------------------+-----------------------------+
4146|:warning:`warning:` |nbsp| :diagtext:`invalid position specified for` |nbsp| |+---------------------------+|
4147|                                                                             ||:diagtext:`field width`    ||
4148|                                                                             |+---------------------------+|
4149|                                                                             ||:diagtext:`field precision`||
4150|                                                                             |+---------------------------+|
4151+-----------------------------------------------------------------------------+-----------------------------+
4152
4153+----------------------------------------------------------------------------------------------------------+
4154|:warning:`warning:` |nbsp| :diagtext:`cannot mix positional and non-positional arguments in format string`|
4155+----------------------------------------------------------------------------------------------------------+
4156
4157+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4158|:warning:`warning:` |nbsp| :diagtext:`length modifier '`:placeholder:`A`:diagtext:`' results in undefined behavior or no effect with '`:placeholder:`B`:diagtext:`' conversion specifier`|
4159+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4160
4161+--------------------------------------------------------------------------------+
4162|:warning:`warning:` |nbsp| :diagtext:`format string should not be a wide string`|
4163+--------------------------------------------------------------------------------+
4164
4165+-------------------------------------------------------------------------------------------------------+
4166|:warning:`warning:` |nbsp| :diagtext:`position arguments in format strings start counting at 1 (not 0)`|
4167+-------------------------------------------------------------------------------------------------------+
4168
4169+------------------------------------------------------------+
4170|:warning:`warning:` |nbsp| :diagtext:`format string missing`|
4171+------------------------------------------------------------+
4172
4173+----------------------------------------------------------------------------------------------------------------------------------+
4174|:warning:`warning:` |nbsp| :diagtext:`object format flags cannot be used with '`:placeholder:`A`:diagtext:`' conversion specifier`|
4175+----------------------------------------------------------------------------------------------------------------------------------+
4176
4177+----------------------------------------+-----------------+-------------------------------------+-----------------------+--------------------------------------------------------+
4178|:warning:`warning:` |nbsp| :diagtext:`'`|+---------------+|:diagtext:`' specified field` |nbsp| |+---------------------+| |nbsp| :diagtext:`is missing a matching 'int' argument`|
4179|                                        ||:diagtext:`\*` ||                                     ||:diagtext:`width`    ||                                                        |
4180|                                        |+---------------+|                                     |+---------------------+|                                                        |
4181|                                        ||:diagtext:`.\*`||                                     ||:diagtext:`precision`||                                                        |
4182|                                        |+---------------+|                                     |+---------------------+|                                                        |
4183+----------------------------------------+-----------------+-------------------------------------+-----------------------+--------------------------------------------------------+
4184
4185+----------------------------------------------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------+
4186|:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| |+---------------------+| |nbsp| :diagtext:`should have type` |nbsp| :placeholder:`B`:diagtext:`, but argument has type` |nbsp| :placeholder:`C`|
4187|                                                    ||:diagtext:`width`    ||                                                                                                                       |
4188|                                                    |+---------------------+|                                                                                                                       |
4189|                                                    ||:diagtext:`precision`||                                                                                                                       |
4190|                                                    |+---------------------+|                                                                                                                       |
4191+----------------------------------------------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------+
4192
4193+-----------------------------------------------------------------+
4194|:warning:`warning:` |nbsp| :diagtext:`missing object format flag`|
4195+-----------------------------------------------------------------+
4196
4197+------------------------------------------------------------------------------------------+
4198|:warning:`warning:` |nbsp| :diagtext:`format string contains '\\0' within the string body`|
4199+------------------------------------------------------------------------------------------+
4200
4201+---------------------------------------------------------------------------+
4202|:warning:`warning:` |nbsp| :diagtext:`format string is not null-terminated`|
4203+---------------------------------------------------------------------------+
4204
4205+-----------------------------------------------------------------------------------------------------------------------------------------+
4206|:warning:`warning:` |nbsp| :diagtext:`flag '`:placeholder:`A`:diagtext:`' is ignored when flag '`:placeholder:`B`:diagtext:`' is present`|
4207+-----------------------------------------------------------------------------------------------------------------------------------------+
4208
4209+------------------------------------------------------------------+
4210|:warning:`warning:` |nbsp| :diagtext:`incomplete format specifier`|
4211+------------------------------------------------------------------+
4212
4213+--------------------------------------------------------------------------------+
4214|:warning:`warning:` |nbsp| :diagtext:`more '%%' conversions than data arguments`|
4215+--------------------------------------------------------------------------------+
4216
4217+-------------------------------------------------------------------------------------------------------+
4218|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is not a valid object format flag`|
4219+-------------------------------------------------------------------------------------------------------+
4220
4221+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
4222|:warning:`warning:` |nbsp| :diagtext:`flag '`:placeholder:`A`:diagtext:`' results in undefined behavior with '`:placeholder:`B`:diagtext:`' conversion specifier`|
4223+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
4224
4225+---------------------------+-------------------------+------------------------------------------------------------------------------------------------------------------+
4226|:warning:`warning:` |nbsp| |+-----------------------+| |nbsp| :diagtext:`used with '`:placeholder:`B`:diagtext:`' conversion specifier, resulting in undefined behavior`|
4227|                           ||:diagtext:`field width`||                                                                                                                  |
4228|                           |+-----------------------+|                                                                                                                  |
4229|                           ||:diagtext:`precision`  ||                                                                                                                  |
4230|                           |+-----------------------+|                                                                                                                  |
4231+---------------------------+-------------------------+------------------------------------------------------------------------------------------------------------------+
4232
4233+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
4234|:warning:`warning:` |nbsp| :diagtext:`data argument position '`:placeholder:`A`:diagtext:`' exceeds the number of data arguments (`:placeholder:`B`:diagtext:`)`|
4235+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
4236
4237+----------------------------------------------------------------------------------------+
4238|:warning:`warning:` |nbsp| :diagtext:`zero field width in scanf format string is unused`|
4239+----------------------------------------------------------------------------------------+
4240
4241+----------------------------------------------------------------------------------------+
4242|:warning:`warning:` |nbsp| :diagtext:`no closing '\]' for '%%\[' in scanf format string`|
4243+----------------------------------------------------------------------------------------+
4244
4245
4246-Wformat-extra-args
4247-------------------
4248This diagnostic is enabled by default.
4249
4250**Diagnostic text:**
4251
4252+------------------------------------------------------------------------------+
4253|:warning:`warning:` |nbsp| :diagtext:`data argument not used by format string`|
4254+------------------------------------------------------------------------------+
4255
4256
4257-Wformat-invalid-specifier
4258--------------------------
4259This diagnostic is enabled by default.
4260
4261**Diagnostic text:**
4262
4263+--------------------------------------------------------------------------------------------------+
4264|:warning:`warning:` |nbsp| :diagtext:`invalid conversion specifier '`:placeholder:`A`:diagtext:`'`|
4265+--------------------------------------------------------------------------------------------------+
4266
4267
4268-Wformat-non-iso
4269----------------
4270**Diagnostic text:**
4271
4272+-----------------------------------------------------------------------------+----------------------------------+---------------------------------------------+
4273|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`'` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`is not supported by ISO C`|
4274|                                                                             ||:diagtext:`length modifier`     ||                                             |
4275|                                                                             |+--------------------------------+|                                             |
4276|                                                                             ||:diagtext:`conversion specifier`||                                             |
4277|                                                                             |+--------------------------------+|                                             |
4278+-----------------------------------------------------------------------------+----------------------------------+---------------------------------------------+
4279
4280+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4281|:warning:`warning:` |nbsp| :diagtext:`using length modifier '`:placeholder:`A`:diagtext:`' with conversion specifier '`:placeholder:`B`:diagtext:`' is not supported by ISO C`|
4282+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4283
4284+--------------------------------------------------------------------------------------+
4285|:warning:`warning:` |nbsp| :diagtext:`positional arguments are not supported by ISO C`|
4286+--------------------------------------------------------------------------------------+
4287
4288
4289-Wformat-nonliteral
4290-------------------
4291**Diagnostic text:**
4292
4293+----------------------------------------------------------------------------+
4294|:warning:`warning:` |nbsp| :diagtext:`format string is not a string literal`|
4295+----------------------------------------------------------------------------+
4296
4297
4298-Wformat-pedantic
4299-----------------
4300**Diagnostic text:**
4301
4302+---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4303|: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`|
4304|                           ||:diagtext:`values of type`                  ||                                                                                                                                                                     |
4305|                           |+--------------------------------------------+|                                                                                                                                                                     |
4306|                           ||:diagtext:`enum values with underlying type`||                                                                                                                                                                     |
4307|                           |+--------------------------------------------+|                                                                                                                                                                     |
4308+---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4309
4310+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
4311|:warning:`warning:` |nbsp| :diagtext:`format specifies type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`but the argument has` |nbsp| |+---------------------------+| |nbsp| :placeholder:`B`|
4312|                                                                                                                                    ||:diagtext:`type`           ||                        |
4313|                                                                                                                                    |+---------------------------+|                        |
4314|                                                                                                                                    ||:diagtext:`underlying type`||                        |
4315|                                                                                                                                    |+---------------------------+|                        |
4316+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
4317
4318
4319-Wformat-security
4320-----------------
4321This diagnostic is enabled by default.
4322
4323**Diagnostic text:**
4324
4325+---------------------------------------------------------------------------------------------------+
4326|:warning:`warning:` |nbsp| :diagtext:`format string is not a string literal (potentially insecure)`|
4327+---------------------------------------------------------------------------------------------------+
4328
4329
4330-Wformat-y2k
4331------------
4332This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
4333
4334-Wformat-zero-length
4335--------------------
4336This diagnostic is enabled by default.
4337
4338**Diagnostic text:**
4339
4340+-------------------------------------------------------------+
4341|:warning:`warning:` |nbsp| :diagtext:`format string is empty`|
4342+-------------------------------------------------------------+
4343
4344
4345-Wformat=2
4346----------
4347Some of the diagnostics controlled by this flag are enabled by default.
4348
4349Controls `-Wformat-nonliteral`_, `-Wformat-security`_, `-Wformat-y2k`_.
4350
4351
4352-Wfour-char-constants
4353---------------------
4354**Diagnostic text:**
4355
4356+-------------------------------------------------------------------------+
4357|:warning:`warning:` |nbsp| :diagtext:`multi-character character constant`|
4358+-------------------------------------------------------------------------+
4359
4360
4361-Wframe-larger-than=
4362--------------------
4363This diagnostic is enabled by default.
4364
4365**Diagnostic text:**
4366
4367The text of this diagnostic is not controlled by Clang.
4368
4369+--------------------------------------------------------------------------------------------------------------------------------------+
4370|:warning:`warning:` |nbsp| :diagtext:`stack frame size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bytes in` |nbsp| :placeholder:`B`|
4371+--------------------------------------------------------------------------------------------------------------------------------------+
4372
4373
4374-Wframework-include-private-from-public
4375---------------------------------------
4376This diagnostic is enabled by default.
4377
4378**Diagnostic text:**
4379
4380+-------------------------------------------------------------------------------------------------------------------------------+
4381|:warning:`warning:` |nbsp| :diagtext:`public framework header includes private framework header '`:placeholder:`A`:diagtext:`'`|
4382+-------------------------------------------------------------------------------------------------------------------------------+
4383
4384
4385-Wfunction-def-in-objc-container
4386--------------------------------
4387This diagnostic is enabled by default.
4388
4389**Diagnostic text:**
4390
4391+--------------------------------------------------------------------------------------------------------+
4392|:warning:`warning:` |nbsp| :diagtext:`function definition inside an Objective-C container is deprecated`|
4393+--------------------------------------------------------------------------------------------------------+
4394
4395
4396-Wfunction-multiversion
4397-----------------------
4398This diagnostic is enabled by default.
4399
4400**Diagnostic text:**
4401
4402+-------------------------------------------------------------------------------------+
4403|:warning:`warning:` |nbsp| :diagtext:`body of cpu\_dispatch function will be ignored`|
4404+-------------------------------------------------------------------------------------+
4405
4406+---------------------------------------------------------------------------------------------+
4407|:warning:`warning:` |nbsp| :diagtext:`CPU list contains duplicate entries; attribute ignored`|
4408+---------------------------------------------------------------------------------------------+
4409
4410
4411-Wfuture-compat
4412---------------
4413This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
4414
4415-Wgcc-compat
4416------------
4417Some of the diagnostics controlled by this flag are enabled by default.
4418
4419**Diagnostic text:**
4420
4421+--------------------------------------------------------------------------+
4422|:warning:`warning:` |nbsp| :diagtext:`'diagnose\_if' is a clang extension`|
4423+--------------------------------------------------------------------------+
4424
4425+------------------------------------------------------------------------+
4426|:warning:`warning:` |nbsp| :diagtext:`'enable\_if' is a clang extension`|
4427+------------------------------------------------------------------------+
4428
4429+-----------------------------------------------------------------------------------------------+
4430|:warning:`warning:` |nbsp| :diagtext:`\_\_final is a GNU extension, consider using C++11 final`|
4431+-----------------------------------------------------------------------------------------------+
4432
4433+--------------------------------------------------------------------------------------------------------------------------------------------------------+
4434|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute in this position on a function definition`|
4435+--------------------------------------------------------------------------------------------------------------------------------------------------------+
4436
4437+---------------------------------------------------------------------------------------+
4438|:warning:`warning:` |nbsp| :diagtext:`'break' is bound to loop, GCC binds it to switch`|
4439+---------------------------------------------------------------------------------------+
4440
4441+----------------------------------------------------------------------------------------------------------------------------------------+
4442|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow the 'cleanup' attribute argument to be anything other than a simple identifier`|
4443+----------------------------------------------------------------------------------------------------------------------------------------+
4444
4445+-----------------------------------------------------------------------------------------------------------------+
4446|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow an attribute in this position on a function declaration`|
4447+-----------------------------------------------------------------------------------------------------------------+
4448
4449+------------------------------------------------------------------------------------------------------------------------------------------+
4450|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute to be written on a type`|
4451+------------------------------------------------------------------------------------------------------------------------------------------+
4452
4453+-------------------------------------------------------------------------------------------------------------------+
4454|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow variable declarations in for loop initializers before C99`|
4455+-------------------------------------------------------------------------------------------------------------------+
4456
4457+----------------------------------------------------------------------------------------------------------------------------------+
4458|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is bound to current loop, GCC binds it to the enclosing loop`|
4459+----------------------------------------------------------------------------------------------------------------------------------+
4460
4461
4462-Wglobal-constructors
4463---------------------
4464**Diagnostic text:**
4465
4466+--------------------------------------------------------------------------------+
4467|:warning:`warning:` |nbsp| :diagtext:`declaration requires a global constructor`|
4468+--------------------------------------------------------------------------------+
4469
4470+-------------------------------------------------------------------------------+
4471|:warning:`warning:` |nbsp| :diagtext:`declaration requires a global destructor`|
4472+-------------------------------------------------------------------------------+
4473
4474
4475-Wgnu
4476-----
4477Some of the diagnostics controlled by this flag are enabled by default.
4478
4479Controls `-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`_.
4480
4481
4482-Wgnu-alignof-expression
4483------------------------
4484This diagnostic is enabled by default.
4485
4486**Diagnostic text:**
4487
4488+----------------------------------------------------------------------------------------------------------+
4489|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`applied to an expression is a GNU extension`|
4490+----------------------------------------------------------------------------------------------------------+
4491
4492
4493-Wgnu-anonymous-struct
4494----------------------
4495**Diagnostic text:**
4496
4497+----------------------------------------------------------------------------+
4498|:warning:`warning:` |nbsp| :diagtext:`anonymous structs are a GNU extension`|
4499+----------------------------------------------------------------------------+
4500
4501
4502-Wgnu-array-member-paren-init
4503-----------------------------
4504This diagnostic is an error by default, but the flag ``-Wno-gnu-array-member-paren-init`` can be used to disable the error.
4505
4506**Diagnostic text:**
4507
4508+----------------------------------------------------------------------------------------------------+
4509|:error:`error:` |nbsp| :diagtext:`parenthesized initialization of a member array is a GNU extension`|
4510+----------------------------------------------------------------------------------------------------+
4511
4512
4513-Wgnu-auto-type
4514---------------
4515**Diagnostic text:**
4516
4517+--------------------------------------------------------------------------+
4518|:warning:`warning:` |nbsp| :diagtext:`'\_\_auto\_type' is a GNU extension`|
4519+--------------------------------------------------------------------------+
4520
4521
4522-Wgnu-binary-literal
4523--------------------
4524**Diagnostic text:**
4525
4526+----------------------------------------------------------------------------------+
4527|:warning:`warning:` |nbsp| :diagtext:`binary integer literals are a GNU extension`|
4528+----------------------------------------------------------------------------------+
4529
4530
4531-Wgnu-case-range
4532----------------
4533**Diagnostic text:**
4534
4535+----------------------------------------------------------------------+
4536|:warning:`warning:` |nbsp| :diagtext:`use of GNU case range extension`|
4537+----------------------------------------------------------------------+
4538
4539
4540-Wgnu-complex-integer
4541---------------------
4542**Diagnostic text:**
4543
4544+--------------------------------------------------------------------------------+
4545|:warning:`warning:` |nbsp| :diagtext:`complex integer types are a GNU extension`|
4546+--------------------------------------------------------------------------------+
4547
4548
4549-Wgnu-compound-literal-initializer
4550----------------------------------
4551**Diagnostic text:**
4552
4553+--------------------------------------------------------------------------------------------------------------------------------------------------+
4554|:warning:`warning:` |nbsp| :diagtext:`initialization of an array` |nbsp| :diagtext:`from a compound literal` |nbsp| :diagtext:`is a GNU extension`|
4555+--------------------------------------------------------------------------------------------------------------------------------------------------+
4556
4557
4558-Wgnu-conditional-omitted-operand
4559---------------------------------
4560**Diagnostic text:**
4561
4562+--------------------------------------------------------------------------------------------------------------+
4563|:warning:`warning:` |nbsp| :diagtext:`use of GNU ?: conditional expression extension, omitting middle operand`|
4564+--------------------------------------------------------------------------------------------------------------+
4565
4566
4567-Wgnu-designator
4568----------------
4569Some of the diagnostics controlled by this flag are enabled by default.
4570
4571**Diagnostic text:**
4572
4573+-----------------------------------------------------------------------+
4574|:warning:`warning:` |nbsp| :diagtext:`use of GNU array range extension`|
4575+-----------------------------------------------------------------------+
4576
4577+-------------------------------------------------------------------------------------+
4578|:warning:`warning:` |nbsp| :diagtext:`use of GNU 'missing =' extension in designator`|
4579+-------------------------------------------------------------------------------------+
4580
4581+--------------------------------------------------------------------------------------+
4582|:warning:`warning:` |nbsp| :diagtext:`use of GNU old-style field designator extension`|
4583+--------------------------------------------------------------------------------------+
4584
4585
4586-Wgnu-empty-initializer
4587-----------------------
4588**Diagnostic text:**
4589
4590+-----------------------------------------------------------------------------+
4591|:warning:`warning:` |nbsp| :diagtext:`use of GNU empty initializer extension`|
4592+-----------------------------------------------------------------------------+
4593
4594
4595-Wgnu-empty-struct
4596------------------
4597**Diagnostic text:**
4598
4599+----------------------------------------------------+--------------------+--------------------------------------+
4600|:warning:`warning:` |nbsp| :diagtext:`empty` |nbsp| |+------------------+| |nbsp| :diagtext:`is a GNU extension`|
4601|                                                    ||:diagtext:`struct`||                                      |
4602|                                                    |+------------------+|                                      |
4603|                                                    ||:diagtext:`union` ||                                      |
4604|                                                    |+------------------+|                                      |
4605+----------------------------------------------------+--------------------+--------------------------------------+
4606
4607+----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------+
4608|:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in otherwise empty` |nbsp| |+---------------------+| |nbsp| :diagtext:`is a GNU extension`|
4609|                                                                                                                                  ||:diagtext:`struct`   ||                                      |
4610|                                                                                                                                  |+---------------------+|                                      |
4611|                                                                                                                                  ||:diagtext:`interface`||                                      |
4612|                                                                                                                                  |+---------------------+|                                      |
4613|                                                                                                                                  ||:diagtext:`union`    ||                                      |
4614|                                                                                                                                  |+---------------------+|                                      |
4615|                                                                                                                                  ||:diagtext:`class`    ||                                      |
4616|                                                                                                                                  |+---------------------+|                                      |
4617|                                                                                                                                  ||:diagtext:`enum`     ||                                      |
4618|                                                                                                                                  |+---------------------+|                                      |
4619+----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------+
4620
4621+---------------------------+--------------------+------------------------------------------------------------+
4622|:warning:`warning:` |nbsp| |+------------------+| |nbsp| :diagtext:`without named members is a GNU extension`|
4623|                           ||:diagtext:`struct`||                                                            |
4624|                           |+------------------+|                                                            |
4625|                           ||:diagtext:`union` ||                                                            |
4626|                           |+------------------+|                                                            |
4627+---------------------------+--------------------+------------------------------------------------------------+
4628
4629
4630-Wgnu-flexible-array-initializer
4631--------------------------------
4632**Diagnostic text:**
4633
4634+---------------------------------------------------------------------------------------+
4635|:warning:`warning:` |nbsp| :diagtext:`flexible array initialization is a GNU extension`|
4636+---------------------------------------------------------------------------------------+
4637
4638
4639-Wgnu-flexible-array-union-member
4640---------------------------------
4641**Diagnostic text:**
4642
4643+-------------------------------------------------------------------------------------------------------------------------------------+
4644|:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in a union is a GNU extension`|
4645+-------------------------------------------------------------------------------------------------------------------------------------+
4646
4647
4648-Wgnu-folding-constant
4649----------------------
4650**Diagnostic text:**
4651
4652+-------------------------------------------------------------------+----------------------+------------------------------------------------------------------------------------+
4653|:warning:`warning:` |nbsp| :diagtext:`expression is not an` |nbsp| |+--------------------+| |nbsp| :diagtext:`constant expression; folding it to a constant is a GNU extension`|
4654|                                                                   ||:diagtext:`integer` ||                                                                                    |
4655|                                                                   |+--------------------+|                                                                                    |
4656|                                                                   ||:diagtext:`integral`||                                                                                    |
4657|                                                                   |+--------------------+|                                                                                    |
4658+-------------------------------------------------------------------+----------------------+------------------------------------------------------------------------------------+
4659
4660+------------------------------------------------------------------------------------------------------------------------------------------------------------+
4661|: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`|
4662+------------------------------------------------------------------------------------------------------------------------------------------------------------+
4663
4664+-----------------------------------------------------------------------------------------------------+
4665|:warning:`warning:` |nbsp| :diagtext:`variable length array folded to constant array as an extension`|
4666+-----------------------------------------------------------------------------------------------------+
4667
4668
4669-Wgnu-imaginary-constant
4670------------------------
4671**Diagnostic text:**
4672
4673+------------------------------------------------------------------------------+
4674|:warning:`warning:` |nbsp| :diagtext:`imaginary constants are a GNU extension`|
4675+------------------------------------------------------------------------------+
4676
4677
4678-Wgnu-include-next
4679------------------
4680**Diagnostic text:**
4681
4682+-----------------------------------------------------------------------------+
4683|:warning:`warning:` |nbsp| :diagtext:`#include\_next is a language extension`|
4684+-----------------------------------------------------------------------------+
4685
4686
4687-Wgnu-label-as-value
4688--------------------
4689**Diagnostic text:**
4690
4691+----------------------------------------------------------------------------+
4692|:warning:`warning:` |nbsp| :diagtext:`use of GNU address-of-label extension`|
4693+----------------------------------------------------------------------------+
4694
4695+-------------------------------------------------------------------------+
4696|:warning:`warning:` |nbsp| :diagtext:`use of GNU indirect-goto extension`|
4697+-------------------------------------------------------------------------+
4698
4699
4700-Wgnu-redeclared-enum
4701---------------------
4702**Diagnostic text:**
4703
4704+------------------------------------------------------------------------------------------------------------------------------------------+
4705|:warning:`warning:` |nbsp| :diagtext:`redeclaration of already-defined enum` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a GNU extension`|
4706+------------------------------------------------------------------------------------------------------------------------------------------+
4707
4708
4709-Wgnu-statement-expression
4710--------------------------
4711**Diagnostic text:**
4712
4713+--------------------------------------------------------------------------------+
4714|:warning:`warning:` |nbsp| :diagtext:`use of GNU statement expression extension`|
4715+--------------------------------------------------------------------------------+
4716
4717
4718-Wgnu-static-float-init
4719-----------------------
4720This diagnostic is enabled by default.
4721
4722**Diagnostic text:**
4723
4724+--------------------------------------------------------------------------------------------------------------------------------------------------------+
4725|:warning:`warning:` |nbsp| :diagtext:`in-class initializer for static data member of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a GNU extension`|
4726+--------------------------------------------------------------------------------------------------------------------------------------------------------+
4727
4728
4729-Wgnu-string-literal-operator-template
4730--------------------------------------
4731This diagnostic is enabled by default.
4732
4733**Diagnostic text:**
4734
4735+--------------------------------------------------------------------------------------------+
4736|:warning:`warning:` |nbsp| :diagtext:`string literal operator templates are a GNU extension`|
4737+--------------------------------------------------------------------------------------------+
4738
4739
4740-Wgnu-union-cast
4741----------------
4742**Diagnostic text:**
4743
4744+----------------------------------------------------------------------------+
4745|:warning:`warning:` |nbsp| :diagtext:`cast to union type is a GNU extension`|
4746+----------------------------------------------------------------------------+
4747
4748
4749-Wgnu-variable-sized-type-not-at-end
4750------------------------------------
4751This diagnostic is enabled by default.
4752
4753**Diagnostic text:**
4754
4755+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4756|: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`|
4757+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4758
4759
4760-Wgnu-zero-line-directive
4761-------------------------
4762**Diagnostic text:**
4763
4764+--------------------------------------------------------------------------------------------+
4765|:warning:`warning:` |nbsp| :diagtext:`#line directive with zero argument is a GNU extension`|
4766+--------------------------------------------------------------------------------------------+
4767
4768
4769-Wgnu-zero-variadic-macro-arguments
4770-----------------------------------
4771**Diagnostic text:**
4772
4773+---------------------------------------------------------------------------------------------------------------+
4774|:warning:`warning:` |nbsp| :diagtext:`must specify at least one argument for '...' parameter of variadic macro`|
4775+---------------------------------------------------------------------------------------------------------------+
4776
4777+---------------------------------------------------------------------------------------------------+
4778|:warning:`warning:` |nbsp| :diagtext:`token pasting of ',' and \_\_VA\_ARGS\_\_ is a GNU extension`|
4779+---------------------------------------------------------------------------------------------------+
4780
4781
4782-Wheader-guard
4783--------------
4784This diagnostic is enabled by default.
4785
4786**Diagnostic text:**
4787
4788+---------------------------------------------------------------------------------------------------------------------------------------+
4789|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is used as a header guard here, followed by #define of a different macro`|
4790+---------------------------------------------------------------------------------------------------------------------------------------+
4791
4792
4793-Wheader-hygiene
4794----------------
4795**Diagnostic text:**
4796
4797+--------------------------------------------------------------------------------------------+
4798|:warning:`warning:` |nbsp| :diagtext:`using namespace directive in global context in header`|
4799+--------------------------------------------------------------------------------------------+
4800
4801
4802-Widiomatic-parentheses
4803-----------------------
4804**Diagnostic text:**
4805
4806+-----------------------------------------------------------------------------------------------------------+
4807|:warning:`warning:` |nbsp| :diagtext:`using the result of an assignment as a condition without parentheses`|
4808+-----------------------------------------------------------------------------------------------------------+
4809
4810
4811-Wignored-attributes
4812--------------------
4813This diagnostic is enabled by default.
4814
4815**Diagnostic text:**
4816
4817+--------------------------------------------------------------------------------------------------+
4818|:warning:`warning:` |nbsp| :diagtext:`'trivial\_abi' cannot be applied to` |nbsp| :placeholder:`A`|
4819+--------------------------------------------------------------------------------------------------+
4820
4821+---------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4822|: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`|
4823|                           ||:diagtext:`alias`||                                                                                                                                                                         |
4824|                           |+-----------------+|                                                                                                                                                                         |
4825|                           ||:diagtext:`ifunc`||                                                                                                                                                                         |
4826|                           |+-----------------+|                                                                                                                                                                         |
4827+---------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4828
4829+---------------------------+-------------------+----------------------------------------------------------------------------------------------------------------+----------------------+
4830|:warning:`warning:` |nbsp| |+-----------------+| |nbsp| :diagtext:`will not be in section '`:placeholder:`A`:diagtext:`' but in the same section as the` |nbsp| |+--------------------+|
4831|                           ||:diagtext:`alias`||                                                                                                                ||:diagtext:`aliasee` ||
4832|                           |+-----------------+|                                                                                                                |+--------------------+|
4833|                           ||:diagtext:`ifunc`||                                                                                                                ||:diagtext:`resolver`||
4834|                           |+-----------------+|                                                                                                                |+--------------------+|
4835+---------------------------+-------------------+----------------------------------------------------------------------------------------------------------------+----------------------+
4836
4837+----------------------------------------------------------------------+------------------------+-------------------------------------+
4838|:warning:`warning:` |nbsp| :diagtext:`'abi\_tag' attribute on` |nbsp| |+----------------------+| |nbsp| :diagtext:`namespace ignored`|
4839|                                                                      ||:diagtext:`non-inline`||                                     |
4840|                                                                      |+----------------------+|                                     |
4841|                                                                      ||:diagtext:`anonymous` ||                                     |
4842|                                                                      |+----------------------+|                                     |
4843+----------------------------------------------------------------------+------------------------+-------------------------------------+
4844
4845+-----------------------------------------------------------------------------------------------------------------------+
4846|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`after definition is ignored`|
4847+-----------------------------------------------------------------------------------------------------------------------+
4848
4849+--------------------------------------------------------------------------------------------------------------------------------+
4850|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute can only be applied to instance variables or properties`|
4851+--------------------------------------------------------------------------------------------------------------------------------+
4852
4853+--------------------------------------------------------------------------------+
4854|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored`|
4855+--------------------------------------------------------------------------------+
4856
4857+--------------------------------------------------------------------------------------------------------------------------+
4858|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored for field of type` |nbsp| :placeholder:`B`|
4859+--------------------------------------------------------------------------------------------------------------------------+
4860
4861+---------------------------------------------------------------------------------------------------+
4862|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored on inline function`|
4863+---------------------------------------------------------------------------------------------------+
4864
4865+-------------------------------------------------------------------------------------------------------------------+
4866|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' attribute cannot be specified on a definition`|
4867+-------------------------------------------------------------------------------------------------------------------+
4868
4869+------------------------------------------------------------------------------------------------------------------------------------------------+
4870|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it is not attached to a declaration`|
4871+------------------------------------------------------------------------------------------------------------------------------------------------+
4872
4873+--------------------------------------------------------------------------------------------------------+
4874|:warning:`warning:` |nbsp| :diagtext:`'nonnull' attribute applied to function with no pointer arguments`|
4875+--------------------------------------------------------------------------------------------------------+
4876
4877+-----------------------------------------------------------------------------------------------------+
4878|:warning:`warning:` |nbsp| :diagtext:`'nonnull' attribute when used on parameters takes no arguments`|
4879+-----------------------------------------------------------------------------------------------------+
4880
4881+--------------------------------------------------------------------------------------------------+
4882|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored when parsing type`|
4883+--------------------------------------------------------------------------------------------------+
4884
4885+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
4886|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to a pointer or reference (`:placeholder:`B` |nbsp| :diagtext:`is invalid)`|
4887+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
4888
4889+----------------------------------------------------------------------------------------+------------------------------+-------------------------------------+
4890|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to`|+----------------------------+| |nbsp| :diagtext:`pointer arguments`|
4891|                                                                                        ||                            ||                                     |
4892|                                                                                        |+----------------------------+|                                     |
4893|                                                                                        || |nbsp| :diagtext:`constant`||                                     |
4894|                                                                                        |+----------------------------+|                                     |
4895+----------------------------------------------------------------------------------------+------------------------------+-------------------------------------+
4896
4897+------------------------------------------------------------------------------------+
4898|:warning:`warning:` |nbsp| :diagtext:`attribute declaration must precede definition`|
4899+------------------------------------------------------------------------------------+
4900
4901+------------------------------------------------------------------------------------------------------------------------+
4902|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to return values that are pointers`|
4903+------------------------------------------------------------------------------------------------------------------------+
4904
4905+--------------------------------------------------------------------------------------------------------------------------------------+
4906|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to return values that are pointers or references`|
4907+--------------------------------------------------------------------------------------------------------------------------------------+
4908
4909+------------------------------------------------------------------------------------+
4910|:warning:`warning:` |nbsp| :diagtext:`'sentinel' attribute requires named arguments`|
4911+------------------------------------------------------------------------------------+
4912
4913+-----------------------------------------------------------------------------------------------+-----------------------+
4914|:warning:`warning:` |nbsp| :diagtext:`'sentinel' attribute only supported for variadic` |nbsp| |+---------------------+|
4915|                                                                                               ||:diagtext:`functions`||
4916|                                                                                               |+---------------------+|
4917|                                                                                               ||:diagtext:`blocks`   ||
4918|                                                                                               |+---------------------+|
4919+-----------------------------------------------------------------------------------------------+-----------------------+
4920
4921+------------------------------------------------------------------------------------------------------------------------+
4922|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute argument not supported:` |nbsp| :placeholder:`B`|
4923+------------------------------------------------------------------------------------------------------------------------+
4924
4925+---------------------------------------------------------------------------------+
4926|:warning:`warning:` |nbsp| :diagtext:`unknown visibility` |nbsp| :placeholder:`A`|
4927+---------------------------------------------------------------------------------+
4928
4929+------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------+
4930|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be applied to` |nbsp| |+------------------------------+| |nbsp| :diagtext:`without return value`|
4931|                                                                                                                        ||:diagtext:`functions`         ||                                        |
4932|                                                                                                                        |+------------------------------+|                                        |
4933|                                                                                                                        ||:diagtext:`Objective-C method`||                                        |
4934|                                                                                                                        |+------------------------------+|                                        |
4935+------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------+
4936
4937+----------------------------------------------------------------------------------------------------+
4938|:warning:`warning:` |nbsp| :diagtext:`\_\_weak attribute cannot be specified on a field declaration`|
4939+----------------------------------------------------------------------------------------------------+
4940
4941+------------------------------------------------------------------------------------------------------------------------------+
4942|:warning:`warning:` |nbsp| :diagtext:`\_\_weak attribute cannot be specified on an automatic variable when ARC is not enabled`|
4943+------------------------------------------------------------------------------------------------------------------------------+
4944
4945+------------------------------------------------------------------------------------------------+---------------------------------------------------+
4946|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+-------------------------------------------------+|
4947|                                                                                                ||:diagtext:`functions`                            ||
4948|                                                                                                |+-------------------------------------------------+|
4949|                                                                                                ||:diagtext:`unions`                               ||
4950|                                                                                                |+-------------------------------------------------+|
4951|                                                                                                ||:diagtext:`variables and functions`              ||
4952|                                                                                                |+-------------------------------------------------+|
4953|                                                                                                ||:diagtext:`functions and methods`                ||
4954|                                                                                                |+-------------------------------------------------+|
4955|                                                                                                ||:diagtext:`functions, methods and blocks`        ||
4956|                                                                                                |+-------------------------------------------------+|
4957|                                                                                                ||:diagtext:`functions, methods, and parameters`   ||
4958|                                                                                                |+-------------------------------------------------+|
4959|                                                                                                ||:diagtext:`variables`                            ||
4960|                                                                                                |+-------------------------------------------------+|
4961|                                                                                                ||:diagtext:`variables and fields`                 ||
4962|                                                                                                |+-------------------------------------------------+|
4963|                                                                                                ||:diagtext:`variables, data members and tag types`||
4964|                                                                                                |+-------------------------------------------------+|
4965|                                                                                                ||:diagtext:`types and namespaces`                 ||
4966|                                                                                                |+-------------------------------------------------+|
4967|                                                                                                ||:diagtext:`variables, functions and classes`     ||
4968|                                                                                                |+-------------------------------------------------+|
4969|                                                                                                ||:diagtext:`kernel functions`                     ||
4970|                                                                                                |+-------------------------------------------------+|
4971|                                                                                                ||:diagtext:`non-K&R-style functions`              ||
4972|                                                                                                |+-------------------------------------------------+|
4973+------------------------------------------------------------------------------------------------+---------------------------------------------------+
4974
4975+----------------------------------------------------------------------------------------------------------------+
4976|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| :placeholder:`B`|
4977+----------------------------------------------------------------------------------------------------------------+
4978
4979+--------------------------------------------------------------------------------------------------------------------------------------------------------+
4980|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it cannot be applied to omitted return type`|
4981+--------------------------------------------------------------------------------------------------------------------------------------------------------+
4982
4983+----------------------------------------------------------------------------------------------------------------------------+
4984|:warning:`warning:` |nbsp| :diagtext:`calling convention` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored for this target`|
4985+----------------------------------------------------------------------------------------------------------------------------+
4986
4987+-------------------------------------------------------------------------------------------------------------------+
4988|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`calling convention ignored on constructor/destructor`|
4989+-------------------------------------------------------------------------------------------------------------------+
4990
4991+--------------------------------------------------------------------------------------------------------------+
4992|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`calling convention ignored on variadic function`|
4993+--------------------------------------------------------------------------------------------------------------+
4994
4995+-------------------------------------------------------------------------------------------------------------------------------------------+
4996|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it cannot be applied to a type`|
4997+-------------------------------------------------------------------------------------------------------------------------------------------+
4998
4999+------------------------------------------------------------------------------------------------------------------------+-----------------------+----------------------------------------------------+
5000|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is ignored, place it after "`|+---------------------+|:diagtext:`" to apply attribute to type declaration`|
5001|                                                                                                                        ||:diagtext:`class`    ||                                                    |
5002|                                                                                                                        |+---------------------+|                                                    |
5003|                                                                                                                        ||:diagtext:`struct`   ||                                                    |
5004|                                                                                                                        |+---------------------+|                                                    |
5005|                                                                                                                        ||:diagtext:`interface`||                                                    |
5006|                                                                                                                        |+---------------------+|                                                    |
5007|                                                                                                                        ||:diagtext:`union`    ||                                                    |
5008|                                                                                                                        |+---------------------+|                                                    |
5009|                                                                                                                        ||:diagtext:`enum`     ||                                                    |
5010|                                                                                                                        |+---------------------+|                                                    |
5011+------------------------------------------------------------------------------------------------------------------------+-----------------------+----------------------------------------------------+
5012
5013+--------------------------------------------------------------------------------------------+
5014|:warning:`warning:` |nbsp| :diagtext:`'deprecated' attribute on anonymous namespace ignored`|
5015+--------------------------------------------------------------------------------------------+
5016
5017+----------------------------------------------------------------------------------------------------------------------------------------------+
5018|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`redeclared inline;` |nbsp| :placeholder:`B` |nbsp| :diagtext:`attribute ignored`|
5019+----------------------------------------------------------------------------------------------------------------------------------------------+
5020
5021+----------------------------------------------------------------------------------------------------------------------------------------+
5022|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is already applied with different parameters`|
5023+----------------------------------------------------------------------------------------------------------------------------------------+
5024
5025+--------------------------------------------------------------------------------------------------------------+
5026|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is already applied`|
5027+--------------------------------------------------------------------------------------------------------------+
5028
5029+------------------------------------------------------------------------------------------------+
5030|:warning:`warning:` |nbsp| :diagtext:`Objective-C GC does not allow weak variables on the stack`|
5031+------------------------------------------------------------------------------------------------+
5032
5033+-------------------------------------------------------------------------------------------------------------------------+
5034|:warning:`warning:` |nbsp| :diagtext:`'gnu\_inline' attribute requires function to be marked 'inline', attribute ignored`|
5035+-------------------------------------------------------------------------------------------------------------------------+
5036
5037+---------------------------------------------------------------------------+------------------------------------+
5038|:warning:`warning:` |nbsp| :diagtext:`inheritance model ignored on` |nbsp| |+----------------------------------+|
5039|                                                                           ||:diagtext:`primary template`      ||
5040|                                                                           |+----------------------------------+|
5041|                                                                           ||:diagtext:`partial specialization`||
5042|                                                                           |+----------------------------------+|
5043+---------------------------------------------------------------------------+------------------------------------+
5044
5045+------------------------------------------------------------------------------------------------------------------+-----------------------------------+
5046|:warning:`warning:` |nbsp| :diagtext:`'objc\_externally\_retained' can only be applied to local variables` |nbsp| |+---------------------------------+|
5047|                                                                                                                  ||:diagtext:`of retainable type`   ||
5048|                                                                                                                  |+---------------------------------+|
5049|                                                                                                                  ||:diagtext:`with strong ownership`||
5050|                                                                                                                  |+---------------------------------+|
5051+------------------------------------------------------------------------------------------------------------------+-----------------------------------+
5052
5053+--------------------------------------------------------------------------------------------------------------+
5054|:warning:`warning:` |nbsp| :diagtext:`'internal\_linkage' attribute on a non-static local variable is ignored`|
5055+--------------------------------------------------------------------------------------------------------------+
5056
5057+--------------------------------------------------------------------------------------------+
5058|:warning:`warning:` |nbsp| :diagtext:`qualifiers after comma in declarator list are ignored`|
5059+--------------------------------------------------------------------------------------------+
5060
5061+-------------------------------------------------------------------------------------------------------------+----------------------------------+
5062|:warning:`warning:` |nbsp| :diagtext:`MIPS 'interrupt' attribute only applies to functions that have` |nbsp| |+--------------------------------+|
5063|                                                                                                             ||:diagtext:`no parameters`       ||
5064|                                                                                                             |+--------------------------------+|
5065|                                                                                                             ||:diagtext:`a 'void' return type`||
5066|                                                                                                             |+--------------------------------+|
5067+-------------------------------------------------------------------------------------------------------------+----------------------------------+
5068
5069+---------------------------------------------------------------------------------------+
5070|:warning:`warning:` |nbsp| :diagtext:`unknown attribute '`:placeholder:`A`:diagtext:`'`|
5071+---------------------------------------------------------------------------------------+
5072
5073+---------------------------------------------------------------------------------------------------------------+----------------------------------+
5074|:warning:`warning:` |nbsp| :diagtext:`MSP430 'interrupt' attribute only applies to functions that have` |nbsp| |+--------------------------------+|
5075|                                                                                                               ||:diagtext:`no parameters`       ||
5076|                                                                                                               |+--------------------------------+|
5077|                                                                                                               ||:diagtext:`a 'void' return type`||
5078|                                                                                                               |+--------------------------------+|
5079+---------------------------------------------------------------------------------------------------------------+----------------------------------+
5080
5081+-------------------------------------------------------------------------------------------------------------------+
5082|:warning:`warning:` |nbsp| :diagtext:`'nocf\_check' attribute ignored; use -fcf-protection to enable the attribute`|
5083+-------------------------------------------------------------------------------------------------------------------+
5084
5085+---------------------------------------------------------------------------------------------+
5086|:warning:`warning:` |nbsp| :diagtext:`'noderef' can only be used on an array or pointer type`|
5087+---------------------------------------------------------------------------------------------+
5088
5089+------------------------------------------------------------------------------------------------+---------------------------------------------------+------------------------------+
5090|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+-------------------------------------------------+| |nbsp| :diagtext:`parameters`|
5091|                                                                                                ||:diagtext:`Objective-C object`                   ||                              |
5092|                                                                                                |+-------------------------------------------------+|                              |
5093|                                                                                                ||:diagtext:`pointer`                              ||                              |
5094|                                                                                                |+-------------------------------------------------+|                              |
5095|                                                                                                ||:diagtext:`pointer-to-CF-pointer`                ||                              |
5096|                                                                                                |+-------------------------------------------------+|                              |
5097|                                                                                                ||:diagtext:`pointer/reference-to-OSObject-pointer`||                              |
5098|                                                                                                |+-------------------------------------------------+|                              |
5099+------------------------------------------------------------------------------------------------+---------------------------------------------------+------------------------------+
5100
5101+------------------------------------------------------------------------------------------------+------------------------+---------------------------------------+--------------------------------------+
5102|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+----------------------+| |nbsp| :diagtext:`that return` |nbsp| |+------------------------------------+|
5103|                                                                                                ||:diagtext:`functions` ||                                       ||:diagtext:`an Objective-C object`   ||
5104|                                                                                                |+----------------------+|                                       |+------------------------------------+|
5105|                                                                                                ||:diagtext:`methods`   ||                                       ||:diagtext:`a pointer`               ||
5106|                                                                                                |+----------------------+|                                       |+------------------------------------+|
5107|                                                                                                ||:diagtext:`properties`||                                       ||:diagtext:`a non-retainable pointer`||
5108|                                                                                                |+----------------------+|                                       |+------------------------------------+|
5109+------------------------------------------------------------------------------------------------+------------------------+---------------------------------------+--------------------------------------+
5110
5111+--------------------------------------------------------------------------------------------------------------------------------------------+
5112|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is deprecated and ignored in OpenCL version` |nbsp| :placeholder:`B`|
5113+--------------------------------------------------------------------------------------------------------------------------------------------+
5114
5115+---------------------------------------------------------------------------------------------------------------+----------------------------------+
5116|:warning:`warning:` |nbsp| :diagtext:`RISC-V 'interrupt' attribute only applies to functions that have` |nbsp| |+--------------------------------+|
5117|                                                                                                               ||:diagtext:`no parameters`       ||
5118|                                                                                                               |+--------------------------------+|
5119|                                                                                                               ||:diagtext:`a 'void' return type`||
5120|                                                                                                               |+--------------------------------+|
5121+---------------------------------------------------------------------------------------------------------------+----------------------------------+
5122
5123+----------------------------------------------------------------------------+
5124|:warning:`warning:` |nbsp| :diagtext:`repeated RISC-V 'interrupt' attribute`|
5125+----------------------------------------------------------------------------+
5126
5127+---------------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------------------------------------------------------+
5128|: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`|
5129|                           ||:diagtext:`alignment`||                                                                                                                                             ||:diagtext:`alignment`||                                                                                                 |
5130|                           |+---------------------+|                                                                                                                                             |+---------------------+|                                                                                                 |
5131|                           ||:diagtext:`size`     ||                                                                                                                                             ||:diagtext:`size`     ||                                                                                                 |
5132|                           |+---------------------+|                                                                                                                                             |+---------------------+|                                                                                                 |
5133+---------------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------------------------------------------------------+
5134
5135+---------------------------------------------------------------------------------------------+----------------------------+--------------------------------------------------------------------------------------------------+
5136|:warning:`warning:` |nbsp| :diagtext:`first field of a transparent union cannot have` |nbsp| |+--------------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`B`:diagtext:`; transparent\_union attribute ignored`|
5137|                                                                                             ||:diagtext:`floating point`||                                                                                                  |
5138|                                                                                             |+--------------------------+|                                                                                                  |
5139|                                                                                             ||:diagtext:`vector`        ||                                                                                                  |
5140|                                                                                             |+--------------------------+|                                                                                                  |
5141+---------------------------------------------------------------------------------------------+----------------------------+--------------------------------------------------------------------------------------------------+
5142
5143+--------------------------------------------------------------------------------------------------------------------------------+
5144|:warning:`warning:` |nbsp| :diagtext:`transparent\_union attribute can only be applied to a union definition; attribute ignored`|
5145+--------------------------------------------------------------------------------------------------------------------------------+
5146
5147+-----------------------------------------------------------------------------------------------------------------------------------------+
5148|:warning:`warning:` |nbsp| :diagtext:`transparent union definition must contain at least one field; transparent\_union attribute ignored`|
5149+-----------------------------------------------------------------------------------------------------------------------------------------+
5150
5151+---------------------------------------------------------------------------------------------+-------------------------------------------------+---------------------------------------------------------------+
5152|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' only applies to` |nbsp| |+-----------------------------------------------+| |nbsp| :diagtext:`types; type here is` |nbsp| :placeholder:`C`|
5153|                                                                                             ||:diagtext:`function`                           ||                                                               |
5154|                                                                                             |+-----------------------------------------------+|                                                               |
5155|                                                                                             ||:diagtext:`pointer`                            ||                                                               |
5156|                                                                                             |+-----------------------------------------------+|                                                               |
5157|                                                                                             ||:diagtext:`Objective-C object or block pointer`||                                                               |
5158|                                                                                             |+-----------------------------------------------+|                                                               |
5159+---------------------------------------------------------------------------------------------+-------------------------------------------------+---------------------------------------------------------------+
5160
5161+-------------------------------------------------------------------------------------------------------------------------+
5162|:warning:`warning:` |nbsp| :diagtext:`\_\_declspec attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not supported`|
5163+-------------------------------------------------------------------------------------------------------------------------+
5164
5165+---------------------------+-------------------------+----------------------------------+---------------------------------------------------------------------------------------------------------------+
5166|:warning:`warning:` |nbsp| |+-----------------------+|+--------------------------------+| |nbsp| :diagtext:`'`:placeholder:`C`:diagtext:`' in the 'target' attribute string; 'target' attribute ignored`|
5167|                           ||:diagtext:`unsupported`|||                                ||                                                                                                               |
5168|                           |+-----------------------+|+--------------------------------+|                                                                                                               |
5169|                           ||:diagtext:`duplicate`  ||| |nbsp| :diagtext:`architecture`||                                                                                                               |
5170|                           |+-----------------------+|+--------------------------------+|                                                                                                               |
5171+---------------------------+-------------------------+----------------------------------+---------------------------------------------------------------------------------------------------------------+
5172
5173+----------------------------------------------------------------------------------------------------------------------------------------------------+
5174|:warning:`warning:` |nbsp| :diagtext:`'\_\_clang\_\_' is a predefined macro name, not an attribute scope specifier; did you mean '\_Clang' instead?`|
5175+----------------------------------------------------------------------------------------------------------------------------------------------------+
5176
5177
5178-Wignored-optimization-argument
5179-------------------------------
5180This diagnostic is enabled by default.
5181
5182**Diagnostic text:**
5183
5184+--------------------------------------------------------------------------------------------------------------------------------------------------+
5185|:warning:`warning:` |nbsp| :diagtext:`optimization flag '`:placeholder:`A`:diagtext:`' is not supported for target '`:placeholder:`B`:diagtext:`'`|
5186+--------------------------------------------------------------------------------------------------------------------------------------------------+
5187
5188+--------------------------------------------------------------------------------------------------------+
5189|:warning:`warning:` |nbsp| :diagtext:`optimization flag '`:placeholder:`A`:diagtext:`' is not supported`|
5190+--------------------------------------------------------------------------------------------------------+
5191
5192
5193-Wignored-pragma-intrinsic
5194--------------------------
5195This diagnostic is enabled by default.
5196
5197**Diagnostic text:**
5198
5199+------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+
5200|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not a recognized builtin`|+----------------------------------------------------------------------------+|
5201|                                                                                          ||                                                                            ||
5202|                                                                                          |+----------------------------------------------------------------------------+|
5203|                                                                                          ||:diagtext:`; consider including <intrin.h> to access non-builtin intrinsics`||
5204|                                                                                          |+----------------------------------------------------------------------------+|
5205+------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+
5206
5207
5208-Wignored-pragma-optimize
5209-------------------------
5210This diagnostic is enabled by default.
5211
5212**Diagnostic text:**
5213
5214+--------------------------------------------------------------------------+
5215|:warning:`warning:` |nbsp| :diagtext:`'#pragma optimize' is not supported`|
5216+--------------------------------------------------------------------------+
5217
5218
5219-Wignored-pragmas
5220-----------------
5221This diagnostic is enabled by default.
5222
5223Also controls `-Wignored-pragma-intrinsic`_, `-Wignored-pragma-optimize`_.
5224
5225**Diagnostic text:**
5226
5227+------------------------------------------------------------------------------+---------------------------+-----------------------+
5228|:warning:`warning:` |nbsp| :diagtext:`expected '=' following '#pragma` |nbsp| |+-------------------------+|:diagtext:`' - ignored`|
5229|                                                                              ||:diagtext:`align`        ||                       |
5230|                                                                              |+-------------------------+|                       |
5231|                                                                              ||:diagtext:`options align`||                       |
5232|                                                                              |+-------------------------+|                       |
5233+------------------------------------------------------------------------------+---------------------------+-----------------------+
5234
5235+-----------------------------------------------------------------------------------+---------------------------+-----------------------+
5236|:warning:`warning:` |nbsp| :diagtext:`invalid alignment option in '#pragma` |nbsp| |+-------------------------+|:diagtext:`' - ignored`|
5237|                                                                                   ||:diagtext:`align`        ||                       |
5238|                                                                                   |+-------------------------+|                       |
5239|                                                                                   ||:diagtext:`options align`||                       |
5240|                                                                                   |+-------------------------+|                       |
5241+-----------------------------------------------------------------------------------+---------------------------+-----------------------+
5242
5243+-----------------------------------------------------------------------------------------------------------+
5244|:warning:`warning:` |nbsp| :diagtext:`OpenCL extension end directive mismatches begin directive - ignoring`|
5245+-----------------------------------------------------------------------------------------------------------+
5246
5247+----------------------------------------------------------------------------------------------------+
5248|:warning:`warning:` |nbsp| :diagtext:`'#pragma comment` |nbsp| :placeholder:`A`:diagtext:`' ignored`|
5249+----------------------------------------------------------------------------------------------------+
5250
5251+-------------------------------------------------------------------------------------------------------+
5252|:warning:`warning:` |nbsp| :diagtext:`missing argument to debug command '`:placeholder:`A`:diagtext:`'`|
5253+-------------------------------------------------------------------------------------------------------+
5254
5255+----------------------------------------------------------------------------------------------+
5256|:warning:`warning:` |nbsp| :diagtext:`unexpected debug command '`:placeholder:`A`:diagtext:`'`|
5257+----------------------------------------------------------------------------------------------+
5258
5259+------------------------------------------------------------------------------------------------------------------------+
5260|:warning:`warning:` |nbsp| :diagtext:`expected action or ')' in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
5261+------------------------------------------------------------------------------------------------------------------------+
5262
5263+--------------------------------------------------------------------------------------------------------------+
5264|:warning:`warning:` |nbsp| :diagtext:`missing ':' after` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`|
5265+--------------------------------------------------------------------------------------------------------------+
5266
5267+---------------------------------------------------------------------------------------------------------------------+
5268|:warning:`warning:` |nbsp| :diagtext:`missing ':' or ')' after` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`|
5269+---------------------------------------------------------------------------------------------------------------------+
5270
5271+----------------------------------------------------------------------------------------------------+
5272|:warning:`warning:` |nbsp| :diagtext:`expected ',' in '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`|
5273+----------------------------------------------------------------------------------------------------+
5274
5275+---------------------------------------------------------------------------------------------------------------------+
5276|:warning:`warning:` |nbsp| :diagtext:`expected identifier in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
5277+---------------------------------------------------------------------------------------------------------------------+
5278
5279+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5280|:warning:`warning:` |nbsp| :diagtext:`expected 'compiler', 'lib', 'user', or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
5281+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5282
5283+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5284|: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`|
5285+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5286
5287+-----------------------------------------------------------------------------------------------------------------+
5288|:warning:`warning:` |nbsp| :diagtext:`missing '(' after '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignoring`|
5289+-----------------------------------------------------------------------------------------------------------------+
5290
5291+------------------------------------------------------------------------------------------------------------------------+
5292|:warning:`warning:` |nbsp| :diagtext:`expected non-wide string literal in '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`|
5293+------------------------------------------------------------------------------------------------------------------------+
5294
5295+-------------------------------------------------------+---------------------------------------------------+------------------------------+
5296|:warning:`warning:` |nbsp| :diagtext:`expected` |nbsp| |+-------------------------------------------------+| |nbsp| :diagtext:`- ignoring`|
5297|                                                       ||:diagtext:`'enable', 'disable', 'begin' or 'end'`||                              |
5298|                                                       |+-------------------------------------------------+|                              |
5299|                                                       ||:diagtext:`'disable'`                            ||                              |
5300|                                                       |+-------------------------------------------------+|                              |
5301+-------------------------------------------------------+---------------------------------------------------+------------------------------+
5302
5303+-----------------------------------------------------------------------------------------------------------+
5304|:warning:`warning:` |nbsp| :diagtext:`expected ')' or ',' in '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`|
5305+-----------------------------------------------------------------------------------------------------------+
5306
5307+-----------------------------------------------------------------------------------------------------------------+
5308|:warning:`warning:` |nbsp| :diagtext:`missing ')' after '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignoring`|
5309+-----------------------------------------------------------------------------------------------------------------+
5310
5311+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
5312|:warning:`warning:` |nbsp| :diagtext:`expected a stack label or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
5313+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
5314
5315+------------------------------------------------------------------------------------------------------------------------------------------------+
5316|:warning:`warning:` |nbsp| :diagtext:`expected a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
5317+------------------------------------------------------------------------------------------------------------------------------------------------+
5318
5319+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
5320|:warning:`warning:` |nbsp| :diagtext:`expected push, pop or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
5321+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
5322
5323+--------------------------------------------------------------------------------------------------------------------------+
5324|:warning:`warning:` |nbsp| :diagtext:`expected string literal in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignoring`|
5325+--------------------------------------------------------------------------------------------------------------------------+
5326
5327+---------------------------------------------------------------------------------------------------------------------+
5328|:warning:`warning:` |nbsp| :diagtext:`extra tokens at end of '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
5329+---------------------------------------------------------------------------------------------------------------------+
5330
5331+----------------------------------------------------------------------------------------------------------+
5332|:warning:`warning:` |nbsp| :diagtext:`incorrect use of #pragma clang force\_cuda\_host\_device begin\|end`|
5333+----------------------------------------------------------------------------------------------------------+
5334
5335+-------------------------------------------------------------------------------------------------------------------+
5336|:warning:`warning:` |nbsp| :diagtext:`'#pragma init\_seg' is only supported when targeting a Microsoft environment`|
5337+-------------------------------------------------------------------------------------------------------------------+
5338
5339+-----------------------------------------------------------------------------------------------------------------+
5340|:warning:`warning:` |nbsp| :diagtext:`unknown action for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
5341+-----------------------------------------------------------------------------------------------------------------+
5342
5343+------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+
5344|:warning:`warning:` |nbsp| :diagtext:`unexpected argument '`:placeholder:`A`:diagtext:`' to '#pragma` |nbsp| :placeholder:`B`:diagtext:`'`|+------------------------------------------------+|
5345|                                                                                                                                          ||                                                ||
5346|                                                                                                                                          |+------------------------------------------------+|
5347|                                                                                                                                          ||+----------------------------------------------+||
5348|                                                                                                                                          |||:diagtext:`; expected` |nbsp| :placeholder:`D`|||
5349|                                                                                                                                          ||+----------------------------------------------+||
5350|                                                                                                                                          |+------------------------------------------------+|
5351+------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+
5352
5353+------------------------------------------------------------------------------------------------------------------------------------------------+
5354|:warning:`warning:` |nbsp| :diagtext:`unknown action '`:placeholder:`B`:diagtext:`' for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
5355+------------------------------------------------------------------------------------------------------------------------------------------------+
5356
5357+--------------------------------------------------------------------------------------------------------+--------------------------------------------------+
5358|:warning:`warning:` |nbsp| :diagtext:`missing argument to '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`|+------------------------------------------------+|
5359|                                                                                                        ||                                                ||
5360|                                                                                                        |+------------------------------------------------+|
5361|                                                                                                        ||+----------------------------------------------+||
5362|                                                                                                        |||:diagtext:`; expected` |nbsp| :placeholder:`C`|||
5363|                                                                                                        ||+----------------------------------------------+||
5364|                                                                                                        |+------------------------------------------------+|
5365+--------------------------------------------------------------------------------------------------------+--------------------------------------------------+
5366
5367+----------------------------------------------------------------------------------------------+
5368|:warning:`warning:` |nbsp| :diagtext:`incorrect use of '#pragma ms\_struct on\|off' - ignored`|
5369+----------------------------------------------------------------------------------------------+
5370
5371+--------------------------------------------------------------------------------------------------+
5372|:warning:`warning:` |nbsp| :diagtext:`#pragma options align=reset failed:` |nbsp| :placeholder:`A`|
5373+--------------------------------------------------------------------------------------------------+
5374
5375+---------------------------------------------------------------------------------------------+
5376|:warning:`warning:` |nbsp| :diagtext:`expected 'align' following '#pragma options' - ignored`|
5377+---------------------------------------------------------------------------------------------+
5378
5379+--------------------------------------------------------------------------------------------------------+
5380|:warning:`warning:` |nbsp| :diagtext:`expected #pragma pack parameter to be '1', '2', '4', '8', or '16'`|
5381+--------------------------------------------------------------------------------------------------------+
5382
5383+-------------------------------------------------------------------------------------------------+
5384|:warning:`warning:` |nbsp| :diagtext:`expected integer or identifier in '#pragma pack' - ignored`|
5385+-------------------------------------------------------------------------------------------------+
5386
5387+----------------------------------------------------------------------------------------------------------------------------+
5388|:warning:`warning:` |nbsp| :diagtext:`#pragma` |nbsp| :placeholder:`A`:diagtext:`(pop, ...) failed:` |nbsp| :placeholder:`B`|
5389+----------------------------------------------------------------------------------------------------------------------------+
5390
5391+------------------------------------------------------------------------------------------------------------------------------+
5392|:warning:`warning:` |nbsp| :diagtext:`pragma pop\_macro could not pop '`:placeholder:`A`:diagtext:`', no matching push\_macro`|
5393+------------------------------------------------------------------------------------------------------------------------------+
5394
5395+---------------------------------------------------------------------------------------------------------------------+
5396|:warning:`warning:` |nbsp| :diagtext:`unknown OpenCL extension` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`|
5397+---------------------------------------------------------------------------------------------------------------------+
5398
5399+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
5400|:warning:`warning:` |nbsp| :diagtext:`known but unsupported action '`:placeholder:`B`:diagtext:`' for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
5401+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
5402
5403+-------------------------------------------------------------------------------------------------------------------------+
5404|:warning:`warning:` |nbsp| :diagtext:`unsupported OpenCL extension` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`|
5405+-------------------------------------------------------------------------------------------------------------------------+
5406
5407+-----------------------------------------------------------------------------------------------+
5408|:warning:`warning:` |nbsp| :diagtext:`expected '#pragma unused' argument to be a variable name`|
5409+-----------------------------------------------------------------------------------------------+
5410
5411+------------------------------------------------------------------------------------------+
5412|:warning:`warning:` |nbsp| :diagtext:`only variables can be arguments to '#pragma unused'`|
5413+------------------------------------------------------------------------------------------+
5414
5415+----------------------------------------------------------------------------------------------------------------------------------------------+
5416|:warning:`warning:` |nbsp| :diagtext:`undeclared variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`used as an argument for '#pragma unused'`|
5417+----------------------------------------------------------------------------------------------------------------------------------------------+
5418
5419
5420-Wignored-qualifiers
5421--------------------
5422Some of the diagnostics controlled by this flag are enabled by default.
5423
5424**Diagnostic text:**
5425
5426+--------------------------------------------------+------------------------------------+----------------------------------------------------------------+
5427|:warning:`warning:` |nbsp| :diagtext:`ARC` |nbsp| |+----------------------------------+| |nbsp| :diagtext:`lifetime qualifier on return type is ignored`|
5428|                                                  ||:diagtext:`unused`                ||                                                                |
5429|                                                  |+----------------------------------+|                                                                |
5430|                                                  ||:diagtext:`\_\_unsafe\_unretained`||                                                                |
5431|                                                  |+----------------------------------+|                                                                |
5432|                                                  ||:diagtext:`\_\_strong`            ||                                                                |
5433|                                                  |+----------------------------------+|                                                                |
5434|                                                  ||:diagtext:`\_\_weak`              ||                                                                |
5435|                                                  |+----------------------------------+|                                                                |
5436|                                                  ||:diagtext:`\_\_autoreleasing`     ||                                                                |
5437|                                                  |+----------------------------------+|                                                                |
5438+--------------------------------------------------+------------------------------------+----------------------------------------------------------------+
5439
5440+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
5441|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on omitted return type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`|
5442+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
5443
5444+------------------------------------------------------------------------------------+---------------+------------------------------------------+------------------+-----------------------------+
5445|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' type qualifier`|+-------------+| |nbsp| :diagtext:`on return type` |nbsp| |+----------------+| |nbsp| :diagtext:`no effect`|
5446|                                                                                    ||             ||                                          ||:diagtext:`has` ||                             |
5447|                                                                                    |+-------------+|                                          |+----------------+|                             |
5448|                                                                                    ||:diagtext:`s`||                                          ||:diagtext:`have`||                             |
5449|                                                                                    |+-------------+|                                          |+----------------+|                             |
5450+------------------------------------------------------------------------------------+---------------+------------------------------------------+------------------+-----------------------------+
5451
5452+---------------------------------------------------------------------------------------------------------------------------------------------------------+
5453|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on function type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`|
5454+---------------------------------------------------------------------------------------------------------------------------------------------------------+
5455
5456+----------------------------------------------------------------------------------------------------------------------------------------------------------+
5457|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on reference type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`|
5458+----------------------------------------------------------------------------------------------------------------------------------------------------------+
5459
5460
5461-Wimplicit
5462----------
5463Some of the diagnostics controlled by this flag are enabled by default.
5464
5465Controls `-Wimplicit-function-declaration`_, `-Wimplicit-int`_.
5466
5467
5468-Wimplicit-atomic-properties
5469----------------------------
5470**Diagnostic text:**
5471
5472+-----------------------------------------------------------------------------------------------------+
5473|:warning:`warning:` |nbsp| :diagtext:`property is assumed atomic when auto-synthesizing the property`|
5474+-----------------------------------------------------------------------------------------------------+
5475
5476+----------------------------------------------------------------------------+
5477|:warning:`warning:` |nbsp| :diagtext:`property is assumed atomic by default`|
5478+----------------------------------------------------------------------------+
5479
5480
5481-Wimplicit-conversion-floating-point-to-bool
5482--------------------------------------------
5483This diagnostic is enabled by default.
5484
5485**Diagnostic text:**
5486
5487+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5488|:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns floating-point number into bool:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
5489+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5490
5491
5492-Wimplicit-exception-spec-mismatch
5493----------------------------------
5494This diagnostic is enabled by default.
5495
5496**Diagnostic text:**
5497
5498+-----------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------+----------------------+-------------------------------------------+
5499|:warning:`warning:` |nbsp| :diagtext:`function previously declared with an` |nbsp| |+--------------------+| |nbsp| :diagtext:`exception specification redeclared with an` |nbsp| |+--------------------+| |nbsp| :diagtext:`exception specification`|
5500|                                                                                   ||:diagtext:`explicit`||                                                                      ||:diagtext:`implicit`||                                           |
5501|                                                                                   |+--------------------+|                                                                      |+--------------------+|                                           |
5502|                                                                                   ||:diagtext:`implicit`||                                                                      ||:diagtext:`explicit`||                                           |
5503|                                                                                   |+--------------------+|                                                                      |+--------------------+|                                           |
5504+-----------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------+----------------------+-------------------------------------------+
5505
5506
5507-Wimplicit-fallthrough
5508----------------------
5509Also controls `-Wimplicit-fallthrough-per-function`_.
5510
5511**Diagnostic text:**
5512
5513+---------------------------------------------------------------------------------+
5514|:warning:`warning:` |nbsp| :diagtext:`fallthrough annotation in unreachable code`|
5515+---------------------------------------------------------------------------------+
5516
5517+-------------------------------------------------------------------------------------+
5518|:warning:`warning:` |nbsp| :diagtext:`unannotated fall-through between switch labels`|
5519+-------------------------------------------------------------------------------------+
5520
5521
5522-Wimplicit-fallthrough-per-function
5523-----------------------------------
5524**Diagnostic text:**
5525
5526+------------------------------------------------------------------------------------------------------------------+
5527|:warning:`warning:` |nbsp| :diagtext:`unannotated fall-through between switch labels in partly-annotated function`|
5528+------------------------------------------------------------------------------------------------------------------+
5529
5530
5531-Wimplicit-float-conversion
5532---------------------------
5533**Diagnostic text:**
5534
5535+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
5536|:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses floating-point precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
5537+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
5538
5539+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5540|:warning:`warning:` |nbsp| :diagtext:`implicit conversion when assigning computation result loses floating-point precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
5541+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5542
5543
5544-Wimplicit-function-declaration
5545-------------------------------
5546Some of the diagnostics controlled by this flag are enabled by default.
5547
5548**Diagnostic text:**
5549
5550+------------------------------------------------------------------------------------------------------------------------------------+
5551|:warning:`warning:` |nbsp| :diagtext:`implicit declaration of function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is invalid in C99`|
5552+------------------------------------------------------------------------------------------------------------------------------------+
5553
5554+---------------------------------------------------------------------------------------------------------------------------------------------+
5555|:warning:`warning:` |nbsp| :diagtext:`implicitly declaring library function '`:placeholder:`A`:diagtext:`' with type` |nbsp| :placeholder:`B`|
5556+---------------------------------------------------------------------------------------------------------------------------------------------+
5557
5558+---------------------------------------------------------------------------------+
5559|:error:`error:` |nbsp| :diagtext:`use of unknown builtin` |nbsp| :placeholder:`A`|
5560+---------------------------------------------------------------------------------+
5561
5562+-----------------------------------------------------------------------------------------------+
5563|:warning:`warning:` |nbsp| :diagtext:`implicit declaration of function` |nbsp| :placeholder:`A`|
5564+-----------------------------------------------------------------------------------------------+
5565
5566
5567-Wimplicit-int
5568--------------
5569This diagnostic is enabled by default.
5570
5571**Diagnostic text:**
5572
5573+--------------------------------------------------------------------------------+
5574|:warning:`warning:` |nbsp| :diagtext:`type specifier missing, defaults to 'int'`|
5575+--------------------------------------------------------------------------------+
5576
5577
5578-Wimplicit-int-conversion
5579-------------------------
5580**Diagnostic text:**
5581
5582+---------------------------------------------------------------------------------------------+
5583|:warning:`warning:` |nbsp| :diagtext:`higher order bits are zeroes after implicit conversion`|
5584+---------------------------------------------------------------------------------------------+
5585
5586+---------------------------------------------------------------------------------------------------------------------------------------------------------+
5587|:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses integer precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
5588+---------------------------------------------------------------------------------------------------------------------------------------------------------+
5589
5590
5591-Wimplicit-retain-self
5592----------------------
5593**Diagnostic text:**
5594
5595+---------------------------------------------------------------------------------------------------------------------------------------+
5596|:warning:`warning:` |nbsp| :diagtext:`block implicitly retains 'self'; explicitly mention 'self' to indicate this is intended behavior`|
5597+---------------------------------------------------------------------------------------------------------------------------------------+
5598
5599
5600-Wimplicitly-unsigned-literal
5601-----------------------------
5602This diagnostic is enabled by default.
5603
5604**Diagnostic text:**
5605
5606+----------------------------------------------------------------------------------------------------------------------------------------+
5607|:warning:`warning:` |nbsp| :diagtext:`integer literal is too large to be represented in a signed integer type, interpreting as unsigned`|
5608+----------------------------------------------------------------------------------------------------------------------------------------+
5609
5610
5611-Wimport
5612--------
5613This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
5614
5615-Wimport-preprocessor-directive-pedantic
5616----------------------------------------
5617**Diagnostic text:**
5618
5619+----------------------------------------------------------------------+
5620|:warning:`warning:` |nbsp| :diagtext:`#import is a language extension`|
5621+----------------------------------------------------------------------+
5622
5623
5624-Winaccessible-base
5625-------------------
5626This diagnostic is enabled by default.
5627
5628**Diagnostic text:**
5629
5630+-----------------------------------------------------------------------------------------------------------------------------------------------+
5631|:warning:`warning:` |nbsp| :diagtext:`direct base` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is inaccessible due to ambiguity:`:placeholder:`B`|
5632+-----------------------------------------------------------------------------------------------------------------------------------------------+
5633
5634
5635-Winclude-next-absolute-path
5636----------------------------
5637This diagnostic is enabled by default.
5638
5639**Diagnostic text:**
5640
5641+------------------------------------------------------------------------+
5642|:warning:`warning:` |nbsp| :diagtext:`#include\_next with absolute path`|
5643+------------------------------------------------------------------------+
5644
5645
5646-Winclude-next-outside-header
5647-----------------------------
5648This diagnostic is enabled by default.
5649
5650**Diagnostic text:**
5651
5652+----------------------------------------------------------------------------+
5653|:warning:`warning:` |nbsp| :diagtext:`#include\_next in primary source file`|
5654+----------------------------------------------------------------------------+
5655
5656
5657-Wincompatible-exception-spec
5658-----------------------------
5659This diagnostic is enabled by default.
5660
5661**Diagnostic text:**
5662
5663+--------------------------------------------------------------------------+----------------------+--------------------------------+
5664|:warning:`warning:` |nbsp| :diagtext:`exception specifications of` |nbsp| |+--------------------+| |nbsp| :diagtext:`types differ`|
5665|                                                                          ||:diagtext:`return`  ||                                |
5666|                                                                          |+--------------------+|                                |
5667|                                                                          ||:diagtext:`argument`||                                |
5668|                                                                          |+--------------------+|                                |
5669+--------------------------------------------------------------------------+----------------------+--------------------------------+
5670
5671+-----------------------------------------------------------------------------------------------+
5672|:warning:`warning:` |nbsp| :diagtext:`target exception specification is not superset of source`|
5673+-----------------------------------------------------------------------------------------------+
5674
5675
5676-Wincompatible-function-pointer-types
5677-------------------------------------
5678This diagnostic is enabled by default.
5679
5680**Diagnostic text:**
5681
5682+----------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
5683|:warning:`warning:` |nbsp| :diagtext:`incompatible function pointer types` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+|
5684|                                                                                  ||:diagtext:`assigning to different types`                      |||                                     ||
5685|                                                                                  |+--------------------------------------------------------------+|+-------------------------------------+|
5686|                                                                                  ||:diagtext:`passing to parameter of different type`            |||:diagtext:`; dereference with \*`    ||
5687|                                                                                  |+--------------------------------------------------------------+|+-------------------------------------+|
5688|                                                                                  ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`||
5689|                                                                                  |+--------------------------------------------------------------+|+-------------------------------------+|
5690|                                                                                  ||:diagtext:`converting between types`                          |||:diagtext:`; remove \*`              ||
5691|                                                                                  |+--------------------------------------------------------------+|+-------------------------------------+|
5692|                                                                                  ||:diagtext:`initializing with expression of different type`    |||:diagtext:`; remove &`               ||
5693|                                                                                  |+--------------------------------------------------------------+|+-------------------------------------+|
5694|                                                                                  ||:diagtext:`sending to parameter of different type`            ||                                       |
5695|                                                                                  |+--------------------------------------------------------------+|                                       |
5696|                                                                                  ||:diagtext:`casting between types`                             ||                                       |
5697|                                                                                  |+--------------------------------------------------------------+|                                       |
5698+----------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
5699
5700
5701-Wincompatible-library-redeclaration
5702------------------------------------
5703This diagnostic is enabled by default.
5704
5705**Diagnostic text:**
5706
5707+-------------------------------------------------------------------------------------------------------------+
5708|:warning:`warning:` |nbsp| :diagtext:`incompatible redeclaration of library function` |nbsp| :placeholder:`A`|
5709+-------------------------------------------------------------------------------------------------------------+
5710
5711
5712-Wincompatible-ms-struct
5713------------------------
5714This diagnostic is an error by default, but the flag ``-Wno-incompatible-ms-struct`` can be used to disable the error.
5715
5716**Diagnostic text:**
5717
5718+---------------------------------------------------------------------------------------------------------------------------------------------+
5719|:error:`error:` |nbsp| :diagtext:`ms\_struct may not produce Microsoft-compatible layouts for classes with base classes or virtual functions`|
5720+---------------------------------------------------------------------------------------------------------------------------------------------+
5721
5722+------------------------------------------------------------------------------------------------------------------------------------------------------------+
5723|:error:`error:` |nbsp| :diagtext:`ms\_struct may not produce Microsoft-compatible layouts with fundamental data types with sizes that aren't a power of two`|
5724+------------------------------------------------------------------------------------------------------------------------------------------------------------+
5725
5726
5727-Wincompatible-pointer-types
5728----------------------------
5729This diagnostic is enabled by default.
5730
5731Also controls `-Wincompatible-function-pointer-types`_, `-Wincompatible-pointer-types-discards-qualifiers`_.
5732
5733**Diagnostic text:**
5734
5735+-------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
5736|:warning:`warning:` |nbsp| :diagtext:`incompatible pointer types` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+|
5737|                                                                         ||:diagtext:`assigning to different types`                      |||                                     ||
5738|                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
5739|                                                                         ||:diagtext:`passing to parameter of different type`            |||:diagtext:`; dereference with \*`    ||
5740|                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
5741|                                                                         ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`||
5742|                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
5743|                                                                         ||:diagtext:`converting between types`                          |||:diagtext:`; remove \*`              ||
5744|                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
5745|                                                                         ||:diagtext:`initializing with expression of different type`    |||:diagtext:`; remove &`               ||
5746|                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
5747|                                                                         ||:diagtext:`sending to parameter of different type`            ||                                       |
5748|                                                                         |+--------------------------------------------------------------+|                                       |
5749|                                                                         ||:diagtext:`casting between types`                             ||                                       |
5750|                                                                         |+--------------------------------------------------------------+|                                       |
5751+-------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
5752
5753
5754-Wincompatible-pointer-types-discards-qualifiers
5755------------------------------------------------
5756This diagnostic is enabled by default.
5757
5758**Diagnostic text:**
5759
5760+---------------------------+----------------------------------------------------------------+---------------------------------------------------------------+
5761|:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`discards qualifiers in nested pointer types`|
5762|                           ||:diagtext:`assigning to different types`                      ||                                                               |
5763|                           |+--------------------------------------------------------------+|                                                               |
5764|                           ||:diagtext:`passing to parameter of different type`            ||                                                               |
5765|                           |+--------------------------------------------------------------+|                                                               |
5766|                           ||:diagtext:`returning from function with different return type`||                                                               |
5767|                           |+--------------------------------------------------------------+|                                                               |
5768|                           ||:diagtext:`converting between types`                          ||                                                               |
5769|                           |+--------------------------------------------------------------+|                                                               |
5770|                           ||:diagtext:`initializing with expression of different type`    ||                                                               |
5771|                           |+--------------------------------------------------------------+|                                                               |
5772|                           ||:diagtext:`sending to parameter of different type`            ||                                                               |
5773|                           |+--------------------------------------------------------------+|                                                               |
5774|                           ||:diagtext:`casting between types`                             ||                                                               |
5775|                           |+--------------------------------------------------------------+|                                                               |
5776+---------------------------+----------------------------------------------------------------+---------------------------------------------------------------+
5777
5778+---------------------------+----------------------------------------------------------------+---------------------------------------+
5779|:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`discards qualifiers`|
5780|                           ||:diagtext:`assigning to different types`                      ||                                       |
5781|                           |+--------------------------------------------------------------+|                                       |
5782|                           ||:diagtext:`passing to parameter of different type`            ||                                       |
5783|                           |+--------------------------------------------------------------+|                                       |
5784|                           ||:diagtext:`returning from function with different return type`||                                       |
5785|                           |+--------------------------------------------------------------+|                                       |
5786|                           ||:diagtext:`converting between types`                          ||                                       |
5787|                           |+--------------------------------------------------------------+|                                       |
5788|                           ||:diagtext:`initializing with expression of different type`    ||                                       |
5789|                           |+--------------------------------------------------------------+|                                       |
5790|                           ||:diagtext:`sending to parameter of different type`            ||                                       |
5791|                           |+--------------------------------------------------------------+|                                       |
5792|                           ||:diagtext:`casting between types`                             ||                                       |
5793|                           |+--------------------------------------------------------------+|                                       |
5794+---------------------------+----------------------------------------------------------------+---------------------------------------+
5795
5796
5797-Wincompatible-property-type
5798----------------------------
5799This diagnostic is enabled by default.
5800
5801**Diagnostic text:**
5802
5803+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5804|: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`|
5805+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5806
5807
5808-Wincompatible-sysroot
5809----------------------
5810This diagnostic is enabled by default.
5811
5812**Diagnostic text:**
5813
5814+------------------------------------------------------------------------------------------------------------------------------------+
5815|:warning:`warning:` |nbsp| :diagtext:`using sysroot for '`:placeholder:`A`:diagtext:`' but targeting '`:placeholder:`B`:diagtext:`'`|
5816+------------------------------------------------------------------------------------------------------------------------------------+
5817
5818
5819-Wincomplete-framework-module-declaration
5820-----------------------------------------
5821This diagnostic is enabled by default.
5822
5823**Diagnostic text:**
5824
5825+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5826|:warning:`warning:` |nbsp| :diagtext:`skipping '`:placeholder:`A`:diagtext:`' because module declaration of '`:placeholder:`B`:diagtext:`' lacks the 'framework' qualifier`|
5827+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5828
5829
5830-Wincomplete-implementation
5831---------------------------
5832This diagnostic is enabled by default.
5833
5834**Diagnostic text:**
5835
5836+-----------------------------------------------------------------------------------------------------------------+
5837|:warning:`warning:` |nbsp| :diagtext:`method definition for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found`|
5838+-----------------------------------------------------------------------------------------------------------------+
5839
5840
5841-Wincomplete-module
5842-------------------
5843Some of the diagnostics controlled by this flag are enabled by default.
5844
5845Controls `-Wincomplete-umbrella`_, `-Wnon-modular-include-in-module`_.
5846
5847
5848-Wincomplete-umbrella
5849---------------------
5850This diagnostic is enabled by default.
5851
5852**Diagnostic text:**
5853
5854+---------------------------------------------------------------------------------------+
5855|:warning:`warning:` |nbsp| :diagtext:`missing submodule '`:placeholder:`A`:diagtext:`'`|
5856+---------------------------------------------------------------------------------------+
5857
5858+--------------------------------------------------------------------------------------------------+
5859|:warning:`warning:` |nbsp| :diagtext:`umbrella directory '`:placeholder:`A`:diagtext:`' not found`|
5860+--------------------------------------------------------------------------------------------------+
5861
5862+-------------------------------------------------------------------------------------------------------------------------------------------------------+
5863|:warning:`warning:` |nbsp| :diagtext:`umbrella header for module '`:placeholder:`A`:diagtext:`' does not include header '`:placeholder:`B`:diagtext:`'`|
5864+-------------------------------------------------------------------------------------------------------------------------------------------------------+
5865
5866
5867-Winconsistent-dllimport
5868------------------------
5869This diagnostic is enabled by default.
5870
5871**Diagnostic text:**
5872
5873+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5874|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`redeclared without` |nbsp| :placeholder:`B` |nbsp| :diagtext:`attribute: previous` |nbsp| :placeholder:`B` |nbsp| :diagtext:`ignored`|
5875+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5876
5877+------------------------------------------------------------------------------------------------------------------------------------+
5878|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`redeclared without 'dllimport' attribute: 'dllexport' attribute added`|
5879+------------------------------------------------------------------------------------------------------------------------------------+
5880
5881
5882-Winconsistent-missing-destructor-override
5883------------------------------------------
5884**Diagnostic text:**
5885
5886+------------------------------------------------------------------------------------------------------------------+
5887|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`overrides a destructor but is not marked 'override'`|
5888+------------------------------------------------------------------------------------------------------------------+
5889
5890
5891-Winconsistent-missing-override
5892-------------------------------
5893This diagnostic is enabled by default.
5894
5895**Diagnostic text:**
5896
5897+-----------------------------------------------------------------------------------------------------------------------+
5898|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`overrides a member function but is not marked 'override'`|
5899+-----------------------------------------------------------------------------------------------------------------------+
5900
5901
5902-Wincrement-bool
5903----------------
5904This diagnostic is enabled by default.
5905
5906Also controls `-Wdeprecated-increment-bool`_.
5907
5908**Diagnostic text:**
5909
5910+------------------------------------------------------------------------------------------------+
5911|:error:`error:` |nbsp| :diagtext:`ISO C++17 does not allow incrementing expression of type bool`|
5912+------------------------------------------------------------------------------------------------+
5913
5914
5915-Winfinite-recursion
5916--------------------
5917**Diagnostic text:**
5918
5919+---------------------------------------------------------------------------------------+
5920|:warning:`warning:` |nbsp| :diagtext:`all paths through this function will call itself`|
5921+---------------------------------------------------------------------------------------+
5922
5923
5924-Winit-self
5925-----------
5926This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
5927
5928-Winitializer-overrides
5929-----------------------
5930This diagnostic is enabled by default.
5931
5932**Diagnostic text:**
5933
5934+---------------------------------------------------------------------------------------------------+
5935|:warning:`warning:` |nbsp| :diagtext:`initializer overrides prior initialization of this subobject`|
5936+---------------------------------------------------------------------------------------------------+
5937
5938+---------------------------------------------------------------------------------------------------------------------------------------+
5939|:warning:`warning:` |nbsp| :diagtext:`subobject initialization overrides initialization of other fields within its enclosing subobject`|
5940+---------------------------------------------------------------------------------------------------------------------------------------+
5941
5942
5943-Winjected-class-name
5944---------------------
5945This diagnostic is enabled by default.
5946
5947**Diagnostic text:**
5948
5949+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------+--------------------------------------------------------------+------------------------+---------------------------+
5950|: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`|
5951|                                                                                                                                                                           ||:diagtext:`template name`||                                                              ||:diagtext:`'typename'`||                           |
5952|                                                                                                                                                                           |+-------------------------+|                                                              |+----------------------+|                           |
5953|                                                                                                                                                                           ||:diagtext:`type`         ||                                                              ||:diagtext:`'template'`||                           |
5954|                                                                                                                                                                           |+-------------------------+|                                                              |+----------------------+|                           |
5955+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------+--------------------------------------------------------------+------------------------+---------------------------+
5956
5957
5958-Winline
5959--------
5960This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
5961
5962-Winline-asm
5963------------
5964This diagnostic is enabled by default.
5965
5966**Diagnostic text:**
5967
5968The text of this diagnostic is not controlled by Clang.
5969
5970
5971-Winline-new-delete
5972-------------------
5973This diagnostic is enabled by default.
5974
5975**Diagnostic text:**
5976
5977+----------------------------------------------------------------------------------------------------------------------------------+
5978|:warning:`warning:` |nbsp| :diagtext:`replacement function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be declared 'inline'`|
5979+----------------------------------------------------------------------------------------------------------------------------------+
5980
5981
5982-Winstantiation-after-specialization
5983------------------------------------
5984This diagnostic is enabled by default.
5985
5986**Diagnostic text:**
5987
5988+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5989|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`that occurs after an explicit specialization has no effect`|
5990+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5991
5992
5993-Wint-conversion
5994----------------
5995This diagnostic is enabled by default.
5996
5997**Diagnostic text:**
5998
5999+-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
6000|:warning:`warning:` |nbsp| :diagtext:`incompatible integer to pointer conversion` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+|
6001|                                                                                         ||:diagtext:`assigning to different types`                      |||                                     ||
6002|                                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
6003|                                                                                         ||:diagtext:`passing to parameter of different type`            |||:diagtext:`; dereference with \*`    ||
6004|                                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
6005|                                                                                         ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`||
6006|                                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
6007|                                                                                         ||:diagtext:`converting between types`                          |||:diagtext:`; remove \*`              ||
6008|                                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
6009|                                                                                         ||:diagtext:`initializing with expression of different type`    |||:diagtext:`; remove &`               ||
6010|                                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
6011|                                                                                         ||:diagtext:`sending to parameter of different type`            ||                                       |
6012|                                                                                         |+--------------------------------------------------------------+|                                       |
6013|                                                                                         ||:diagtext:`casting between types`                             ||                                       |
6014|                                                                                         |+--------------------------------------------------------------+|                                       |
6015+-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
6016
6017+-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
6018|:warning:`warning:` |nbsp| :diagtext:`incompatible pointer to integer conversion` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+|
6019|                                                                                         ||:diagtext:`assigning to different types`                      |||                                     ||
6020|                                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
6021|                                                                                         ||:diagtext:`passing to parameter of different type`            |||:diagtext:`; dereference with \*`    ||
6022|                                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
6023|                                                                                         ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`||
6024|                                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
6025|                                                                                         ||:diagtext:`converting between types`                          |||:diagtext:`; remove \*`              ||
6026|                                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
6027|                                                                                         ||:diagtext:`initializing with expression of different type`    |||:diagtext:`; remove &`               ||
6028|                                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
6029|                                                                                         ||:diagtext:`sending to parameter of different type`            ||                                       |
6030|                                                                                         |+--------------------------------------------------------------+|                                       |
6031|                                                                                         ||:diagtext:`casting between types`                             ||                                       |
6032|                                                                                         |+--------------------------------------------------------------+|                                       |
6033+-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
6034
6035
6036-Wint-conversions
6037-----------------
6038Synonym for `-Wint-conversion`_.
6039
6040
6041-Wint-to-pointer-cast
6042---------------------
6043This diagnostic is enabled by default.
6044
6045Also controls `-Wint-to-void-pointer-cast`_.
6046
6047**Diagnostic text:**
6048
6049+-------------------------------------------------------------------------------------------------------------------------------------------+
6050|:warning:`warning:` |nbsp| :diagtext:`cast to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from smaller integer type` |nbsp| :placeholder:`A`|
6051+-------------------------------------------------------------------------------------------------------------------------------------------+
6052
6053
6054-Wint-to-void-pointer-cast
6055--------------------------
6056This diagnostic is enabled by default.
6057
6058**Diagnostic text:**
6059
6060+-------------------------------------------------------------------------------------------------------------------------------------------+
6061|:warning:`warning:` |nbsp| :diagtext:`cast to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from smaller integer type` |nbsp| :placeholder:`A`|
6062+-------------------------------------------------------------------------------------------------------------------------------------------+
6063
6064
6065-Winteger-overflow
6066------------------
6067This diagnostic is enabled by default.
6068
6069**Diagnostic text:**
6070
6071+-----------------------------------------------------------------------------------------------------------------------------------------------------+
6072|:warning:`warning:` |nbsp| :diagtext:`overflow in expression; result is` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with type` |nbsp| :placeholder:`B`|
6073+-----------------------------------------------------------------------------------------------------------------------------------------------------+
6074
6075
6076-Winvalid-command-line-argument
6077-------------------------------
6078This diagnostic is enabled by default.
6079
6080Also controls `-Wignored-optimization-argument`_.
6081
6082**Diagnostic text:**
6083
6084+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6085|:warning:`warning:` |nbsp| :diagtext:`the given MCU supports` |nbsp| :placeholder:`A` |nbsp| :diagtext:`hardware multiply, but -mhwmult is set to` |nbsp| :placeholder:`B`:diagtext:`.`|
6086+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6087
6088+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6089|:warning:`warning:` |nbsp| :diagtext:`no MCU device specified, but '-mhwmult' is set to 'auto', assuming no hardware multiply. Use -mmcu to specify a MSP430 device, or -mhwmult to set hardware multiply type explicitly.`|
6090+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6091
6092+----------------------------------------------------------------------------------------------------------------------------------------------------+
6093|:warning:`warning:` |nbsp| :diagtext:`the given MCU does not support hardware multiply, but -mhwmult is set to` |nbsp| :placeholder:`A`:diagtext:`.`|
6094+----------------------------------------------------------------------------------------------------------------------------------------------------+
6095
6096+-----------------------------------------------------------------------------------------------------------------------------------------+
6097|:warning:`warning:` |nbsp| :diagtext:`the object size sanitizer has no effect at -O0, but is explicitly enabled:` |nbsp| :placeholder:`A`|
6098+-----------------------------------------------------------------------------------------------------------------------------------------+
6099
6100+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6101|:warning:`warning:` |nbsp| :diagtext:`optimization level '`:placeholder:`A`:diagtext:`' is not supported; using '`:placeholder:`B`:placeholder:`C`:diagtext:`' instead`|
6102+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6103
6104
6105-Winvalid-constexpr
6106-------------------
6107This diagnostic is an error by default, but the flag ``-Wno-invalid-constexpr`` can be used to disable the error.
6108
6109**Diagnostic text:**
6110
6111+----------------------------------------------------+-------------------------+--------------------------------------------------------+
6112|:error:`error:` |nbsp| :diagtext:`constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`never produces a constant expression`|
6113|                                                    ||:diagtext:`function`   ||                                                        |
6114|                                                    |+-----------------------+|                                                        |
6115|                                                    ||:diagtext:`constructor`||                                                        |
6116|                                                    |+-----------------------+|                                                        |
6117+----------------------------------------------------+-------------------------+--------------------------------------------------------+
6118
6119
6120-Winvalid-iboutlet
6121------------------
6122This diagnostic is enabled by default.
6123
6124**Diagnostic text:**
6125
6126+---------------------------+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
6127|:warning:`warning:` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute must be an object type (invalid` |nbsp| :placeholder:`B`:diagtext:`)`|
6128|                           ||:diagtext:`instance variable`||                                                                                                                                                  |
6129|                           |+-----------------------------+|                                                                                                                                                  |
6130|                           ||:diagtext:`property`         ||                                                                                                                                                  |
6131|                           |+-----------------------------+|                                                                                                                                                  |
6132+---------------------------+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
6133
6134+---------------------------------------------------------------------------------------------------------+
6135|:warning:`warning:` |nbsp| :diagtext:`IBOutletCollection properties should be copy/strong and not assign`|
6136+---------------------------------------------------------------------------------------------------------+
6137
6138
6139-Winvalid-initializer-from-system-header
6140----------------------------------------
6141This diagnostic is enabled by default.
6142
6143**Diagnostic text:**
6144
6145+--------------------------------------------------------------------------------------------------------------+
6146|:warning:`warning:` |nbsp| :diagtext:`invalid constructor form class in system header, should not be explicit`|
6147+--------------------------------------------------------------------------------------------------------------+
6148
6149
6150-Winvalid-ios-deployment-target
6151-------------------------------
6152This diagnostic is an error by default, but the flag ``-Wno-invalid-ios-deployment-target`` can be used to disable the error.
6153
6154**Diagnostic text:**
6155
6156+------------------------------------------------------------------------------------------------------------------------------------------------------------+
6157|:error:`error:` |nbsp| :diagtext:`invalid iOS deployment version '`:placeholder:`A`:diagtext:`', iOS 10 is the maximum deployment target for 32-bit targets`|
6158+------------------------------------------------------------------------------------------------------------------------------------------------------------+
6159
6160
6161-Winvalid-noreturn
6162------------------
6163This diagnostic is enabled by default.
6164
6165**Diagnostic text:**
6166
6167+-------------------------------------------------------------------------------------+
6168|:warning:`warning:` |nbsp| :diagtext:`function declared 'noreturn' should not return`|
6169+-------------------------------------------------------------------------------------+
6170
6171+--------------------------------------------------------------------------------------------------------------------------------+
6172|:warning:`warning:` |nbsp| :diagtext:`function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared 'noreturn' should not return`|
6173+--------------------------------------------------------------------------------------------------------------------------------+
6174
6175
6176-Winvalid-offsetof
6177------------------
6178This diagnostic is enabled by default.
6179
6180**Diagnostic text:**
6181
6182+----------------------------------------------------------------------------------------+
6183|:warning:`warning:` |nbsp| :diagtext:`offset of on non-POD type` |nbsp| :placeholder:`A`|
6184+----------------------------------------------------------------------------------------+
6185
6186+----------------------------------------------------------------------------------------------------+
6187|:warning:`warning:` |nbsp| :diagtext:`offset of on non-standard-layout type` |nbsp| :placeholder:`A`|
6188+----------------------------------------------------------------------------------------------------+
6189
6190
6191-Winvalid-or-nonexistent-directory
6192----------------------------------
6193Some of the diagnostics controlled by this flag are enabled by default.
6194
6195**Diagnostic text:**
6196
6197+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6198|:warning:`warning:` |nbsp| :diagtext:`environment variable SCE\_ORBIS\_SDK\_DIR is set, but points to invalid or nonexistent directory '`:placeholder:`A`:diagtext:`'`|
6199+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6200
6201+------------------------------------------------------------------------------------------------------------------------------------------------------------+
6202|:warning:`warning:` |nbsp| :diagtext:`unable to find` |nbsp| :placeholder:`A` |nbsp| :diagtext:`directory, expected to be in '`:placeholder:`B`:diagtext:`'`|
6203+------------------------------------------------------------------------------------------------------------------------------------------------------------+
6204
6205
6206-Winvalid-partial-specialization
6207--------------------------------
6208This diagnostic is an error by default, but the flag ``-Wno-invalid-partial-specialization`` can be used to disable the error.
6209
6210**Diagnostic text:**
6211
6212+-----------------------+----------------------+-----------------------------------------------------------------------------------------------------+
6213|:error:`error:` |nbsp| |+--------------------+| |nbsp| :diagtext:`template partial specialization is not more specialized than the primary template`|
6214|                       ||:diagtext:`class`   ||                                                                                                     |
6215|                       |+--------------------+|                                                                                                     |
6216|                       ||:diagtext:`variable`||                                                                                                     |
6217|                       |+--------------------+|                                                                                                     |
6218+-----------------------+----------------------+-----------------------------------------------------------------------------------------------------+
6219
6220
6221-Winvalid-pch
6222-------------
6223This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
6224
6225-Winvalid-pp-token
6226------------------
6227This diagnostic is enabled by default.
6228
6229**Diagnostic text:**
6230
6231+---------------------------------------------------------------+
6232|:warning:`warning:` |nbsp| :diagtext:`empty character constant`|
6233+---------------------------------------------------------------+
6234
6235+------------------------------------------------------------------+-----------------+-----------------------------+
6236|:warning:`warning:` |nbsp| :diagtext:`missing terminating` |nbsp| |+---------------+| |nbsp| :diagtext:`character`|
6237|                                                                  ||:diagtext:`'`  ||                             |
6238|                                                                  |+---------------+|                             |
6239|                                                                  ||:diagtext:`'"'`||                             |
6240|                                                                  |+---------------+|                             |
6241+------------------------------------------------------------------+-----------------+-----------------------------+
6242
6243
6244-Winvalid-source-encoding
6245-------------------------
6246This diagnostic is enabled by default.
6247
6248**Diagnostic text:**
6249
6250+--------------------------------------------------------------------------------------+
6251|:warning:`warning:` |nbsp| :diagtext:`illegal character encoding in character literal`|
6252+--------------------------------------------------------------------------------------+
6253
6254+-----------------------------------------------------------------------------------+
6255|:warning:`warning:` |nbsp| :diagtext:`illegal character encoding in string literal`|
6256+-----------------------------------------------------------------------------------+
6257
6258
6259-Winvalid-token-paste
6260---------------------
6261This diagnostic is an error by default, but the flag ``-Wno-invalid-token-paste`` can be used to disable the error.
6262
6263**Diagnostic text:**
6264
6265+----------------------------------------------------------------------------------------------------------------+
6266|:error:`error:` |nbsp| :diagtext:`pasting formed '`:placeholder:`A`:diagtext:`', an invalid preprocessing token`|
6267+----------------------------------------------------------------------------------------------------------------+
6268
6269
6270-Wjump-seh-finally
6271------------------
6272This diagnostic is enabled by default.
6273
6274**Diagnostic text:**
6275
6276+-------------------------------------------------------------------------------------------+
6277|:warning:`warning:` |nbsp| :diagtext:`jump out of \_\_finally block has undefined behavior`|
6278+-------------------------------------------------------------------------------------------+
6279
6280
6281-Wkeyword-compat
6282----------------
6283This diagnostic is enabled by default.
6284
6285**Diagnostic text:**
6286
6287+-----------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+
6288|:warning:`warning:` |nbsp| :diagtext:`keyword '`:placeholder:`A`:diagtext:`' will be made available as an identifier` |nbsp| |+-----------------------------------------------------+|
6289|                                                                                                                             ||:diagtext:`here`                                     ||
6290|                                                                                                                             |+-----------------------------------------------------+|
6291|                                                                                                                             ||:diagtext:`for the remainder of the translation unit`||
6292|                                                                                                                             |+-----------------------------------------------------+|
6293+-----------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+
6294
6295
6296-Wkeyword-macro
6297---------------
6298**Diagnostic text:**
6299
6300+----------------------------------------------------------------------------+
6301|:warning:`warning:` |nbsp| :diagtext:`keyword is hidden by macro definition`|
6302+----------------------------------------------------------------------------+
6303
6304
6305-Wknr-promoted-parameter
6306------------------------
6307This diagnostic is enabled by default.
6308
6309**Diagnostic text:**
6310
6311+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6312|:warning:`warning:` |nbsp| :diagtext:`promoted type of K&R function parameter is not compatible with parameter type` |nbsp| :diagtext:`declared in a previous prototype`|
6313+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6314
6315
6316-Wlanguage-extension-token
6317--------------------------
6318**Diagnostic text:**
6319
6320+-----------------------------------------------------+
6321|:warning:`warning:` |nbsp| :diagtext:`extension used`|
6322+-----------------------------------------------------+
6323
6324
6325-Wlarge-by-value-copy
6326---------------------
6327This diagnostic is enabled by default.
6328
6329**Diagnostic text:**
6330
6331+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6332|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a large (`:placeholder:`B` |nbsp| :diagtext:`bytes) pass-by-value argument; pass it by reference instead ?`|
6333+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6334
6335+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6336|: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 ?`|
6337+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6338
6339
6340-Wliblto
6341--------
6342This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
6343
6344-Wliteral-conversion
6345--------------------
6346This diagnostic is enabled by default.
6347
6348**Diagnostic text:**
6349
6350+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6351|: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`|
6352+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6353
6354+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6355|:warning:`warning:` |nbsp| :diagtext:`implicit conversion of out of range value from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is undefined`|
6356+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6357
6358
6359-Wliteral-range
6360---------------
6361This diagnostic is enabled by default.
6362
6363**Diagnostic text:**
6364
6365+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6366|:warning:`warning:` |nbsp| :diagtext:`magnitude of floating-point constant too large for type` |nbsp| :placeholder:`A`:diagtext:`; maximum is` |nbsp| :placeholder:`B`|
6367+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6368
6369+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6370|:warning:`warning:` |nbsp| :diagtext:`magnitude of floating-point constant too small for type` |nbsp| :placeholder:`A`:diagtext:`; minimum is` |nbsp| :placeholder:`B`|
6371+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6372
6373
6374-Wlocal-type-template-args
6375--------------------------
6376Some of the diagnostics controlled by this flag are enabled by default.
6377
6378Also controls `-Wc++98-compat-local-type-template-args`_.
6379
6380**Diagnostic text:**
6381
6382+------------------------------------------------------------------------------------------------+
6383|:warning:`warning:` |nbsp| :diagtext:`template argument uses local type` |nbsp| :placeholder:`A`|
6384+------------------------------------------------------------------------------------------------+
6385
6386
6387-Wlogical-not-parentheses
6388-------------------------
6389This diagnostic is enabled by default.
6390
6391**Diagnostic text:**
6392
6393+--------------------------------------------------------------------------------------------------------+------------------------------+
6394|:warning:`warning:` |nbsp| :diagtext:`logical not is only applied to the left hand side of this` |nbsp| |+----------------------------+|
6395|                                                                                                        ||:diagtext:`comparison`      ||
6396|                                                                                                        |+----------------------------+|
6397|                                                                                                        ||:diagtext:`bitwise operator`||
6398|                                                                                                        |+----------------------------+|
6399+--------------------------------------------------------------------------------------------------------+------------------------------+
6400
6401
6402-Wlogical-op-parentheses
6403------------------------
6404This diagnostic is enabled by default.
6405
6406**Diagnostic text:**
6407
6408+---------------------------------------------------------+
6409|:warning:`warning:` |nbsp| :diagtext:`'&&' within '\|\|'`|
6410+---------------------------------------------------------+
6411
6412
6413-Wlong-long
6414-----------
6415Also controls `-Wc++11-long-long`_.
6416
6417**Diagnostic text:**
6418
6419+-----------------------------------------------------------------------------------------------+
6420|:warning:`warning:` |nbsp| :diagtext:`'long long' is an extension when C99 mode is not enabled`|
6421+-----------------------------------------------------------------------------------------------+
6422
6423
6424-Wloop-analysis
6425---------------
6426Controls `-Wfor-loop-analysis`_, `-Wrange-loop-analysis`_.
6427
6428
6429-Wmacro-redefined
6430-----------------
6431This diagnostic is enabled by default.
6432
6433**Diagnostic text:**
6434
6435+------------------------------------------------------------------------------+
6436|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`macro redefined`|
6437+------------------------------------------------------------------------------+
6438
6439
6440-Wmain
6441------
6442Some of the diagnostics controlled by this flag are enabled by default.
6443
6444**Diagnostic text:**
6445
6446+--------------------------------------------------------------------------------------------+
6447|:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow 'main' to be used by a program`|
6448+--------------------------------------------------------------------------------------------+
6449
6450+--------------------------------------------------------------------------------------+
6451|:warning:`warning:` |nbsp| :diagtext:`'main' is not allowed to be declared \_Noreturn`|
6452+--------------------------------------------------------------------------------------+
6453
6454+------------------------------------------------------------------------------------+
6455|:warning:`warning:` |nbsp| :diagtext:`'main' is not allowed to be declared variadic`|
6456+------------------------------------------------------------------------------------+
6457
6458+-------------------------------------------------------------------------------+
6459|:warning:`warning:` |nbsp| :diagtext:`only one parameter on 'main' declaration`|
6460+-------------------------------------------------------------------------------+
6461
6462+---------------------------------------------------------------------------------------------------------+
6463|:warning:`warning:` |nbsp| :diagtext:`variable named 'main' with external linkage has undefined behavior`|
6464+---------------------------------------------------------------------------------------------------------+
6465
6466+------------------------------------------------------------------------+
6467|:warning:`warning:` |nbsp| :diagtext:`bool literal returned from 'main'`|
6468+------------------------------------------------------------------------+
6469
6470+---------------------------------------------------------------------------+
6471|:warning:`warning:` |nbsp| :diagtext:`'main' should not be declared static`|
6472+---------------------------------------------------------------------------+
6473
6474
6475-Wmain-return-type
6476------------------
6477This diagnostic is enabled by default.
6478
6479**Diagnostic text:**
6480
6481+-------------------------------------------------------------------------+
6482|:warning:`warning:` |nbsp| :diagtext:`return type of 'main' is not 'int'`|
6483+-------------------------------------------------------------------------+
6484
6485
6486-Wmalformed-warning-check
6487-------------------------
6488This diagnostic is enabled by default.
6489
6490**Diagnostic text:**
6491
6492+---------------------------------------------------------------------------------------------+
6493|:warning:`warning:` |nbsp| :diagtext:`\_\_has\_warning expected option name (e.g. "-Wundef")`|
6494+---------------------------------------------------------------------------------------------+
6495
6496
6497-Wmany-braces-around-scalar-init
6498--------------------------------
6499This diagnostic is enabled by default.
6500
6501**Diagnostic text:**
6502
6503+--------------------------------------------------------------------------------+
6504|:warning:`warning:` |nbsp| :diagtext:`too many braces around scalar initializer`|
6505+--------------------------------------------------------------------------------+
6506
6507
6508-Wmax-unsigned-zero
6509-------------------
6510This diagnostic is enabled by default.
6511
6512**Diagnostic text:**
6513
6514+----------------------------------------------------------------+---------------------------------------+------------------------------------------------------+
6515|:warning:`warning:` |nbsp| :diagtext:`taking the max of` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`is always equal to the other value`|
6516|                                                                ||:diagtext:`a value and unsigned zero`||                                                      |
6517|                                                                |+-------------------------------------+|                                                      |
6518|                                                                ||:diagtext:`unsigned zero and a value`||                                                      |
6519|                                                                |+-------------------------------------+|                                                      |
6520+----------------------------------------------------------------+---------------------------------------+------------------------------------------------------+
6521
6522
6523-Wmemset-transposed-args
6524------------------------
6525This diagnostic is enabled by default.
6526
6527**Diagnostic text:**
6528
6529+---------------------------+-----------------------------------------------------+---------------------------------------------------------------+
6530|:warning:`warning:` |nbsp| |+---------------------------------------------------+|:diagtext:`; did you mean to transpose the last two arguments?`|
6531|                           ||:diagtext:`'size' argument to memset is '0'`       ||                                                               |
6532|                           |+---------------------------------------------------+|                                                               |
6533|                           ||:diagtext:`setting buffer to a 'sizeof' expression`||                                                               |
6534|                           |+---------------------------------------------------+|                                                               |
6535+---------------------------+-----------------------------------------------------+---------------------------------------------------------------+
6536
6537
6538-Wmemsize-comparison
6539--------------------
6540This diagnostic is enabled by default.
6541
6542**Diagnostic text:**
6543
6544+-----------------------------------------------------------------------------------------------------------------------+
6545|:warning:`warning:` |nbsp| :diagtext:`size argument in` |nbsp| :placeholder:`A` |nbsp| :diagtext:`call is a comparison`|
6546+-----------------------------------------------------------------------------------------------------------------------+
6547
6548
6549-Wmethod-signatures
6550-------------------
6551**Diagnostic text:**
6552
6553+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6554|:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in implementation of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
6555+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6556
6557+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6558|:warning:`warning:` |nbsp| :diagtext:`conflicting return type in implementation of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
6559+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6560
6561
6562-Wmicrosoft
6563-----------
6564Some of the diagnostics controlled by this flag are enabled by default.
6565
6566Controls `-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`_.
6567
6568
6569-Wmicrosoft-anon-tag
6570--------------------
6571Some of the diagnostics controlled by this flag are enabled by default.
6572
6573**Diagnostic text:**
6574
6575+-----------------------------------------------------------------------------+--------------------+---------------------------------------------+
6576|:warning:`warning:` |nbsp| :diagtext:`types declared in an anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`are a Microsoft extension`|
6577|                                                                             ||:diagtext:`struct`||                                             |
6578|                                                                             |+------------------+|                                             |
6579|                                                                             ||:diagtext:`union` ||                                             |
6580|                                                                             |+------------------+|                                             |
6581+-----------------------------------------------------------------------------+--------------------+---------------------------------------------+
6582
6583+--------------------------------------------------------+---------------------+---------------------------------------------+
6584|:warning:`warning:` |nbsp| :diagtext:`anonymous` |nbsp| |+-------------------+| |nbsp| :diagtext:`are a Microsoft extension`|
6585|                                                        ||:diagtext:`structs`||                                             |
6586|                                                        |+-------------------+|                                             |
6587|                                                        ||:diagtext:`unions` ||                                             |
6588|                                                        |+-------------------+|                                             |
6589+--------------------------------------------------------+---------------------+---------------------------------------------+
6590
6591
6592-Wmicrosoft-cast
6593----------------
6594This diagnostic is enabled by default.
6595
6596**Diagnostic text:**
6597
6598+------------------------------------------------------------------------------------------------------------------------------+
6599|:warning:`warning:` |nbsp| :diagtext:`static\_cast between pointer-to-function and pointer-to-object is a Microsoft extension`|
6600+------------------------------------------------------------------------------------------------------------------------------+
6601
6602+-------------------------------------------------------------------------------------------------------------------------------------+
6603|:warning:`warning:` |nbsp| :diagtext:`implicit conversion between pointer-to-function and pointer-to-object is a Microsoft extension`|
6604+-------------------------------------------------------------------------------------------------------------------------------------+
6605
6606
6607-Wmicrosoft-charize
6608-------------------
6609**Diagnostic text:**
6610
6611+-------------------------------------------------------------------------------------+
6612|:warning:`warning:` |nbsp| :diagtext:`charizing operator #@ is a Microsoft extension`|
6613+-------------------------------------------------------------------------------------+
6614
6615
6616-Wmicrosoft-comment-paste
6617-------------------------
6618**Diagnostic text:**
6619
6620+----------------------------------------------------------------------------------------------------------+
6621|:warning:`warning:` |nbsp| :diagtext:`pasting two '/' tokens into a '//' comment is a Microsoft extension`|
6622+----------------------------------------------------------------------------------------------------------+
6623
6624
6625-Wmicrosoft-const-init
6626----------------------
6627This diagnostic is enabled by default.
6628
6629**Diagnostic text:**
6630
6631+----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------+--------------------------------------------+
6632|:warning:`warning:` |nbsp| :diagtext:`default initialization of an object of const type` |nbsp| :placeholder:`A`|+---------------------------------------------------------------+| |nbsp| :diagtext:`is a Microsoft extension`|
6633|                                                                                                                ||                                                               ||                                            |
6634|                                                                                                                |+---------------------------------------------------------------+|                                            |
6635|                                                                                                                || |nbsp| :diagtext:`without a user-provided default constructor`||                                            |
6636|                                                                                                                |+---------------------------------------------------------------+|                                            |
6637+----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------+--------------------------------------------+
6638
6639
6640-Wmicrosoft-cpp-macro
6641---------------------
6642**Diagnostic text:**
6643
6644+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
6645|:warning:`warning:` |nbsp| :diagtext:`C++ operator` |nbsp| :placeholder:`A` |nbsp| :diagtext:`(aka` |nbsp| :placeholder:`B`:diagtext:`) used as a macro name`|
6646+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
6647
6648
6649-Wmicrosoft-default-arg-redefinition
6650------------------------------------
6651This diagnostic is enabled by default.
6652
6653**Diagnostic text:**
6654
6655+-----------------------------------------------------------------------+
6656|:warning:`warning:` |nbsp| :diagtext:`redefinition of default argument`|
6657+-----------------------------------------------------------------------+
6658
6659
6660-Wmicrosoft-end-of-file
6661-----------------------
6662**Diagnostic text:**
6663
6664+----------------------------------------------------------------------------------------------+
6665|:warning:`warning:` |nbsp| :diagtext:`treating Ctrl-Z as end-of-file is a Microsoft extension`|
6666+----------------------------------------------------------------------------------------------+
6667
6668
6669-Wmicrosoft-enum-forward-reference
6670----------------------------------
6671This diagnostic is enabled by default.
6672
6673**Diagnostic text:**
6674
6675+---------------------------------------------------------------------------------------------------+
6676|:warning:`warning:` |nbsp| :diagtext:`forward references to 'enum' types are a Microsoft extension`|
6677+---------------------------------------------------------------------------------------------------+
6678
6679
6680-Wmicrosoft-enum-value
6681----------------------
6682**Diagnostic text:**
6683
6684+---------------------------------------------------------------------------------------------------------------------------+
6685|:warning:`warning:` |nbsp| :diagtext:`enumerator value is not representable in the underlying type` |nbsp| :placeholder:`A`|
6686+---------------------------------------------------------------------------------------------------------------------------+
6687
6688
6689-Wmicrosoft-exception-spec
6690--------------------------
6691Some of the diagnostics controlled by this flag are enabled by default.
6692
6693**Diagnostic text:**
6694
6695+------------------------------------------------------------------------------------------------+
6696|:warning:`warning:` |nbsp| :diagtext:`exception specification of '...' is a Microsoft extension`|
6697+------------------------------------------------------------------------------------------------+
6698
6699+---------------------------+----------------------------------+----------------------------------------------------------------------------------------------------------------+
6700|:warning:`warning:` |nbsp| |+--------------------------------+|:diagtext:`incomplete type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is not allowed in exception specification`|
6701|                           ||                                ||                                                                                                                |
6702|                           |+--------------------------------+|                                                                                                                |
6703|                           ||:diagtext:`pointer to` |nbsp|   ||                                                                                                                |
6704|                           |+--------------------------------+|                                                                                                                |
6705|                           ||:diagtext:`reference to` |nbsp| ||                                                                                                                |
6706|                           |+--------------------------------+|                                                                                                                |
6707+---------------------------+----------------------------------+----------------------------------------------------------------------------------------------------------------+
6708
6709+-----------------------------------------------------------------------------------------------------------------+
6710|:warning:`warning:` |nbsp| :diagtext:`exception specification in declaration does not match previous declaration`|
6711+-----------------------------------------------------------------------------------------------------------------+
6712
6713+------------------------------------------------------------------------------------------------------------------------+
6714|:warning:`warning:` |nbsp| :diagtext:`exception specification in explicit instantiation does not match instantiated one`|
6715+------------------------------------------------------------------------------------------------------------------------+
6716
6717+--------------------------------------------------------------------------------------------------------------------------------+
6718|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is missing exception specification '`:placeholder:`B`:diagtext:`'`|
6719+--------------------------------------------------------------------------------------------------------------------------------+
6720
6721+-------------------------------------------------------------------------------------------------------------------+
6722|:warning:`warning:` |nbsp| :diagtext:`exception specification of overriding function is more lax than base version`|
6723+-------------------------------------------------------------------------------------------------------------------+
6724
6725
6726-Wmicrosoft-exists
6727------------------
6728This diagnostic is enabled by default.
6729
6730**Diagnostic text:**
6731
6732+--------------------------------------------------------+---------------------------------+--------------------------------------------+
6733|:warning:`warning:` |nbsp| :diagtext:`dependent` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`declarations are ignored`|
6734|                                                        ||:diagtext:`\_\_if\_not\_exists`||                                            |
6735|                                                        |+-------------------------------+|                                            |
6736|                                                        ||:diagtext:`\_\_if\_exists`     ||                                            |
6737|                                                        |+-------------------------------+|                                            |
6738+--------------------------------------------------------+---------------------------------+--------------------------------------------+
6739
6740
6741-Wmicrosoft-explicit-constructor-call
6742-------------------------------------
6743This diagnostic is enabled by default.
6744
6745**Diagnostic text:**
6746
6747+-------------------------------------------------------------------------------------------+
6748|:warning:`warning:` |nbsp| :diagtext:`explicit constructor calls are a Microsoft extension`|
6749+-------------------------------------------------------------------------------------------+
6750
6751
6752-Wmicrosoft-extra-qualification
6753-------------------------------
6754This diagnostic is enabled by default.
6755
6756**Diagnostic text:**
6757
6758+--------------------------------------------------------------------------------------------+
6759|:warning:`warning:` |nbsp| :diagtext:`extra qualification on member` |nbsp| :placeholder:`A`|
6760+--------------------------------------------------------------------------------------------+
6761
6762
6763-Wmicrosoft-fixed-enum
6764----------------------
6765**Diagnostic text:**
6766
6767+---------------------------------------------------------------------------------------------------------------+
6768|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a Microsoft extension`|
6769+---------------------------------------------------------------------------------------------------------------+
6770
6771
6772-Wmicrosoft-flexible-array
6773--------------------------
6774**Diagnostic text:**
6775
6776+----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+
6777|:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in otherwise empty` |nbsp| |+---------------------+| |nbsp| :diagtext:`is a Microsoft extension`|
6778|                                                                                                                                  ||:diagtext:`struct`   ||                                            |
6779|                                                                                                                                  |+---------------------+|                                            |
6780|                                                                                                                                  ||:diagtext:`interface`||                                            |
6781|                                                                                                                                  |+---------------------+|                                            |
6782|                                                                                                                                  ||:diagtext:`union`    ||                                            |
6783|                                                                                                                                  |+---------------------+|                                            |
6784|                                                                                                                                  ||:diagtext:`class`    ||                                            |
6785|                                                                                                                                  |+---------------------+|                                            |
6786|                                                                                                                                  ||:diagtext:`enum`     ||                                            |
6787|                                                                                                                                  |+---------------------+|                                            |
6788+----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+
6789
6790+-------------------------------------------------------------------------------------------------------------------------------------------+
6791|:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in a union is a Microsoft extension`|
6792+-------------------------------------------------------------------------------------------------------------------------------------------+
6793
6794
6795-Wmicrosoft-goto
6796----------------
6797This diagnostic is enabled by default.
6798
6799**Diagnostic text:**
6800
6801+----------------------------------------------------------------------------------------------------------+
6802|:warning:`warning:` |nbsp| :diagtext:`jump from this goto statement to its label is a Microsoft extension`|
6803+----------------------------------------------------------------------------------------------------------+
6804
6805
6806-Wmicrosoft-inaccessible-base
6807-----------------------------
6808This diagnostic is enabled by default.
6809
6810**Diagnostic text:**
6811
6812+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6813|:warning:`warning:` |nbsp| :diagtext:`accessing inaccessible direct base` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is a Microsoft extension`|
6814+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6815
6816
6817-Wmicrosoft-include
6818-------------------
6819This diagnostic is enabled by default.
6820
6821**Diagnostic text:**
6822
6823+------------------------------------------------------------------------------------------------------------------------------+
6824|:warning:`warning:` |nbsp| :diagtext:`#include resolved using non-portable Microsoft search rules as:` |nbsp| :placeholder:`A`|
6825+------------------------------------------------------------------------------------------------------------------------------+
6826
6827
6828-Wmicrosoft-mutable-reference
6829-----------------------------
6830This diagnostic is enabled by default.
6831
6832**Diagnostic text:**
6833
6834+---------------------------------------------------------------------------------------------+
6835|:warning:`warning:` |nbsp| :diagtext:`'mutable' on a reference type is a Microsoft extension`|
6836+---------------------------------------------------------------------------------------------+
6837
6838
6839-Wmicrosoft-pure-definition
6840---------------------------
6841This diagnostic is enabled by default.
6842
6843**Diagnostic text:**
6844
6845+-------------------------------------------------------------------------------------------------------+
6846|:warning:`warning:` |nbsp| :diagtext:`function definition with pure-specifier is a Microsoft extension`|
6847+-------------------------------------------------------------------------------------------------------+
6848
6849
6850-Wmicrosoft-redeclare-static
6851----------------------------
6852**Diagnostic text:**
6853
6854+-------------------------------------------------------------------------------------------------------------------------------------------+
6855|:warning:`warning:` |nbsp| :diagtext:`redeclaring non-static` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as static is a Microsoft extension`|
6856+-------------------------------------------------------------------------------------------------------------------------------------------+
6857
6858
6859-Wmicrosoft-sealed
6860------------------
6861This diagnostic is enabled by default.
6862
6863**Diagnostic text:**
6864
6865+--------------------------------------------------------------------------------+
6866|:warning:`warning:` |nbsp| :diagtext:`'sealed' keyword is a Microsoft extension`|
6867+--------------------------------------------------------------------------------+
6868
6869
6870-Wmicrosoft-template
6871--------------------
6872This diagnostic is enabled by default.
6873
6874**Diagnostic text:**
6875
6876+------------------------------------------------------------------------------------------------------------------------------------------------------+
6877|:warning:`warning:` |nbsp| :diagtext:`duplicate explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored as a Microsoft extension`|
6878+------------------------------------------------------------------------------------------------------------------------------------------------------+
6879
6880+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6881|: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`|
6882+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6883
6884+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6885|:warning:`warning:` |nbsp| :diagtext:`using the undeclared type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as a default template argument is a Microsoft extension`|
6886+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6887
6888+-----------------------------------------------------------------------------------------------------------------------------+
6889|:warning:`warning:` |nbsp| :diagtext:`non-type template argument containing a dereference operation is a Microsoft extension`|
6890+-----------------------------------------------------------------------------------------------------------------------------+
6891
6892+---------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------+--------------------------------------------+
6893|:warning:`warning:` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`specialization of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not in` |nbsp| |+----------------------------------------------------------------------------------------+| |nbsp| :diagtext:`is a Microsoft extension`|
6894|                           ||:diagtext:`class template`           ||                                                                                               ||+---------------------------------------------------------+                             ||                                            |
6895|                           |+-------------------------------------+|                                                                                               |||:diagtext:`a namespace enclosing` |nbsp| :placeholder:`C`|                             ||                                            |
6896|                           ||:diagtext:`class template partial`   ||                                                                                               ||+---------------------------------------------------------+                             ||                                            |
6897|                           |+-------------------------------------+|                                                                                               |+----------------------------------------------------------------------------------------+|                                            |
6898|                           ||:diagtext:`variable template`        ||                                                                                               ||+--------------------------------------------------------------------------------------+||                                            |
6899|                           |+-------------------------------------+|                                                                                               |||:diagtext:`class` |nbsp| :placeholder:`C` |nbsp| :diagtext:`or an enclosing namespace`|||                                            |
6900|                           ||:diagtext:`variable template partial`||                                                                                               ||+--------------------------------------------------------------------------------------+||                                            |
6901|                           |+-------------------------------------+|                                                                                               |+----------------------------------------------------------------------------------------+|                                            |
6902|                           ||:diagtext:`function template`        ||                                                                                               |                                                                                          |                                            |
6903|                           |+-------------------------------------+|                                                                                               |                                                                                          |                                            |
6904|                           ||:diagtext:`member function`          ||                                                                                               |                                                                                          |                                            |
6905|                           |+-------------------------------------+|                                                                                               |                                                                                          |                                            |
6906|                           ||:diagtext:`static data member`       ||                                                                                               |                                                                                          |                                            |
6907|                           |+-------------------------------------+|                                                                                               |                                                                                          |                                            |
6908|                           ||:diagtext:`member class`             ||                                                                                               |                                                                                          |                                            |
6909|                           |+-------------------------------------+|                                                                                               |                                                                                          |                                            |
6910|                           ||:diagtext:`member enumeration`       ||                                                                                               |                                                                                          |                                            |
6911|                           |+-------------------------------------+|                                                                                               |                                                                                          |                                            |
6912+---------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------+--------------------------------------------+
6913
6914+------------------------------------------------------------------------------------------------------------------------------------------------+
6915|:warning:`warning:` |nbsp| :diagtext:`template argument for template type parameter must be a type; omitted 'typename' is a Microsoft extension`|
6916+------------------------------------------------------------------------------------------------------------------------------------------------+
6917
6918+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6919|: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`|
6920+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6921
6922
6923-Wmicrosoft-union-member-reference
6924----------------------------------
6925This diagnostic is enabled by default.
6926
6927**Diagnostic text:**
6928
6929+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6930|:warning:`warning:` |nbsp| :diagtext:`union member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has reference type` |nbsp| :placeholder:`B`:diagtext:`, which is a Microsoft extension`|
6931+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6932
6933
6934-Wmicrosoft-unqualified-friend
6935------------------------------
6936This diagnostic is enabled by default.
6937
6938**Diagnostic text:**
6939
6940+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6941|: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`|
6942+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6943
6944
6945-Wmicrosoft-using-decl
6946----------------------
6947This diagnostic is enabled by default.
6948
6949**Diagnostic text:**
6950
6951+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6952|: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`|
6953+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6954
6955
6956-Wmicrosoft-void-pseudo-dtor
6957----------------------------
6958This diagnostic is enabled by default.
6959
6960**Diagnostic text:**
6961
6962+------------------------------------------------------------------------------------------------+
6963|:warning:`warning:` |nbsp| :diagtext:`pseudo-destructors on type void are a Microsoft extension`|
6964+------------------------------------------------------------------------------------------------+
6965
6966
6967-Wmismatched-new-delete
6968-----------------------
6969This diagnostic is enabled by default.
6970
6971**Diagnostic text:**
6972
6973+----------------------------------------------+------------------+---------------------------------------------------------------+------------------+-----------------------------------+------------------+--------------+
6974|:warning:`warning:` |nbsp| :diagtext:`'delete`|+----------------+|:diagtext:`' applied to a pointer that was allocated with 'new`|+----------------+|:diagtext:`'; did you mean 'delete`|+----------------+|:diagtext:`'?`|
6975|                                              ||                ||                                                               ||:diagtext:`\[\]`||                                   ||:diagtext:`\[\]`||              |
6976|                                              |+----------------+|                                                               |+----------------+|                                   |+----------------+|              |
6977|                                              ||:diagtext:`\[\]`||                                                               ||                ||                                   ||                ||              |
6978|                                              |+----------------+|                                                               |+----------------+|                                   |+----------------+|              |
6979+----------------------------------------------+------------------+---------------------------------------------------------------+------------------+-----------------------------------+------------------+--------------+
6980
6981
6982-Wmismatched-parameter-types
6983----------------------------
6984This diagnostic is enabled by default.
6985
6986**Diagnostic text:**
6987
6988+---------------------------------------------------------------------------------------------------------------+
6989|:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in implementation of` |nbsp| :placeholder:`A`|
6990+---------------------------------------------------------------------------------------------------------------+
6991
6992
6993-Wmismatched-return-types
6994-------------------------
6995This diagnostic is enabled by default.
6996
6997**Diagnostic text:**
6998
6999+-----------------------------------------------------------------------------------------------------------+
7000|:warning:`warning:` |nbsp| :diagtext:`conflicting return type in implementation of` |nbsp| :placeholder:`A`|
7001+-----------------------------------------------------------------------------------------------------------+
7002
7003
7004-Wmismatched-tags
7005-----------------
7006**Diagnostic text:**
7007
7008+---------------------------------------------------------------------------------+--------------------------+------------------------------+-----------------------------------------------------------+--------------------------+------------------------------+----------------------------------------------------------------------------------------+
7009|:warning:`warning:` |nbsp| :placeholder:`C` |nbsp| :diagtext:`defined as` |nbsp| |+------------------------+|+----------------------------+| |nbsp| :diagtext:`here but previously declared as` |nbsp| |+------------------------+|+----------------------------+|:diagtext:`; this is valid, but may result in linker errors under the Microsoft C++ ABI`|
7010|                                                                                 ||:diagtext:`a struct`    |||                            ||                                                           ||:diagtext:`a struct`    |||                            ||                                                                                        |
7011|                                                                                 |+------------------------+|+----------------------------+|                                                           |+------------------------+|+----------------------------+|                                                                                        |
7012|                                                                                 ||:diagtext:`an interface`||| |nbsp| :diagtext:`template`||                                                           ||:diagtext:`an interface`||| |nbsp| :diagtext:`template`||                                                                                        |
7013|                                                                                 |+------------------------+|+----------------------------+|                                                           |+------------------------+|+----------------------------+|                                                                                        |
7014|                                                                                 ||:diagtext:`a class`     ||                              |                                                           ||:diagtext:`a class`     ||                              |                                                                                        |
7015|                                                                                 |+------------------------+|                              |                                                           |+------------------------+|                              |                                                                                        |
7016+---------------------------------------------------------------------------------+--------------------------+------------------------------+-----------------------------------------------------------+--------------------------+------------------------------+----------------------------------------------------------------------------------------+
7017
7018+---------------------------+-----------------------+------------------------------+--------------------------------------------------------------------------------+-----------------------+------------------------------+----------------------------------------------------------------------------------------+
7019|:warning:`warning:` |nbsp| |+---------------------+|+----------------------------+| |nbsp| :placeholder:`C` |nbsp| :diagtext:`was previously declared as a` |nbsp| |+---------------------+|+----------------------------+|:diagtext:`; this is valid, but may result in linker errors under the Microsoft C++ ABI`|
7020|                           ||:diagtext:`struct`   |||                            ||                                                                                ||:diagtext:`struct`   |||                            ||                                                                                        |
7021|                           |+---------------------+|+----------------------------+|                                                                                |+---------------------+|+----------------------------+|                                                                                        |
7022|                           ||:diagtext:`interface`||| |nbsp| :diagtext:`template`||                                                                                ||:diagtext:`interface`||| |nbsp| :diagtext:`template`||                                                                                        |
7023|                           |+---------------------+|+----------------------------+|                                                                                |+---------------------+|+----------------------------+|                                                                                        |
7024|                           ||:diagtext:`class`    ||                              |                                                                                ||:diagtext:`class`    ||                              |                                                                                        |
7025|                           |+---------------------+|                              |                                                                                |+---------------------+|                              |                                                                                        |
7026+---------------------------+-----------------------+------------------------------+--------------------------------------------------------------------------------+-----------------------+------------------------------+----------------------------------------------------------------------------------------+
7027
7028
7029-Wmissing-braces
7030----------------
7031**Diagnostic text:**
7032
7033+----------------------------------------------------------------------------------------+
7034|:warning:`warning:` |nbsp| :diagtext:`suggest braces around initialization of subobject`|
7035+----------------------------------------------------------------------------------------+
7036
7037
7038-Wmissing-declarations
7039----------------------
7040This diagnostic is enabled by default.
7041
7042**Diagnostic text:**
7043
7044+----------------------------------------------------------------------------+
7045|:warning:`warning:` |nbsp| :diagtext:`declaration does not declare anything`|
7046+----------------------------------------------------------------------------+
7047
7048+-----------------------------------------------------------------------------------------------------------------+
7049|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is not permitted on a declaration of a type`|
7050+-----------------------------------------------------------------------------------------------------------------+
7051
7052+--------------------------------------------------------------+
7053|:warning:`warning:` |nbsp| :diagtext:`typedef requires a name`|
7054+--------------------------------------------------------------+
7055
7056+-------------------------------------------------------------------------------------------------+
7057|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' ignored on this declaration`|
7058+-------------------------------------------------------------------------------------------------+
7059
7060
7061-Wmissing-exception-spec
7062------------------------
7063This diagnostic is enabled by default.
7064
7065**Diagnostic text:**
7066
7067+--------------------------------------------------------------------------------------------------------------------------------+
7068|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is missing exception specification '`:placeholder:`B`:diagtext:`'`|
7069+--------------------------------------------------------------------------------------------------------------------------------+
7070
7071
7072-Wmissing-field-initializers
7073----------------------------
7074**Diagnostic text:**
7075
7076+-----------------------------------------------------------------------------------------------------------+
7077|:warning:`warning:` |nbsp| :diagtext:`missing field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`initializer`|
7078+-----------------------------------------------------------------------------------------------------------+
7079
7080
7081-Wmissing-format-attribute
7082--------------------------
7083This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
7084
7085-Wmissing-include-dirs
7086----------------------
7087This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
7088
7089-Wmissing-method-return-type
7090----------------------------
7091**Diagnostic text:**
7092
7093+--------------------------------------------------------------------------------------------+
7094|:warning:`warning:` |nbsp| :diagtext:`method has no return type specified; defaults to 'id'`|
7095+--------------------------------------------------------------------------------------------+
7096
7097
7098-Wmissing-noescape
7099------------------
7100This diagnostic is enabled by default.
7101
7102**Diagnostic text:**
7103
7104+----------------------------------------------------------------------------------------------------------------------------+
7105|:warning:`warning:` |nbsp| :diagtext:`parameter of overriding method should be annotated with \_\_attribute\_\_((noescape))`|
7106+----------------------------------------------------------------------------------------------------------------------------+
7107
7108
7109-Wmissing-noreturn
7110------------------
7111**Diagnostic text:**
7112
7113+----------------------------------------------------------------------------------------+
7114|:warning:`warning:` |nbsp| :diagtext:`block could be declared with attribute 'noreturn'`|
7115+----------------------------------------------------------------------------------------+
7116
7117+---------------------------+----------------------+---------------------------------------------------------------------------------------+
7118|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`could be declared with attribute 'noreturn'`|
7119|                           ||:diagtext:`function`||                                                                                       |
7120|                           |+--------------------+|                                                                                       |
7121|                           ||:diagtext:`method`  ||                                                                                       |
7122|                           |+--------------------+|                                                                                       |
7123+---------------------------+----------------------+---------------------------------------------------------------------------------------+
7124
7125
7126-Wmissing-prototype-for-cc
7127--------------------------
7128This diagnostic is enabled by default.
7129
7130**Diagnostic text:**
7131
7132+----------------------------------------------------------------------------------------------------------------------------------------------+
7133|:warning:`warning:` |nbsp| :diagtext:`function with no prototype cannot use the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`calling convention`|
7134+----------------------------------------------------------------------------------------------------------------------------------------------+
7135
7136
7137-Wmissing-prototypes
7138--------------------
7139**Diagnostic text:**
7140
7141+-------------------------------------------------------------------------------------------------+
7142|:warning:`warning:` |nbsp| :diagtext:`no previous prototype for function` |nbsp| :placeholder:`A`|
7143+-------------------------------------------------------------------------------------------------+
7144
7145
7146-Wmissing-selector-name
7147-----------------------
7148This diagnostic is enabled by default.
7149
7150**Diagnostic text:**
7151
7152+---------------------------------------------------------------------------------------------------------------------------------------------+
7153|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`used as the name of the previous parameter rather than as part of the selector`|
7154+---------------------------------------------------------------------------------------------------------------------------------------------+
7155
7156
7157-Wmissing-sysroot
7158-----------------
7159This diagnostic is enabled by default.
7160
7161**Diagnostic text:**
7162
7163+------------------------------------------------------------------------------------------------+
7164|:warning:`warning:` |nbsp| :diagtext:`no such sysroot directory: '`:placeholder:`A`:diagtext:`'`|
7165+------------------------------------------------------------------------------------------------+
7166
7167
7168-Wmissing-variable-declarations
7169-------------------------------
7170**Diagnostic text:**
7171
7172+---------------------------------------------------------------------------------------------------------------------+
7173|:warning:`warning:` |nbsp| :diagtext:`no previous extern declaration for non-static variable` |nbsp| :placeholder:`A`|
7174+---------------------------------------------------------------------------------------------------------------------+
7175
7176
7177-Rmodule-build
7178--------------
7179**Diagnostic text:**
7180
7181+---------------------------------------------------------------------------------------------------------------------+
7182|:remark:`remark:` |nbsp| :diagtext:`building module '`:placeholder:`A`:diagtext:`' as '`:placeholder:`B`:diagtext:`'`|
7183+---------------------------------------------------------------------------------------------------------------------+
7184
7185+--------------------------------------------------------------------------------------------+
7186|:remark:`remark:` |nbsp| :diagtext:`finished building module '`:placeholder:`A`:diagtext:`'`|
7187+--------------------------------------------------------------------------------------------+
7188
7189+-----------------------------------------------------------------------------------------------------------------------------------+
7190|:remark:`remark:` |nbsp| :diagtext:`could not acquire lock file for module '`:placeholder:`A`:diagtext:`':` |nbsp| :placeholder:`B`|
7191+-----------------------------------------------------------------------------------------------------------------------------------+
7192
7193+---------------------------------------------------------------------------------------------------------------------+
7194|:remark:`remark:` |nbsp| :diagtext:`timed out waiting to acquire lock file for module '`:placeholder:`A`:diagtext:`'`|
7195+---------------------------------------------------------------------------------------------------------------------+
7196
7197
7198-Wmodule-conflict
7199-----------------
7200This diagnostic is enabled by default.
7201
7202**Diagnostic text:**
7203
7204+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7205|:warning:`warning:` |nbsp| :diagtext:`module '`:placeholder:`A`:diagtext:`' conflicts with already-imported module '`:placeholder:`B`:diagtext:`':` |nbsp| :placeholder:`C`|
7206+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7207
7208+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7209|: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`|
7210+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7211
7212
7213-Wmodule-file-config-mismatch
7214-----------------------------
7215This diagnostic is an error by default, but the flag ``-Wno-module-file-config-mismatch`` can be used to disable the error.
7216
7217**Diagnostic text:**
7218
7219+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7220|:error:`error:` |nbsp| :diagtext:`module file` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be loaded due to a configuration mismatch with the current compilation`|
7221+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7222
7223
7224-Wmodule-file-extension
7225-----------------------
7226This diagnostic is enabled by default.
7227
7228**Diagnostic text:**
7229
7230+----------------------------------------------------------------------------------------------------------------+
7231|:warning:`warning:` |nbsp| :diagtext:`duplicate module file extension block name '`:placeholder:`A`:diagtext:`'`|
7232+----------------------------------------------------------------------------------------------------------------+
7233
7234
7235-Wmodule-import-in-extern-c
7236---------------------------
7237This diagnostic is an error by default, but the flag ``-Wno-module-import-in-extern-c`` can be used to disable the error.
7238
7239**Diagnostic text:**
7240
7241+-----------------------------------------------------------------------------------------------------------------------------------------------+
7242|:error:`error:` |nbsp| :diagtext:`import of C++ module '`:placeholder:`A`:diagtext:`' appears within extern "C" language linkage specification`|
7243+-----------------------------------------------------------------------------------------------------------------------------------------------+
7244
7245
7246-Wmodules-ambiguous-internal-linkage
7247------------------------------------
7248This diagnostic is enabled by default.
7249
7250**Diagnostic text:**
7251
7252+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
7253|:warning:`warning:` |nbsp| :diagtext:`ambiguous use of internal linkage declaration` |nbsp| :placeholder:`A` |nbsp| :diagtext:`defined in multiple modules`|
7254+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
7255
7256
7257-Wmodules-import-nested-redundant
7258---------------------------------
7259This diagnostic is an error by default, but the flag ``-Wno-modules-import-nested-redundant`` can be used to disable the error.
7260
7261**Diagnostic text:**
7262
7263+-------------------------------------------------------------------------------------------------------------------------------------+
7264|:error:`error:` |nbsp| :diagtext:`redundant #include of module '`:placeholder:`A`:diagtext:`' appears within` |nbsp| :placeholder:`B`|
7265+-------------------------------------------------------------------------------------------------------------------------------------+
7266
7267
7268-Wmost
7269------
7270Some of the diagnostics controlled by this flag are enabled by default.
7271
7272Controls `-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`_.
7273
7274
7275-Wmove
7276------
7277Controls `-Wpessimizing-move`_, `-Wredundant-move`_, `-Wreturn-std-move`_, `-Wself-move`_.
7278
7279
7280-Wmsvc-include
7281--------------
7282Synonym for `-Wmicrosoft-include`_.
7283
7284
7285-Wmsvc-not-found
7286----------------
7287This diagnostic is enabled by default.
7288
7289**Diagnostic text:**
7290
7291+-------------------------------------------------------------------------------------------------------------------------------------+
7292|:warning:`warning:` |nbsp| :diagtext:`unable to find a Visual Studio installation; try running Clang from a developer command prompt`|
7293+-------------------------------------------------------------------------------------------------------------------------------------+
7294
7295
7296-Wmultichar
7297-----------
7298This diagnostic is enabled by default.
7299
7300**Diagnostic text:**
7301
7302+-------------------------------------------------------------------------+
7303|:warning:`warning:` |nbsp| :diagtext:`multi-character character constant`|
7304+-------------------------------------------------------------------------+
7305
7306
7307-Wmultiple-move-vbase
7308---------------------
7309This diagnostic is enabled by default.
7310
7311**Diagnostic text:**
7312
7313+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7314|: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`|
7315+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7316
7317
7318-Wnarrowing
7319-----------
7320Synonym for `-Wc++11-narrowing`_.
7321
7322
7323-Wnested-anon-types
7324-------------------
7325**Diagnostic text:**
7326
7327+---------------------------------------------------------------------------------------+--------------------+------------------------------------+
7328|:warning:`warning:` |nbsp| :diagtext:`anonymous types declared in an anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`are an extension`|
7329|                                                                                       ||:diagtext:`struct`||                                    |
7330|                                                                                       |+------------------+|                                    |
7331|                                                                                       ||:diagtext:`union` ||                                    |
7332|                                                                                       |+------------------+|                                    |
7333+---------------------------------------------------------------------------------------+--------------------+------------------------------------+
7334
7335
7336-Wnested-externs
7337----------------
7338This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
7339
7340-Wnew-returns-null
7341------------------
7342This diagnostic is enabled by default.
7343
7344**Diagnostic text:**
7345
7346+-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+
7347|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return a null pointer unless it is declared 'throw()'`|+---------------------------------+|
7348|                                                                                                                               ||                                 ||
7349|                                                                                                                               |+---------------------------------+|
7350|                                                                                                                               || |nbsp| :diagtext:`or 'noexcept'`||
7351|                                                                                                                               |+---------------------------------+|
7352+-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+
7353
7354
7355-Wnewline-eof
7356-------------
7357**Diagnostic text:**
7358
7359+----------------------------------------------------------------+
7360|:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`|
7361+----------------------------------------------------------------+
7362
7363+----------------------------------------------------------------+
7364|:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`|
7365+----------------------------------------------------------------+
7366
7367
7368-Wnoderef
7369---------
7370This diagnostic is enabled by default.
7371
7372**Diagnostic text:**
7373
7374+----------------------------------------------------------------------------------------------------------------------------+
7375|:warning:`warning:` |nbsp| :diagtext:`dereferencing` |nbsp| :placeholder:`A`:diagtext:`; was declared with a 'noderef' type`|
7376+----------------------------------------------------------------------------------------------------------------------------+
7377
7378+-----------------------------------------------------------------------------------+
7379|:warning:`warning:` |nbsp| :diagtext:`dereferencing expression marked as 'noderef'`|
7380+-----------------------------------------------------------------------------------+
7381
7382+-----------------------------------------------------------------------------------------------------+
7383|:warning:`warning:` |nbsp| :diagtext:`casting to dereferenceable pointer removes 'noderef' attribute`|
7384+-----------------------------------------------------------------------------------------------------+
7385
7386
7387-Wnoexcept-type
7388---------------
7389Synonym for `-Wc++17-compat-mangling`_.
7390
7391
7392-Wnon-gcc
7393---------
7394Some of the diagnostics controlled by this flag are enabled by default.
7395
7396Controls `-Wconversion`_, `-Wliteral-range`_, `-Wsign-compare`_.
7397
7398
7399-Wnon-literal-null-conversion
7400-----------------------------
7401This diagnostic is enabled by default.
7402
7403**Diagnostic text:**
7404
7405+--------------------------------------------------------------------------------------------------------------------------------------------+
7406|:warning:`warning:` |nbsp| :diagtext:`expression which evaluates to zero treated as a null pointer constant of type` |nbsp| :placeholder:`A`|
7407+--------------------------------------------------------------------------------------------------------------------------------------------+
7408
7409
7410-Wnon-modular-include-in-framework-module
7411-----------------------------------------
7412**Diagnostic text:**
7413
7414+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
7415|:warning:`warning:` |nbsp| :diagtext:`include of non-modular header inside framework module '`:placeholder:`A`:diagtext:`': '`:placeholder:`B`:diagtext:`'`|
7416+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
7417
7418
7419-Wnon-modular-include-in-module
7420-------------------------------
7421Also controls `-Wnon-modular-include-in-framework-module`_.
7422
7423**Diagnostic text:**
7424
7425+-------------------------------------------------------------------------------------------------------------------------------------------------+
7426|:warning:`warning:` |nbsp| :diagtext:`include of non-modular header inside module '`:placeholder:`A`:diagtext:`': '`:placeholder:`B`:diagtext:`'`|
7427+-------------------------------------------------------------------------------------------------------------------------------------------------+
7428
7429
7430-Wnon-pod-varargs
7431-----------------
7432This diagnostic is an error by default, but the flag ``-Wno-non-pod-varargs`` can be used to disable the error.
7433
7434**Diagnostic text:**
7435
7436+----------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------------------------+-------------------------+----------------------------------------+
7437|: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`|
7438|                                                                ||:diagtext:`non-POD`    ||                                                                                            ||:diagtext:`function`   ||                                        |
7439|                                                                |+-----------------------+|                                                                                            |+-----------------------+|                                        |
7440|                                                                ||:diagtext:`non-trivial`||                                                                                            ||:diagtext:`block`      ||                                        |
7441|                                                                |+-----------------------+|                                                                                            |+-----------------------+|                                        |
7442|                                                                |                         |                                                                                            ||:diagtext:`method`     ||                                        |
7443|                                                                |                         |                                                                                            |+-----------------------+|                                        |
7444|                                                                |                         |                                                                                            ||:diagtext:`constructor`||                                        |
7445|                                                                |                         |                                                                                            |+-----------------------+|                                        |
7446+----------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------------------------+-------------------------+----------------------------------------+
7447
7448+------------------------------------------------------+-------------------------+-------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------+
7449|: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`|
7450|                                                      ||:diagtext:`non-POD`    ||                                                                                                 ||:diagtext:`function`   ||                                                                          |
7451|                                                      |+-----------------------+|                                                                                                 |+-----------------------+|                                                                          |
7452|                                                      ||:diagtext:`non-trivial`||                                                                                                 ||:diagtext:`block`      ||                                                                          |
7453|                                                      |+-----------------------+|                                                                                                 |+-----------------------+|                                                                          |
7454|                                                      |                         |                                                                                                 ||:diagtext:`method`     ||                                                                          |
7455|                                                      |                         |                                                                                                 |+-----------------------+|                                                                          |
7456|                                                      |                         |                                                                                                 ||:diagtext:`constructor`||                                                                          |
7457|                                                      |                         |                                                                                                 |+-----------------------+|                                                                          |
7458+------------------------------------------------------+-------------------------+-------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------+
7459
7460+----------------------------------------------------------------------------------------------------------+
7461|:error:`error:` |nbsp| :diagtext:`second argument to 'va\_arg' is of non-POD type` |nbsp| :placeholder:`A`|
7462+----------------------------------------------------------------------------------------------------------+
7463
7464+--------------------------------------------------------------------------------------------------------------------------+
7465|:error:`error:` |nbsp| :diagtext:`second argument to 'va\_arg' is of ARC ownership-qualified type` |nbsp| :placeholder:`A`|
7466+--------------------------------------------------------------------------------------------------------------------------+
7467
7468
7469-Wnon-virtual-dtor
7470------------------
7471**Diagnostic text:**
7472
7473+---------------------------------------------------------------------------------------------------------------+
7474|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has virtual functions but non-virtual destructor`|
7475+---------------------------------------------------------------------------------------------------------------+
7476
7477
7478-Wnonnull
7479---------
7480This diagnostic is enabled by default.
7481
7482**Diagnostic text:**
7483
7484+------------------------------------------------------------------------------------------------+
7485|:warning:`warning:` |nbsp| :diagtext:`null passed to a callee that requires a non-null argument`|
7486+------------------------------------------------------------------------------------------------+
7487
7488+-----------------------------------------------------------------+----------------------+---------------------------------------------------------+
7489|:warning:`warning:` |nbsp| :diagtext:`null returned from` |nbsp| |+--------------------+| |nbsp| :diagtext:`that requires a non-null return value`|
7490|                                                                 ||:diagtext:`function`||                                                         |
7491|                                                                 |+--------------------+|                                                         |
7492|                                                                 ||:diagtext:`method`  ||                                                         |
7493|                                                                 |+--------------------+|                                                         |
7494+-----------------------------------------------------------------+----------------------+---------------------------------------------------------+
7495
7496
7497-Wnonportable-cfstrings
7498-----------------------
7499This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
7500
7501-Wnonportable-include-path
7502--------------------------
7503This diagnostic is enabled by default.
7504
7505**Diagnostic text:**
7506
7507+------------------------------------------------------------------------------------------------------------------------------------------------------+
7508|:warning:`warning:` |nbsp| :diagtext:`non-portable path to file '`:placeholder:`A`:diagtext:`'; specified path differs in case from file name on disk`|
7509+------------------------------------------------------------------------------------------------------------------------------------------------------+
7510
7511
7512-Wnonportable-system-include-path
7513---------------------------------
7514**Diagnostic text:**
7515
7516+------------------------------------------------------------------------------------------------------------------------------------------------------+
7517|:warning:`warning:` |nbsp| :diagtext:`non-portable path to file '`:placeholder:`A`:diagtext:`'; specified path differs in case from file name on disk`|
7518+------------------------------------------------------------------------------------------------------------------------------------------------------+
7519
7520
7521-Wnonportable-vector-initialization
7522-----------------------------------
7523This diagnostic is enabled by default.
7524
7525**Diagnostic text:**
7526
7527+---------------------------------------------------------------------------------------------------------------------+
7528|:warning:`warning:` |nbsp| :diagtext:`vector initializers are not compatible with NEON intrinsics in big endian mode`|
7529+---------------------------------------------------------------------------------------------------------------------+
7530
7531
7532-Wnontrivial-memaccess
7533----------------------
7534This diagnostic is enabled by default.
7535
7536**Diagnostic text:**
7537
7538+---------------------------+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------+
7539|:warning:`warning:` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`this` |nbsp| :placeholder:`B` |nbsp| :diagtext:`call is a pointer to record` |nbsp| :placeholder:`C` |nbsp| :diagtext:`that is not trivial to` |nbsp| |+----------------------------------------+|
7540|                           ||:diagtext:`destination for`  ||                                                                                                                                                                         ||:diagtext:`primitive-default-initialize`||
7541|                           |+-----------------------------+|                                                                                                                                                                         |+----------------------------------------+|
7542|                           ||:diagtext:`source of`        ||                                                                                                                                                                         ||:diagtext:`primitive-copy`              ||
7543|                           |+-----------------------------+|                                                                                                                                                                         |+----------------------------------------+|
7544|                           ||:diagtext:`first operand of` ||                                                                                                                                                                         |                                          |
7545|                           |+-----------------------------+|                                                                                                                                                                         |                                          |
7546|                           ||:diagtext:`second operand of`||                                                                                                                                                                         |                                          |
7547|                           |+-----------------------------+|                                                                                                                                                                         |                                          |
7548+---------------------------+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------+
7549
7550
7551-Wnsconsumed-mismatch
7552---------------------
7553This diagnostic is enabled by default.
7554
7555**Diagnostic text:**
7556
7557+---------------------------------------------------------------------------------------------------------------+
7558|:warning:`warning:` |nbsp| :diagtext:`overriding method has mismatched ns\_consumed attribute on its parameter`|
7559+---------------------------------------------------------------------------------------------------------------+
7560
7561
7562-Wnsreturns-mismatch
7563--------------------
7564This diagnostic is enabled by default.
7565
7566**Diagnostic text:**
7567
7568+-------------------------------------------------------------------------------------+---------------------------+------------------------------+
7569|:warning:`warning:` |nbsp| :diagtext:`overriding method has mismatched ns\_returns\_`|+-------------------------+| |nbsp| :diagtext:`attributes`|
7570|                                                                                     ||:diagtext:`not\_retained`||                              |
7571|                                                                                     |+-------------------------+|                              |
7572|                                                                                     ||:diagtext:`retained`     ||                              |
7573|                                                                                     |+-------------------------+|                              |
7574+-------------------------------------------------------------------------------------+---------------------------+------------------------------+
7575
7576
7577-Wnull-arithmetic
7578-----------------
7579This diagnostic is enabled by default.
7580
7581**Diagnostic text:**
7582
7583+--------------------------------------------------------------------------+
7584|:warning:`warning:` |nbsp| :diagtext:`use of NULL in arithmetic operation`|
7585+--------------------------------------------------------------------------+
7586
7587+--------------------------------------------------------------------------------------+--------------------------------------------------------------+
7588|:warning:`warning:` |nbsp| :diagtext:`comparison between NULL and non-pointer` |nbsp| |+------------------------------------------------------------+|
7589|                                                                                      ||+----------------------------------------------------------+||
7590|                                                                                      |||:diagtext:`(`:placeholder:`B` |nbsp| :diagtext:`and NULL)`|||
7591|                                                                                      ||+----------------------------------------------------------+||
7592|                                                                                      |+------------------------------------------------------------+|
7593|                                                                                      ||+----------------------------------------------------------+||
7594|                                                                                      |||:diagtext:`(NULL and` |nbsp| :placeholder:`B`:diagtext:`)`|||
7595|                                                                                      ||+----------------------------------------------------------+||
7596|                                                                                      |+------------------------------------------------------------+|
7597+--------------------------------------------------------------------------------------+--------------------------------------------------------------+
7598
7599
7600-Wnull-character
7601----------------
7602This diagnostic is enabled by default.
7603
7604**Diagnostic text:**
7605
7606+-----------------------------------------------------------------------------+--------------------+---------------------------+
7607|:warning:`warning:` |nbsp| :diagtext:`null character(s) preserved in` |nbsp| |+------------------+| |nbsp| :diagtext:`literal`|
7608|                                                                             ||:diagtext:`char`  ||                           |
7609|                                                                             |+------------------+|                           |
7610|                                                                             ||:diagtext:`string`||                           |
7611|                                                                             |+------------------+|                           |
7612+-----------------------------------------------------------------------------+--------------------+---------------------------+
7613
7614+-------------------------------------------------------------+
7615|:warning:`warning:` |nbsp| :diagtext:`null character ignored`|
7616+-------------------------------------------------------------+
7617
7618
7619-Wnull-conversion
7620-----------------
7621This diagnostic is enabled by default.
7622
7623**Diagnostic text:**
7624
7625+---------------------------------------------------------------------+---------------------+-------------------------------------------------------+
7626|:warning:`warning:` |nbsp| :diagtext:`implicit conversion of` |nbsp| |+-------------------+| |nbsp| :diagtext:`constant to` |nbsp| :placeholder:`B`|
7627|                                                                     ||:diagtext:`NULL`   ||                                                       |
7628|                                                                     |+-------------------+|                                                       |
7629|                                                                     ||:diagtext:`nullptr`||                                                       |
7630|                                                                     |+-------------------+|                                                       |
7631+---------------------------------------------------------------------+---------------------+-------------------------------------------------------+
7632
7633
7634-Wnull-dereference
7635------------------
7636This diagnostic is enabled by default.
7637
7638**Diagnostic text:**
7639
7640+------------------------------------------------------------------------------------------------------------+
7641|:warning:`warning:` |nbsp| :diagtext:`binding dereferenced null pointer to reference has undefined behavior`|
7642+------------------------------------------------------------------------------------------------------------+
7643
7644+---------------------------------------------------------------------------------------------------------+
7645|:warning:`warning:` |nbsp| :diagtext:`indirection of non-volatile null pointer will be deleted, not trap`|
7646+---------------------------------------------------------------------------------------------------------+
7647
7648
7649-Wnull-pointer-arithmetic
7650-------------------------
7651**Diagnostic text:**
7652
7653+--------------------------------------------------------------------------------------------------------------------------------+
7654|:warning:`warning:` |nbsp| :diagtext:`arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension`|
7655+--------------------------------------------------------------------------------------------------------------------------------+
7656
7657+-------------------------------------------------------------------------------------------------------------+----------------------------------------------+
7658|:warning:`warning:` |nbsp| :diagtext:`performing pointer arithmetic on a null pointer has undefined behavior`|+--------------------------------------------+|
7659|                                                                                                             ||                                            ||
7660|                                                                                                             |+--------------------------------------------+|
7661|                                                                                                             || |nbsp| :diagtext:`if the offset is nonzero`||
7662|                                                                                                             |+--------------------------------------------+|
7663+-------------------------------------------------------------------------------------------------------------+----------------------------------------------+
7664
7665
7666-Wnullability
7667-------------
7668This diagnostic is enabled by default.
7669
7670**Diagnostic text:**
7671
7672+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7673|:warning:`warning:` |nbsp| :diagtext:`conflicting nullability specifier on parameter types,` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`|
7674+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7675
7676+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7677|:warning:`warning:` |nbsp| :diagtext:`conflicting nullability specifier on return types,` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`|
7678+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7679
7680+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
7681|:warning:`warning:` |nbsp| :diagtext:`nullability specifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`|
7682+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
7683
7684+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7685|:warning:`warning:` |nbsp| :diagtext:`synthesized setter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for null\_resettable property` |nbsp| :placeholder:`B` |nbsp| :diagtext:`does not handle nil`|
7686+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7687
7688+----------------------------------------------------------------------------------------------+
7689|:warning:`warning:` |nbsp| :diagtext:`duplicate nullability specifier` |nbsp| :placeholder:`A`|
7690+----------------------------------------------------------------------------------------------+
7691
7692
7693-Wnullability-completeness
7694--------------------------
7695This diagnostic is enabled by default.
7696
7697Also controls `-Wnullability-completeness-on-arrays`_.
7698
7699**Diagnostic text:**
7700
7701+---------------------------+----------------------------+-----------------------------------------------------------------------------------------------------------+
7702|:warning:`warning:` |nbsp| |+--------------------------+| |nbsp| :diagtext:`is missing a nullability type specifier (\_Nonnull, \_Nullable, or \_Null\_unspecified)`|
7703|                           ||:diagtext:`pointer`       ||                                                                                                           |
7704|                           |+--------------------------+|                                                                                                           |
7705|                           ||:diagtext:`block pointer` ||                                                                                                           |
7706|                           |+--------------------------+|                                                                                                           |
7707|                           ||:diagtext:`member pointer`||                                                                                                           |
7708|                           |+--------------------------+|                                                                                                           |
7709+---------------------------+----------------------------+-----------------------------------------------------------------------------------------------------------+
7710
7711
7712-Wnullability-completeness-on-arrays
7713------------------------------------
7714This diagnostic is enabled by default.
7715
7716**Diagnostic text:**
7717
7718+----------------------------------------------------------------------------------------------------------------------------------------------+
7719|:warning:`warning:` |nbsp| :diagtext:`array parameter is missing a nullability type specifier (\_Nonnull, \_Nullable, or \_Null\_unspecified)`|
7720+----------------------------------------------------------------------------------------------------------------------------------------------+
7721
7722
7723-Wnullability-declspec
7724----------------------
7725This diagnostic is an error by default, but the flag ``-Wno-nullability-declspec`` can be used to disable the error.
7726
7727**Diagnostic text:**
7728
7729+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------+-------------+
7730|: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:`?`|
7731|                                                                                                                                                                                                                                 ||:diagtext:`pointer`                ||             |
7732|                                                                                                                                                                                                                                 |+-----------------------------------+|             |
7733|                                                                                                                                                                                                                                 ||:diagtext:`block pointer`          ||             |
7734|                                                                                                                                                                                                                                 |+-----------------------------------+|             |
7735|                                                                                                                                                                                                                                 ||:diagtext:`member pointer`         ||             |
7736|                                                                                                                                                                                                                                 |+-----------------------------------+|             |
7737|                                                                                                                                                                                                                                 ||:diagtext:`function pointer`       ||             |
7738|                                                                                                                                                                                                                                 |+-----------------------------------+|             |
7739|                                                                                                                                                                                                                                 ||:diagtext:`member function pointer`||             |
7740|                                                                                                                                                                                                                                 |+-----------------------------------+|             |
7741+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------+-------------+
7742
7743
7744-Wnullability-extension
7745-----------------------
7746**Diagnostic text:**
7747
7748+---------------------------------------------------------------------------------------------------------------------------------+
7749|:warning:`warning:` |nbsp| :diagtext:`type nullability specifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a Clang extension`|
7750+---------------------------------------------------------------------------------------------------------------------------------+
7751
7752
7753-Wnullability-inferred-on-nested-type
7754-------------------------------------
7755This diagnostic is enabled by default.
7756
7757**Diagnostic text:**
7758
7759+--------------------------------------------------------------------------------------------+-----------------------+---------------------------------+
7760|:warning:`warning:` |nbsp| :diagtext:`inferring '\_Nonnull' for pointer type within` |nbsp| |+---------------------+| |nbsp| :diagtext:`is deprecated`|
7761|                                                                                            ||:diagtext:`array`    ||                                 |
7762|                                                                                            |+---------------------+|                                 |
7763|                                                                                            ||:diagtext:`reference`||                                 |
7764|                                                                                            |+---------------------+|                                 |
7765+--------------------------------------------------------------------------------------------+-----------------------+---------------------------------+
7766
7767
7768-Wnullable-to-nonnull-conversion
7769--------------------------------
7770**Diagnostic text:**
7771
7772+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7773|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from nullable pointer` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to non-nullable pointer type` |nbsp| :placeholder:`B`|
7774+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7775
7776
7777-Wobjc-autosynthesis-property-ivar-name-match
7778---------------------------------------------
7779This diagnostic is enabled by default.
7780
7781**Diagnostic text:**
7782
7783+---------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------------------------------------------------+
7784|: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`|
7785|                                                                                                                           ||                       ||                                                                                                                                 |
7786|                                                                                                                           |+-----------------------+|                                                                                                                                 |
7787|                                                                                                                           ||:diagtext:`synthesized`||                                                                                                                                 |
7788|                                                                                                                           |+-----------------------+|                                                                                                                                 |
7789+---------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------------------------------------------------+
7790
7791
7792-Wobjc-circular-container
7793-------------------------
7794This diagnostic is enabled by default.
7795
7796**Diagnostic text:**
7797
7798+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7799|:warning:`warning:` |nbsp| :diagtext:`adding` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`might cause circular dependency in container`|
7800+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7801
7802
7803-Wobjc-cocoa-api
7804----------------
7805Synonym for `-Wobjc-redundant-api-use`_.
7806
7807
7808-Wobjc-designated-initializers
7809------------------------------
7810This diagnostic is enabled by default.
7811
7812**Diagnostic text:**
7813
7814+-----------------------------------------------------------------------------------------------------------------------------------+
7815|:warning:`warning:` |nbsp| :diagtext:`designated initializer missing a 'super' call to a designated initializer of the super class`|
7816+-----------------------------------------------------------------------------------------------------------------------------------+
7817
7818+--------------------------------------------------------------------------------------------------+
7819|:warning:`warning:` |nbsp| :diagtext:`designated initializer invoked a non-designated initializer`|
7820+--------------------------------------------------------------------------------------------------+
7821
7822+--------------------------------------------------------------------------------------------------------------------+
7823|:warning:`warning:` |nbsp| :diagtext:`designated initializer should only invoke a designated initializer on 'super'`|
7824+--------------------------------------------------------------------------------------------------------------------+
7825
7826+------------------------------------------------------------------------------------------------------------------------------------------------------------+
7827|:warning:`warning:` |nbsp| :diagtext:`method override for the designated initializer of the superclass` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found`|
7828+------------------------------------------------------------------------------------------------------------------------------------------------------------+
7829
7830+-----------------------------------------------------------------------------------------------------------+
7831|:warning:`warning:` |nbsp| :diagtext:`convenience initializer missing a 'self' call to another initializer`|
7832+-----------------------------------------------------------------------------------------------------------+
7833
7834+----------------------------------------------------------------------------------------------------------+
7835|:warning:`warning:` |nbsp| :diagtext:`convenience initializer should not invoke an initializer on 'super'`|
7836+----------------------------------------------------------------------------------------------------------+
7837
7838
7839-Wobjc-flexible-array
7840---------------------
7841This diagnostic is enabled by default.
7842
7843**Diagnostic text:**
7844
7845+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7846|: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`|
7847+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7848
7849+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7850|: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`|
7851+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7852
7853
7854-Wobjc-forward-class-redefinition
7855---------------------------------
7856This diagnostic is enabled by default.
7857
7858**Diagnostic text:**
7859
7860+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
7861|:warning:`warning:` |nbsp| :diagtext:`redefinition of forward class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of a typedef name of an object type is ignored`|
7862+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
7863
7864
7865-Wobjc-interface-ivars
7866----------------------
7867**Diagnostic text:**
7868
7869+-------------------------------------------------------------------------------------------------------+
7870|:warning:`warning:` |nbsp| :diagtext:`declaration of instance variables in the interface is deprecated`|
7871+-------------------------------------------------------------------------------------------------------+
7872
7873
7874-Wobjc-literal-compare
7875----------------------
7876This diagnostic is enabled by default.
7877
7878Also controls `-Wobjc-string-compare`_.
7879
7880**Diagnostic text:**
7881
7882+-------------------------------------------------------------------+----------------------------------+------------------------------------------+
7883|:warning:`warning:` |nbsp| :diagtext:`direct comparison of` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`has undefined behavior`|
7884|                                                                   ||:diagtext:`an array literal`    ||                                          |
7885|                                                                   |+--------------------------------+|                                          |
7886|                                                                   ||:diagtext:`a dictionary literal`||                                          |
7887|                                                                   |+--------------------------------+|                                          |
7888|                                                                   ||:diagtext:`a numeric literal`   ||                                          |
7889|                                                                   |+--------------------------------+|                                          |
7890|                                                                   ||:diagtext:`a boxed expression`  ||                                          |
7891|                                                                   |+--------------------------------+|                                          |
7892|                                                                   ||                                ||                                          |
7893|                                                                   |+--------------------------------+|                                          |
7894+-------------------------------------------------------------------+----------------------------------+------------------------------------------+
7895
7896
7897-Wobjc-literal-conversion
7898-------------------------
7899This diagnostic is enabled by default.
7900
7901**Diagnostic text:**
7902
7903+-------------------------------------------------------------------------------------------------------------------------+
7904|:warning:`warning:` |nbsp| :diagtext:`implicit boolean conversion of Objective-C object literal always evaluates to true`|
7905+-------------------------------------------------------------------------------------------------------------------------+
7906
7907+-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------+
7908|:warning:`warning:` |nbsp| :diagtext:`object of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not compatible with` |nbsp| |+---------------------------------+| |nbsp| :placeholder:`C`|
7909|                                                                                                                               ||:diagtext:`array element type`   ||                        |
7910|                                                                                                                               |+---------------------------------+|                        |
7911|                                                                                                                               ||:diagtext:`dictionary key type`  ||                        |
7912|                                                                                                                               |+---------------------------------+|                        |
7913|                                                                                                                               ||:diagtext:`dictionary value type`||                        |
7914|                                                                                                                               |+---------------------------------+|                        |
7915+-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------+
7916
7917
7918-Wobjc-macro-redefinition
7919-------------------------
7920This diagnostic is enabled by default.
7921
7922**Diagnostic text:**
7923
7924+-------------------------------------------------------------------------------------------+
7925|:warning:`warning:` |nbsp| :diagtext:`ignoring redefinition of Objective-C qualifier macro`|
7926+-------------------------------------------------------------------------------------------+
7927
7928
7929-Wobjc-messaging-id
7930-------------------
7931**Diagnostic text:**
7932
7933+---------------------------------------------------------------+
7934|:warning:`warning:` |nbsp| :diagtext:`messaging unqualified id`|
7935+---------------------------------------------------------------+
7936
7937
7938-Wobjc-method-access
7939--------------------
7940This diagnostic is enabled by default.
7941
7942**Diagnostic text:**
7943
7944+---------------------------------------------------------------------------------------------------------------------------------------+
7945|:warning:`warning:` |nbsp| :diagtext:`class method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id')`|
7946+---------------------------------------------------------------------------------------------------------------------------------------+
7947
7948+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7949|: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:`?`|
7950+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7951
7952+------------------------------------------------------------------------------------------------------------------------------------------+
7953|:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id')`|
7954+------------------------------------------------------------------------------------------------------------------------------------------+
7955
7956+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7957|: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:`?`|
7958+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7959
7960+-------------------------------------------------------------------------------------------------------------------------------------------------------+
7961|:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found instead of class method` |nbsp| :placeholder:`B`|
7962+-------------------------------------------------------------------------------------------------------------------------------------------------------+
7963
7964+---------------------------------------------------------------------------------------------------------------------------------------------------------+
7965|:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is being used on 'Class' which is not in the root class`|
7966+---------------------------------------------------------------------------------------------------------------------------------------------------------+
7967
7968
7969-Wobjc-missing-property-synthesis
7970---------------------------------
7971**Diagnostic text:**
7972
7973+------------------------------------------------------------------------------------------------------------------+
7974|:warning:`warning:` |nbsp| :diagtext:`auto property synthesis is synthesizing property not explicitly synthesized`|
7975+------------------------------------------------------------------------------------------------------------------+
7976
7977
7978-Wobjc-missing-super-calls
7979--------------------------
7980This diagnostic is enabled by default.
7981
7982**Diagnostic text:**
7983
7984+-------------------------------------------------------------------------------------------------------------------+
7985|:warning:`warning:` |nbsp| :diagtext:`method possibly missing a \[super` |nbsp| :placeholder:`A`:diagtext:`\] call`|
7986+-------------------------------------------------------------------------------------------------------------------+
7987
7988
7989-Wobjc-multiple-method-names
7990----------------------------
7991This diagnostic is enabled by default.
7992
7993**Diagnostic text:**
7994
7995+--------------------------------------------------------------------------------------------------------------+
7996|:warning:`warning:` |nbsp| :diagtext:`multiple methods named` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found`|
7997+--------------------------------------------------------------------------------------------------------------+
7998
7999
8000-Wobjc-noncopy-retain-block-property
8001------------------------------------
8002This diagnostic is enabled by default.
8003
8004**Diagnostic text:**
8005
8006+--------------------------------------------------------------------------------------------------------------------+
8007|:warning:`warning:` |nbsp| :diagtext:`retain'ed block property does not copy the block - use copy attribute instead`|
8008+--------------------------------------------------------------------------------------------------------------------+
8009
8010
8011-Wobjc-nonunified-exceptions
8012----------------------------
8013This diagnostic is enabled by default.
8014
8015**Diagnostic text:**
8016
8017+-----------------------------------------------------------------------------------------------------------------------------+
8018|:warning:`warning:` |nbsp| :diagtext:`cannot catch an exception thrown with @throw in C++ in the non-unified exception model`|
8019+-----------------------------------------------------------------------------------------------------------------------------+
8020
8021
8022-Wobjc-property-assign-on-object-type
8023-------------------------------------
8024**Diagnostic text:**
8025
8026+--------------------------------------------------------------------------------------------------------------------------------------------+
8027|:warning:`warning:` |nbsp| :diagtext:`'assign' property of object type may become a dangling reference; consider using 'unsafe\_unretained'`|
8028+--------------------------------------------------------------------------------------------------------------------------------------------+
8029
8030
8031-Wobjc-property-implementation
8032------------------------------
8033This diagnostic is enabled by default.
8034
8035**Diagnostic text:**
8036
8037+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8038|: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`|
8039+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8040
8041+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8042|: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`|
8043+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8044
8045+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8046|: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`|
8047+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8048
8049+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8050|: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`|
8051+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8052
8053
8054-Wobjc-property-implicit-mismatch
8055---------------------------------
8056This diagnostic is enabled by default.
8057
8058**Diagnostic text:**
8059
8060+---------------------------------------------------------------------------------------------------------------------------------------+
8061|:warning:`warning:` |nbsp| :diagtext:`primary property declaration is implicitly strong while redeclaration in class extension is weak`|
8062+---------------------------------------------------------------------------------------------------------------------------------------+
8063
8064
8065-Wobjc-property-matches-cocoa-ownership-rule
8066--------------------------------------------
8067This diagnostic is enabled by default.
8068
8069**Diagnostic text:**
8070
8071+-------------------------------------------------------------------------------------------------------------+
8072|:warning:`warning:` |nbsp| :diagtext:`property follows Cocoa naming convention for returning 'owned' objects`|
8073+-------------------------------------------------------------------------------------------------------------+
8074
8075
8076-Wobjc-property-no-attribute
8077----------------------------
8078This diagnostic is enabled by default.
8079
8080**Diagnostic text:**
8081
8082+-----------------------------------------------------------------------------------------------------+
8083|:warning:`warning:` |nbsp| :diagtext:`default property attribute 'assign' not appropriate for object`|
8084+-----------------------------------------------------------------------------------------------------+
8085
8086+--------------------------------------------------------------------------------------------------------------------+
8087|:warning:`warning:` |nbsp| :diagtext:`no 'assign', 'retain', or 'copy' attribute is specified - 'assign' is assumed`|
8088+--------------------------------------------------------------------------------------------------------------------+
8089
8090
8091-Wobjc-property-synthesis
8092-------------------------
8093This diagnostic is enabled by default.
8094
8095**Diagnostic text:**
8096
8097+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8098|: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`|
8099+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8100
8101+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8102|: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`|
8103+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8104
8105+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8106|: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`|
8107+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8108
8109
8110-Wobjc-protocol-method-implementation
8111-------------------------------------
8112This diagnostic is enabled by default.
8113
8114**Diagnostic text:**
8115
8116+----------------------------------------------------------------------------------------------------------------------------+
8117|:warning:`warning:` |nbsp| :diagtext:`category is implementing a method which will also be implemented by its primary class`|
8118+----------------------------------------------------------------------------------------------------------------------------+
8119
8120
8121-Wobjc-protocol-property-synthesis
8122----------------------------------
8123This diagnostic is enabled by default.
8124
8125**Diagnostic text:**
8126
8127+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8128|:warning:`warning:` |nbsp| :diagtext:`auto property synthesis will not synthesize property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared in protocol` |nbsp| :placeholder:`B`|
8129+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8130
8131
8132-Wobjc-protocol-qualifiers
8133--------------------------
8134This diagnostic is enabled by default.
8135
8136**Diagnostic text:**
8137
8138+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8139|:warning:`warning:` |nbsp| :diagtext:`parameterized class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`already conforms to the protocols listed; did you forget a '\*'?`|
8140+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8141
8142
8143-Wobjc-readonly-with-setter-property
8144------------------------------------
8145This diagnostic is enabled by default.
8146
8147**Diagnostic text:**
8148
8149+-----------------------------------------------------------------------------------------+
8150|:warning:`warning:` |nbsp| :diagtext:`setter cannot be specified for a readonly property`|
8151+-----------------------------------------------------------------------------------------+
8152
8153
8154-Wobjc-redundant-api-use
8155------------------------
8156Synonym for `-Wobjc-redundant-literal-use`_.
8157
8158
8159-Wobjc-redundant-literal-use
8160----------------------------
8161This diagnostic is enabled by default.
8162
8163**Diagnostic text:**
8164
8165+-------------------------------------------------------------------------------------------------------------------+
8166|:warning:`warning:` |nbsp| :diagtext:`using` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with a literal is redundant`|
8167+-------------------------------------------------------------------------------------------------------------------+
8168
8169
8170-Wobjc-root-class
8171-----------------
8172This diagnostic is enabled by default.
8173
8174**Diagnostic text:**
8175
8176+-------------------------------------------------------------------------------------------------------------------------------+
8177|:warning:`warning:` |nbsp| :diagtext:`class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`defined without specifying a base class`|
8178+-------------------------------------------------------------------------------------------------------------------------------+
8179
8180
8181-Wobjc-string-compare
8182---------------------
8183This diagnostic is enabled by default.
8184
8185**Diagnostic text:**
8186
8187+---------------------------------------------------------------------------------------------------+
8188|:warning:`warning:` |nbsp| :diagtext:`direct comparison of a string literal has undefined behavior`|
8189+---------------------------------------------------------------------------------------------------+
8190
8191
8192-Wobjc-string-concatenation
8193---------------------------
8194This diagnostic is enabled by default.
8195
8196**Diagnostic text:**
8197
8198+-------------------------------------------------------------------------------------------------------------------------+
8199|:warning:`warning:` |nbsp| :diagtext:`concatenated NSString literal for an NSArray expression - possibly missing a comma`|
8200+-------------------------------------------------------------------------------------------------------------------------+
8201
8202
8203-Wobjc-unsafe-perform-selector
8204------------------------------
8205This diagnostic is enabled by default.
8206
8207**Diagnostic text:**
8208
8209+-------------------------------------------------------------------------------------------------------------------+--------------------+------------------------+
8210|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with selectors that return a` |nbsp| |+------------------+| |nbsp| :diagtext:`type`|
8211|                                                                                                                   ||:diagtext:`struct`||                        |
8212|                                                                                                                   |+------------------+|                        |
8213|                                                                                                                   ||:diagtext:`union` ||                        |
8214|                                                                                                                   |+------------------+|                        |
8215|                                                                                                                   ||:diagtext:`vector`||                        |
8216|                                                                                                                   |+------------------+|                        |
8217+-------------------------------------------------------------------------------------------------------------------+--------------------+------------------------+
8218
8219
8220-Wodr
8221-----
8222This diagnostic is enabled by default.
8223
8224**Diagnostic text:**
8225
8226+--------------------------------------------------------------------------------------------------------------------------------------------------+
8227|:warning:`warning:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has incompatible definitions in different translation units`|
8228+--------------------------------------------------------------------------------------------------------------------------------------------------+
8229
8230
8231-Wold-style-cast
8232----------------
8233**Diagnostic text:**
8234
8235+------------------------------------------------------------+
8236|:warning:`warning:` |nbsp| :diagtext:`use of old-style cast`|
8237+------------------------------------------------------------+
8238
8239
8240-Wold-style-definition
8241----------------------
8242This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
8243
8244-Wopencl-unsupported-rgba
8245-------------------------
8246This diagnostic is enabled by default.
8247
8248**Diagnostic text:**
8249
8250+----------------------------------------------------------------------------------------------------------------------------+
8251|:warning:`warning:` |nbsp| :diagtext:`vector component name '`:placeholder:`A`:diagtext:`' is an OpenCL version 2.2 feature`|
8252+----------------------------------------------------------------------------------------------------------------------------+
8253
8254
8255-Wopenmp-clauses
8256----------------
8257This diagnostic is enabled by default.
8258
8259**Diagnostic text:**
8260
8261+-------------------------------------------------------------------------------------------------------------------------+
8262|:warning:`warning:` |nbsp| :diagtext:`aligned clause will be ignored because the requested alignment is not a power of 2`|
8263+-------------------------------------------------------------------------------------------------------------------------+
8264
8265+---------------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------+
8266|:warning:`warning:` |nbsp| :diagtext:`zero linear step (`:placeholder:`A` |nbsp| |+-------------------------------------------------+|:diagtext:`should probably be const)`|
8267|                                                                                 ||                                                 ||                                     |
8268|                                                                                 |+-------------------------------------------------+|                                     |
8269|                                                                                 ||:diagtext:`and other variables in clause` |nbsp| ||                                     |
8270|                                                                                 |+-------------------------------------------------+|                                     |
8271+---------------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------+
8272
8273
8274-Wopenmp-loop-form
8275------------------
8276This diagnostic is enabled by default.
8277
8278**Diagnostic text:**
8279
8280+-----------------------------------------------------------------------------------------------------------------------------------------+
8281|:warning:`warning:` |nbsp| :diagtext:`initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')`|
8282+-----------------------------------------------------------------------------------------------------------------------------------------+
8283
8284+-----------------------------------------------------------------------------------------------------------------------------+
8285|:warning:`warning:` |nbsp| :diagtext:`OpenMP loop iteration variable cannot have more than 64 bits size and will be narrowed`|
8286+-----------------------------------------------------------------------------------------------------------------------------+
8287
8288
8289-Wopenmp-target
8290---------------
8291This diagnostic is enabled by default.
8292
8293**Diagnostic text:**
8294
8295+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8296|:warning:`warning:` |nbsp| :diagtext:`The OpenMP offloading target '`:placeholder:`A`:diagtext:`' is similar to target '`:placeholder:`B`:diagtext:`' already specified - will be ignored.`|
8297+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8298
8299+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8300|:warning:`warning:` |nbsp| :diagtext:`No library '`:placeholder:`A`:diagtext:`' found in the default clang lib directory or in LIBRARY\_PATH. Expect degraded performance due to no inlining of runtime functions on target devices.`|
8301+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8302
8303+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8304|:warning:`warning:` |nbsp| :diagtext:`Non-trivial type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is mapped, only trivial types are guaranteed to be mapped correctly`|
8305+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8306
8307+-----------------------------------------------------------------------------------------------+
8308|:warning:`warning:` |nbsp| :diagtext:`declaration is not declared in any declare target region`|
8309+-----------------------------------------------------------------------------------------------+
8310
8311
8312-Woption-ignored
8313----------------
8314This diagnostic is enabled by default.
8315
8316**Diagnostic text:**
8317
8318+------------------------------------------------------------------------------------------------------------------------------------------+
8319|:warning:`warning:` |nbsp| :diagtext:`option '-ffine-grained-bitfield-accesses' cannot be enabled together with a sanitizer; flag ignored`|
8320+------------------------------------------------------------------------------------------------------------------------------------------+
8321
8322+-------------------------------------------------------------------------------------------------------------------------------+
8323|:warning:`warning:` |nbsp| :diagtext:`The '`:placeholder:`A`:diagtext:`' architecture does not support -moutline; flag ignored`|
8324+-------------------------------------------------------------------------------------------------------------------------------+
8325
8326+----------------------------------------------------------------------------------------------------------------------------+
8327|:warning:`warning:` |nbsp| :diagtext:`option '`:placeholder:`A`:diagtext:`' was ignored by the PS4 toolchain, using '-fPIC'`|
8328+----------------------------------------------------------------------------------------------------------------------------+
8329
8330+-------------------------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+
8331|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mlong-calls' option as it is not currently supported with` |nbsp| |+-----------------------------------------+|:diagtext:`-mabicalls`|
8332|                                                                                                                   ||                                         ||                      |
8333|                                                                                                                   |+-----------------------------------------+|                      |
8334|                                                                                                                   ||:diagtext:`the implicit usage of` |nbsp| ||                      |
8335|                                                                                                                   |+-----------------------------------------+|                      |
8336+-------------------------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+
8337
8338+-----------------------------------------------------------------------------------------------------------------------+-------------------------------+----------------------------------------------+
8339|:warning:`warning:` |nbsp| :diagtext:`ignoring '`:placeholder:`A`:diagtext:`' option as it cannot be used with` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`-mabicalls and the N64 ABI`|
8340|                                                                                                                       ||:diagtext:`implicit usage of`||                                              |
8341|                                                                                                                       |+-----------------------------+|                                              |
8342|                                                                                                                       ||                             ||                                              |
8343|                                                                                                                       |+-----------------------------+|                                              |
8344+-----------------------------------------------------------------------------------------------------------------------+-------------------------------+----------------------------------------------+
8345
8346+----------------------------------------------------------------------------------------------+
8347|:warning:`warning:` |nbsp| :diagtext:`auto-vectorization requires HVX, use -mhvx to enable it`|
8348+----------------------------------------------------------------------------------------------+
8349
8350
8351-Wordered-compare-function-pointers
8352-----------------------------------
8353This diagnostic is enabled by default.
8354
8355**Diagnostic text:**
8356
8357+------------------------------------------------------------------------------------------------------------------------------------------------------------+
8358|:warning:`warning:` |nbsp| :diagtext:`ordered comparison of function pointers (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`|
8359+------------------------------------------------------------------------------------------------------------------------------------------------------------+
8360
8361
8362-Wout-of-line-declaration
8363-------------------------
8364This diagnostic is an error by default, but the flag ``-Wno-out-of-line-declaration`` can be used to disable the error.
8365
8366**Diagnostic text:**
8367
8368+-------------------------------------------------------------------------------------------+
8369|:error:`error:` |nbsp| :diagtext:`out-of-line declaration of a member must be a definition`|
8370+-------------------------------------------------------------------------------------------+
8371
8372
8373-Wout-of-scope-function
8374-----------------------
8375This diagnostic is enabled by default.
8376
8377**Diagnostic text:**
8378
8379+-------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------+
8380|:warning:`warning:` |nbsp| :diagtext:`use of out-of-scope declaration of` |nbsp| :placeholder:`A`|+-------------------------------------------------------------------------------------+|
8381|                                                                                                 ||                                                                                     ||
8382|                                                                                                 |+-------------------------------------------------------------------------------------+|
8383|                                                                                                 || |nbsp| :diagtext:`whose type is not compatible with that of an implicit declaration`||
8384|                                                                                                 |+-------------------------------------------------------------------------------------+|
8385+-------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------+
8386
8387
8388-Wover-aligned
8389--------------
8390**Diagnostic text:**
8391
8392+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8393|: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`|
8394+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8395
8396
8397-Woverflow
8398----------
8399This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
8400
8401-Woverlength-strings
8402--------------------
8403**Diagnostic text:**
8404
8405+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------+
8406|: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`|
8407|                                                                                                                                                                                         ||:diagtext:`C90`    ||                                                     |
8408|                                                                                                                                                                                         |+-------------------+|                                                     |
8409|                                                                                                                                                                                         ||:diagtext:`ISO C99`||                                                     |
8410|                                                                                                                                                                                         |+-------------------+|                                                     |
8411|                                                                                                                                                                                         ||:diagtext:`C++`    ||                                                     |
8412|                                                                                                                                                                                         |+-------------------+|                                                     |
8413+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------+
8414
8415
8416-Woverloaded-shift-op-parentheses
8417---------------------------------
8418This diagnostic is enabled by default.
8419
8420**Diagnostic text:**
8421
8422+------------------------------------------------------------------+----------------+------------------------------------------------------------------+
8423|:warning:`warning:` |nbsp| :diagtext:`overloaded operator` |nbsp| |+--------------+| |nbsp| :diagtext:`has higher precedence than comparison operator`|
8424|                                                                  ||:diagtext:`>>`||                                                                  |
8425|                                                                  |+--------------+|                                                                  |
8426|                                                                  ||:diagtext:`<<`||                                                                  |
8427|                                                                  |+--------------+|                                                                  |
8428+------------------------------------------------------------------+----------------+------------------------------------------------------------------+
8429
8430
8431-Woverloaded-virtual
8432--------------------
8433**Diagnostic text:**
8434
8435+-----------------------------------------------------------------------------------------------+-----------------------+
8436|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`hides overloaded virtual` |nbsp| |+---------------------+|
8437|                                                                                               ||:diagtext:`function` ||
8438|                                                                                               |+---------------------+|
8439|                                                                                               ||:diagtext:`functions`||
8440|                                                                                               |+---------------------+|
8441+-----------------------------------------------------------------------------------------------+-----------------------+
8442
8443
8444-Woverride-init
8445---------------
8446Synonym for `-Winitializer-overrides`_.
8447
8448
8449-Woverride-module
8450-----------------
8451This diagnostic is enabled by default.
8452
8453**Diagnostic text:**
8454
8455+-------------------------------------------------------------------------------------------------------+
8456|:warning:`warning:` |nbsp| :diagtext:`overriding the module target triple with` |nbsp| :placeholder:`A`|
8457+-------------------------------------------------------------------------------------------------------+
8458
8459
8460-Woverriding-method-mismatch
8461----------------------------
8462**Diagnostic text:**
8463
8464+-------------------------------------------------------------------------------------------------------------------------------------------+
8465|:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on parameter type in declaration of` |nbsp| :placeholder:`A`|
8466+-------------------------------------------------------------------------------------------------------------------------------------------+
8467
8468+------------------------------------------------------------------------------------------------------------+
8469|:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in declaration of` |nbsp| :placeholder:`A`|
8470+------------------------------------------------------------------------------------------------------------+
8471
8472+----------------------------------------------------------------------------------------------------------------------------------------+
8473|:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on return type in declaration of` |nbsp| :placeholder:`A`|
8474+----------------------------------------------------------------------------------------------------------------------------------------+
8475
8476+--------------------------------------------------------------------------------------------------------+
8477|:warning:`warning:` |nbsp| :diagtext:`conflicting return type in declaration of` |nbsp| :placeholder:`A`|
8478+--------------------------------------------------------------------------------------------------------+
8479
8480+--------------------------------------------------------------------------------------------------------+
8481|:warning:`warning:` |nbsp| :diagtext:`conflicting variadic declaration of method and its implementation`|
8482+--------------------------------------------------------------------------------------------------------+
8483
8484+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8485|:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in declaration of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
8486+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8487
8488+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8489|:warning:`warning:` |nbsp| :diagtext:`conflicting return type in declaration of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
8490+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8491
8492
8493-Woverriding-t-option
8494---------------------
8495This diagnostic is enabled by default.
8496
8497**Diagnostic text:**
8498
8499+---------------------------------------------------------------------------------------------------------------------------+
8500|:warning:`warning:` |nbsp| :diagtext:`overriding '`:placeholder:`A`:diagtext:`' option with '`:placeholder:`B`:diagtext:`'`|
8501+---------------------------------------------------------------------------------------------------------------------------+
8502
8503
8504-Wpacked
8505--------
8506**Diagnostic text:**
8507
8508+--------------------------------------------------------------------------------------------------+
8509|:warning:`warning:` |nbsp| :diagtext:`packed attribute is unnecessary for` |nbsp| :placeholder:`A`|
8510+--------------------------------------------------------------------------------------------------+
8511
8512
8513-Wpadded
8514--------
8515**Diagnostic text:**
8516
8517+------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+------------------------------------------------+
8518|:warning:`warning:` |nbsp| :diagtext:`padding` |nbsp| |+---------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with` |nbsp| :placeholder:`C` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to align anonymous bit-field`|
8519|                                                      ||:diagtext:`struct`   ||                                                                                ||:diagtext:`byte`|||             ||                                                |
8520|                                                      |+---------------------+|                                                                                |+----------------+|+-------------+|                                                |
8521|                                                      ||:diagtext:`interface`||                                                                                ||:diagtext:`bit` |||:diagtext:`s`||                                                |
8522|                                                      |+---------------------+|                                                                                |+----------------+|+-------------+|                                                |
8523|                                                      ||:diagtext:`class`    ||                                                                                |                  |               |                                                |
8524|                                                      |+---------------------+|                                                                                |                  |               |                                                |
8525+------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+------------------------------------------------+
8526
8527+------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+----------------------------------------------------+
8528|:warning:`warning:` |nbsp| :diagtext:`padding` |nbsp| |+---------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with` |nbsp| :placeholder:`C` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to align` |nbsp| :placeholder:`E`|
8529|                                                      ||:diagtext:`struct`   ||                                                                                ||:diagtext:`byte`|||             ||                                                    |
8530|                                                      |+---------------------+|                                                                                |+----------------+|+-------------+|                                                    |
8531|                                                      ||:diagtext:`interface`||                                                                                ||:diagtext:`bit` |||:diagtext:`s`||                                                    |
8532|                                                      |+---------------------+|                                                                                |+----------------+|+-------------+|                                                    |
8533|                                                      ||:diagtext:`class`    ||                                                                                |                  |               |                                                    |
8534|                                                      |+---------------------+|                                                                                |                  |               |                                                    |
8535+------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+----------------------------------------------------+
8536
8537+--------------------------------------------------------------------------------------------------------------------------------------+------------------+---------------+-----------------------------------------+
8538|:warning:`warning:` |nbsp| :diagtext:`padding size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with` |nbsp| :placeholder:`B` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to alignment boundary`|
8539|                                                                                                                                      ||:diagtext:`byte`|||             ||                                         |
8540|                                                                                                                                      |+----------------+|+-------------+|                                         |
8541|                                                                                                                                      ||:diagtext:`bit` |||:diagtext:`s`||                                         |
8542|                                                                                                                                      |+----------------+|+-------------+|                                         |
8543+--------------------------------------------------------------------------------------------------------------------------------------+------------------+---------------+-----------------------------------------+
8544
8545
8546-Wparentheses
8547-------------
8548This diagnostic is enabled by default.
8549
8550Also controls `-Wbitwise-op-parentheses`_, `-Wdangling-else`_, `-Wlogical-not-parentheses`_, `-Wlogical-op-parentheses`_, `-Woverloaded-shift-op-parentheses`_, `-Wparentheses-equality`_, `-Wshift-op-parentheses`_.
8551
8552**Diagnostic text:**
8553
8554+-----------------------------------------------------------------------------------------------------------+
8555|:warning:`warning:` |nbsp| :diagtext:`using the result of an assignment as a condition without parentheses`|
8556+-----------------------------------------------------------------------------------------------------------+
8557
8558+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8559|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has lower precedence than` |nbsp| :placeholder:`B`:diagtext:`;` |nbsp| :placeholder:`B` |nbsp| :diagtext:`will be evaluated first`|
8560+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8561
8562+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8563|:warning:`warning:` |nbsp| :diagtext:`operator '?:' has lower precedence than '`:placeholder:`A`:diagtext:`'; '`:placeholder:`A`:diagtext:`' will be evaluated first`|
8564+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8565
8566
8567-Wparentheses-equality
8568----------------------
8569This diagnostic is enabled by default.
8570
8571**Diagnostic text:**
8572
8573+--------------------------------------------------------------------------------------+
8574|:warning:`warning:` |nbsp| :diagtext:`equality comparison with extraneous parentheses`|
8575+--------------------------------------------------------------------------------------+
8576
8577
8578-Wpartial-availability
8579----------------------
8580Synonym for `-Wunguarded-availability`_.
8581
8582
8583-Rpass
8584------
8585**Diagnostic text:**
8586
8587The text of this diagnostic is not controlled by Clang.
8588
8589
8590-Rpass-analysis
8591---------------
8592**Diagnostic text:**
8593
8594The text of this diagnostic is not controlled by Clang.
8595
8596+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8597|: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!`|
8598+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8599
8600+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8601|: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'.`|
8602+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8603
8604
8605-Wpass-failed
8606-------------
8607This diagnostic is enabled by default.
8608
8609**Diagnostic text:**
8610
8611The text of this diagnostic is not controlled by Clang.
8612
8613
8614-Rpass-missed
8615-------------
8616**Diagnostic text:**
8617
8618The text of this diagnostic is not controlled by Clang.
8619
8620
8621-Wpch-date-time
8622---------------
8623This diagnostic is enabled by default.
8624
8625**Diagnostic text:**
8626
8627+---------------------------+--------------------------------+-----------------------------------------------------+
8628|:warning:`warning:` |nbsp| |+------------------------------+| |nbsp| :diagtext:`uses \_\_DATE\_\_ or \_\_TIME\_\_`|
8629|                           ||:diagtext:`precompiled header`||                                                     |
8630|                           |+------------------------------+|                                                     |
8631|                           ||:diagtext:`module`            ||                                                     |
8632|                           |+------------------------------+|                                                     |
8633+---------------------------+--------------------------------+-----------------------------------------------------+
8634
8635
8636-Wpedantic
8637----------
8638Also 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`_, `-Wfixed-enum-extension`_, `-Wflexible-array-extensions`_, `-Wfour-char-constants`_, `-Wgnu-anonymous-struct`_, `-Wgnu-auto-type`_, `-Wgnu-binary-literal`_, `-Wgnu-case-range`_, `-Wgnu-complex-integer`_, `-Wgnu-compound-literal-initializer`_, `-Wgnu-conditional-omitted-operand`_, `-Wgnu-empty-initializer`_, `-Wgnu-empty-struct`_, `-Wgnu-flexible-array-initializer`_, `-Wgnu-flexible-array-union-member`_, `-Wgnu-folding-constant`_, `-Wgnu-imaginary-constant`_, `-Wgnu-include-next`_, `-Wgnu-label-as-value`_, `-Wgnu-redeclared-enum`_, `-Wgnu-statement-expression`_, `-Wgnu-union-cast`_, `-Wgnu-zero-line-directive`_, `-Wgnu-zero-variadic-macro-arguments`_, `-Wimport-preprocessor-directive-pedantic`_, `-Wkeyword-macro`_, `-Wlanguage-extension-token`_, `-Wlong-long`_, `-Wmicrosoft-charize`_, `-Wmicrosoft-comment-paste`_, `-Wmicrosoft-cpp-macro`_, `-Wmicrosoft-end-of-file`_, `-Wmicrosoft-enum-value`_, `-Wmicrosoft-fixed-enum`_, `-Wmicrosoft-flexible-array`_, `-Wmicrosoft-redeclare-static`_, `-Wnested-anon-types`_, `-Wnullability-extension`_, `-Woverlength-strings`_, `-Wretained-language-linkage`_, `-Wundefined-internal-type`_, `-Wvla-extension`_, `-Wzero-length-array`_.
8639
8640**Diagnostic text:**
8641
8642+-----------------------------------------------------------------------------------------------------+
8643|:warning:`warning:` |nbsp| :diagtext:`duplicate '`:placeholder:`A`:diagtext:`' declaration specifier`|
8644+-----------------------------------------------------------------------------------------------------+
8645
8646+------------------------------------------------------------------------+
8647|:warning:`warning:` |nbsp| :diagtext:`'enable\_if' is a clang extension`|
8648+------------------------------------------------------------------------+
8649
8650+--------------------------------------------------------------------------+
8651|:warning:`warning:` |nbsp| :diagtext:`'diagnose\_if' is a clang extension`|
8652+--------------------------------------------------------------------------+
8653
8654+--------------------------------------------------------------------------------+
8655|:warning:`warning:` |nbsp| :diagtext:`designated initializers are a C99 feature`|
8656+--------------------------------------------------------------------------------+
8657
8658+--------------------------------------------------------------------------------------------+
8659|:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow 'main' to be used by a program`|
8660+--------------------------------------------------------------------------------------------+
8661
8662+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+
8663|: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| |+---------------------+|
8664|                                                                                                                                                                                              ||:diagtext:`private`  ||
8665|                                                                                                                                                                                              |+---------------------+|
8666|                                                                                                                                                                                              ||:diagtext:`protected`||
8667|                                                                                                                                                                                              |+---------------------+|
8668+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+
8669
8670+--------------------------------------------------------+--------------------+------------------------------------------------------------+
8671|:warning:`warning:` |nbsp| :diagtext:`anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`cannot be '`:placeholder:`B`:diagtext:`'`|
8672|                                                        ||:diagtext:`struct`||                                                            |
8673|                                                        |+------------------+|                                                            |
8674|                                                        ||:diagtext:`union` ||                                                            |
8675|                                                        |+------------------+|                                                            |
8676+--------------------------------------------------------+--------------------+------------------------------------------------------------+
8677
8678+--------------------------------------------------------------------+------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
8679|: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`|
8680|                                                                    ||:diagtext:`copying variable`                        ||                                                                                                                                          |
8681|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
8682|                                                                    ||:diagtext:`copying parameter`                       ||                                                                                                                                          |
8683|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
8684|                                                                    ||:diagtext:`returning object`                        ||                                                                                                                                          |
8685|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
8686|                                                                    ||:diagtext:`initializing statement expression result`||                                                                                                                                          |
8687|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
8688|                                                                    ||:diagtext:`throwing object`                         ||                                                                                                                                          |
8689|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
8690|                                                                    ||:diagtext:`copying member subobject`                ||                                                                                                                                          |
8691|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
8692|                                                                    ||:diagtext:`copying array element`                   ||                                                                                                                                          |
8693|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
8694|                                                                    ||:diagtext:`allocating object`                       ||                                                                                                                                          |
8695|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
8696|                                                                    ||:diagtext:`copying temporary`                       ||                                                                                                                                          |
8697|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
8698|                                                                    ||:diagtext:`initializing base subobject`             ||                                                                                                                                          |
8699|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
8700|                                                                    ||:diagtext:`initializing vector element`             ||                                                                                                                                          |
8701|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
8702|                                                                    ||:diagtext:`capturing value`                         ||                                                                                                                                          |
8703|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
8704+--------------------------------------------------------------------+------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
8705
8706+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8707|:warning:`warning:` |nbsp| :diagtext:`ISO C++ standards before C++17 do not allow new expression for type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to use list-initialization`|
8708+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8709
8710+--------------------------------------------------------------------------------------------------------------------------------------+
8711|:warning:`warning:` |nbsp| :diagtext:`parameter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`was not declared, defaulting to type 'int'`|
8712+--------------------------------------------------------------------------------------------------------------------------------------+
8713
8714+--------------------------------------------------------------------------------------------------------------------------+
8715|:warning:`warning:` |nbsp| :diagtext:`invoking a pointer to a 'const &' member function on an rvalue is a C++2a extension`|
8716+--------------------------------------------------------------------------------------------------------------------------+
8717
8718+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8719|:warning:`warning:` |nbsp| :diagtext:`qualifier in explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires a template-id (a typedef is not permitted)`|
8720+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8721
8722+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
8723|:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`|
8724|                                                     ||:diagtext:`function`||                                                                                               |
8725|                                                     |+--------------------+|                                                                                               |
8726|                                                     ||:diagtext:`variable`||                                                                                               |
8727|                                                     |+--------------------+|                                                                                               |
8728+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
8729
8730+---------------------------------------------------------------------------------------+
8731|:warning:`warning:` |nbsp| :diagtext:`ISO C forbids forward references to 'enum' types`|
8732+---------------------------------------------------------------------------------------+
8733
8734+----------------------------------------------------------------------------------------------------------------------------------------------+-------------------+-------------+
8735|:warning:`warning:` |nbsp| :diagtext:`ISO C restricts enumerator values to range of 'int' (`:placeholder:`A` |nbsp| :diagtext:`is too` |nbsp| |+-----------------+|:diagtext:`)`|
8736|                                                                                                                                              ||:diagtext:`small`||             |
8737|                                                                                                                                              |+-----------------+|             |
8738|                                                                                                                                              ||:diagtext:`large`||             |
8739|                                                                                                                                              |+-----------------+|             |
8740+----------------------------------------------------------------------------------------------------------------------------------------------+-------------------+-------------+
8741
8742+--------------------------------------------------------------------------------------------------+
8743|:warning:`warning:` |nbsp| :diagtext:`size of static array must be an integer constant expression`|
8744+--------------------------------------------------------------------------------------------------+
8745
8746+-----------------------------------------------------------------------------------------------+
8747|:warning:`warning:` |nbsp| :diagtext:`initializer for aggregate is not a compile-time constant`|
8748+-----------------------------------------------------------------------------------------------+
8749
8750+-------------------------------------------------------------------------------+
8751|:warning:`warning:` |nbsp| :diagtext:`flexible array members are a C99 feature`|
8752+-------------------------------------------------------------------------------+
8753
8754+---------------------------------------------------------------+-----------------------------------------------------+--------------------------------+
8755|:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------------------------------------+|:diagtext:`' to a function type`|
8756|                                                               ||:diagtext:`sizeof`                                 ||                                |
8757|                                                               |+---------------------------------------------------+|                                |
8758|                                                               ||:diagtext:`alignof`                                ||                                |
8759|                                                               |+---------------------------------------------------+|                                |
8760|                                                               ||:diagtext:`vec\_step`                              ||                                |
8761|                                                               |+---------------------------------------------------+|                                |
8762|                                                               ||:diagtext:`\_\_builtin\_omp\_required\_simd\_align`||                                |
8763|                                                               |+---------------------------------------------------+|                                |
8764|                                                               ||:diagtext:`\_\_alignof`                            ||                                |
8765|                                                               |+---------------------------------------------------+|                                |
8766+---------------------------------------------------------------+-----------------------------------------------------+--------------------------------+
8767
8768+---------------------------------------------------------------+-----------------------------------------------------+----------------------------+
8769|:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------------------------------------+|:diagtext:`' to a void type`|
8770|                                                               ||:diagtext:`sizeof`                                 ||                            |
8771|                                                               |+---------------------------------------------------+|                            |
8772|                                                               ||:diagtext:`alignof`                                ||                            |
8773|                                                               |+---------------------------------------------------+|                            |
8774|                                                               ||:diagtext:`vec\_step`                              ||                            |
8775|                                                               |+---------------------------------------------------+|                            |
8776|                                                               ||:diagtext:`\_\_builtin\_omp\_required\_simd\_align`||                            |
8777|                                                               |+---------------------------------------------------+|                            |
8778|                                                               ||:diagtext:`\_\_alignof`                            ||                            |
8779|                                                               |+---------------------------------------------------+|                            |
8780+---------------------------------------------------------------+-----------------------------------------------------+----------------------------+
8781
8782+-------------------------------------------------------------------------------------------+
8783|:warning:`warning:` |nbsp| :diagtext:`ISO C90 does not allow subscripting non-lvalue array`|
8784+-------------------------------------------------------------------------------------------+
8785
8786+----------------------------------------------------------------------------------------+
8787|:warning:`warning:` |nbsp| :diagtext:`subscript of a pointer to void is a GNU extension`|
8788+----------------------------------------------------------------------------------------+
8789
8790+-------------------------------------------------------------------------------------------------------+
8791|:warning:`warning:` |nbsp| :diagtext:`ISO C forbids taking the address of an expression of type 'void'`|
8792+-------------------------------------------------------------------------------------------------------+
8793
8794+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8795|:warning:`warning:` |nbsp| :diagtext:`ordered comparison between pointer and zero (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`) is an extension`|
8796+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8797
8798+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8799|:warning:`warning:` |nbsp| :diagtext:`equality comparison between function pointer and void pointer (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`|
8800+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8801
8802+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+
8803|:warning:`warning:` |nbsp| :diagtext:`arithmetic on`|+---------------------+| |nbsp| :diagtext:`pointer`|+-------------+| |nbsp| :diagtext:`to void is a GNU extension`|
8804|                                                    || |nbsp| :diagtext:`a`||                           ||             ||                                              |
8805|                                                    |+---------------------+|                           |+-------------+|                                              |
8806|                                                    ||                     ||                           ||:diagtext:`s`||                                              |
8807|                                                    |+---------------------+|                           |+-------------+|                                              |
8808+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+
8809
8810+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+
8811|: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`|
8812|                                                    || |nbsp| :diagtext:`a`||                           ||             ||                      || |nbsp| :diagtext:`the`||                                 ||             ||                        ||                                                 ||                                      |
8813|                                                    |+---------------------+|                           |+-------------+|                      |+-----------------------+|                                 |+-------------+|                        |+-------------------------------------------------+|                                      |
8814|                                                    ||                     ||                           ||:diagtext:`s`||                      ||                       ||                                 ||:diagtext:`s`||                        ||+-----------------------------------------------+||                                      |
8815|                                                    |+---------------------+|                           |+-------------+|                      |+-----------------------+|                                 |+-------------+|                        ||| |nbsp| :diagtext:`and` |nbsp| :placeholder:`D`|||                                      |
8816|                                                    |                       |                           |               |                      |                         |                                 |               |                        ||+-----------------------------------------------+||                                      |
8817|                                                    |                       |                           |               |                      |                         |                                 |               |                        |+-------------------------------------------------+|                                      |
8818+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+
8819
8820+-----------------------------------------------------------------------------------------------------------------------+
8821|:warning:`warning:` |nbsp| :diagtext:`ISO C does not support '++'/'--' on complex integer type` |nbsp| :placeholder:`A`|
8822+-----------------------------------------------------------------------------------------------------------------------+
8823
8824+--------------------------------------------------------------------------------------------------------------------+
8825|:warning:`warning:` |nbsp| :diagtext:`ISO C does not support '~' for complex conjugation of` |nbsp| :placeholder:`A`|
8826+--------------------------------------------------------------------------------------------------------------------+
8827
8828+------------------------------------------------------------------------------------------------------------+
8829|:warning:`warning:` |nbsp| :diagtext:`complex numbers are an extension in a freestanding C99 implementation`|
8830+------------------------------------------------------------------------------------------------------------+
8831
8832+-------------------------------------------------------------------------------------------------------------+
8833|:warning:`warning:` |nbsp| :diagtext:`cast between pointer-to-function and pointer-to-object is an extension`|
8834+-------------------------------------------------------------------------------------------------------------+
8835
8836+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+
8837|: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`|
8838|                                                                                                                                                   ||:diagtext:`integral`   ||                                                                                        |
8839|                                                                                                                                                   |+-----------------------+|                                                                                        |
8840|                                                                                                                                                   ||:diagtext:`enumeration`||                                                                                        |
8841|                                                                                                                                                   |+-----------------------+|                                                                                        |
8842+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+
8843
8844+---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+
8845|:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`converts between void pointer and function pointer`|
8846|                           ||:diagtext:`assigning to different types`                      ||                                                                      |
8847|                           |+--------------------------------------------------------------+|                                                                      |
8848|                           ||:diagtext:`passing to parameter of different type`            ||                                                                      |
8849|                           |+--------------------------------------------------------------+|                                                                      |
8850|                           ||:diagtext:`returning from function with different return type`||                                                                      |
8851|                           |+--------------------------------------------------------------+|                                                                      |
8852|                           ||:diagtext:`converting between types`                          ||                                                                      |
8853|                           |+--------------------------------------------------------------+|                                                                      |
8854|                           ||:diagtext:`initializing with expression of different type`    ||                                                                      |
8855|                           |+--------------------------------------------------------------+|                                                                      |
8856|                           ||:diagtext:`sending to parameter of different type`            ||                                                                      |
8857|                           |+--------------------------------------------------------------+|                                                                      |
8858|                           ||:diagtext:`casting between types`                             ||                                                                      |
8859|                           |+--------------------------------------------------------------+|                                                                      |
8860+---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+
8861
8862+--------------------------------------------------------------------------------------------------------------------------------------------------------+
8863|:warning:`warning:` |nbsp| :diagtext:`kernel function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a member function; this may not be accepted by nvcc`|
8864+--------------------------------------------------------------------------------------------------------------------------------------------------------+
8865
8866+--------------------------------------------------------------------------------------------------+
8867|:warning:`warning:` |nbsp| :diagtext:`C99 forbids conditional expressions with only one void side`|
8868+--------------------------------------------------------------------------------------------------+
8869
8870+-------------------------------------------------------------------------------------------------------------------------------------+
8871|:warning:`warning:` |nbsp| :diagtext:`C99 forbids casting nonscalar type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to the same type`|
8872+-------------------------------------------------------------------------------------------------------------------------------------+
8873
8874+---------------------------------------------------------------------------------------------------------------------------+
8875|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++14 extension`|
8876+---------------------------------------------------------------------------------------------------------------------------+
8877
8878+---------------------------------------------------------------------------------------------------------------------------+
8879|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++17 extension`|
8880+---------------------------------------------------------------------------------------------------------------------------+
8881
8882+-----------------------------------------------------------------------------+--------------------+---------------------------------------------+
8883|:warning:`warning:` |nbsp| :diagtext:`types declared in an anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`are a Microsoft extension`|
8884|                                                                             ||:diagtext:`struct`||                                             |
8885|                                                                             |+------------------+|                                             |
8886|                                                                             ||:diagtext:`union` ||                                             |
8887|                                                                             |+------------------+|                                             |
8888+-----------------------------------------------------------------------------+--------------------+---------------------------------------------+
8889
8890+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
8891|:warning:`warning:` |nbsp| :diagtext:`format specifies type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`but the argument has` |nbsp| |+---------------------------+| |nbsp| :placeholder:`B`|
8892|                                                                                                                                    ||:diagtext:`type`           ||                        |
8893|                                                                                                                                    |+---------------------------+|                        |
8894|                                                                                                                                    ||:diagtext:`underlying type`||                        |
8895|                                                                                                                                    |+---------------------------+|                        |
8896+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
8897
8898+---------------------------------------------------+----------------------+-----------------------------------------------------------------------------+
8899|:warning:`warning:` |nbsp| :diagtext:`void` |nbsp| |+--------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return void expression`|
8900|                                                   ||:diagtext:`function`||                                                                             |
8901|                                                   |+--------------------+|                                                                             |
8902|                                                   ||:diagtext:`method`  ||                                                                             |
8903|                                                   |+--------------------+|                                                                             |
8904|                                                   ||:diagtext:`block`   ||                                                                             |
8905|                                                   |+--------------------+|                                                                             |
8906+---------------------------------------------------+----------------------+-----------------------------------------------------------------------------+
8907
8908+--------------------------------------------------------------------------------------------------+
8909|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' cannot be signed or unsigned`|
8910+--------------------------------------------------------------------------------------------------+
8911
8912+---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+
8913|:warning:`warning:` |nbsp| |+--------------------------------+|:diagtext:`array size` |nbsp| |+---------------------+|:diagtext:`is a C99 feature`|
8914|                           ||:diagtext:`qualifier in` |nbsp| ||                              ||                     ||                            |
8915|                           |+--------------------------------+|                              |+---------------------+|                            |
8916|                           ||:diagtext:`static` |nbsp|       ||                              ||                     ||                            |
8917|                           |+--------------------------------+|                              |+---------------------+|                            |
8918|                           ||                                ||                              ||:diagtext:`'\[\*\] '`||                            |
8919|                           |+--------------------------------+|                              |+---------------------+|                            |
8920+---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+
8921
8922+--------------------------------------------------------+------------------------------------------------+
8923|:warning:`warning:` |nbsp| :diagtext:`extra ';'` |nbsp| |+----------------------------------------------+|
8924|                                                        ||:diagtext:`outside of a function`             ||
8925|                                                        |+----------------------------------------------+|
8926|                                                        ||+--------------------------------------------+||
8927|                                                        |||:diagtext:`inside a` |nbsp| :placeholder:`B`|||
8928|                                                        ||+--------------------------------------------+||
8929|                                                        |+----------------------------------------------+|
8930|                                                        ||:diagtext:`inside instance variable list`     ||
8931|                                                        |+----------------------------------------------+|
8932|                                                        ||:diagtext:`after member function definition`  ||
8933|                                                        |+----------------------------------------------+|
8934+--------------------------------------------------------+------------------------------------------------+
8935
8936+-----------------------------------------------------------------------------------------+
8937|:warning:`warning:` |nbsp| :diagtext:`'\_\_thread' before '`:placeholder:`A`:diagtext:`'`|
8938+-----------------------------------------------------------------------------------------+
8939
8940+----------------------------------------------------------------------------------------+
8941|:warning:`warning:` |nbsp| :diagtext:`type-less parameter names in function declaration`|
8942+----------------------------------------------------------------------------------------+
8943
8944+-------------------------------------------------------------------------------------------------+
8945|:warning:`warning:` |nbsp| :diagtext:`variable declaration in for loop is a C99-specific feature`|
8946+-------------------------------------------------------------------------------------------------+
8947
8948+-----------------------------------------------------------------------------------+
8949|:warning:`warning:` |nbsp| :diagtext:`compound literals are a C99-specific feature`|
8950+-----------------------------------------------------------------------------------+
8951
8952+-------------------------------------------------------------------------------------------------------+
8953|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C99-specific feature`|
8954+-------------------------------------------------------------------------------------------------------+
8955
8956+--------------------------------------------------------------------------------------------------+
8957|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C++11 extension`|
8958+--------------------------------------------------------------------------------------------------+
8959
8960+-----------------------------------------------------------------------------------------------------------+
8961|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a C++11 extension`|
8962+-----------------------------------------------------------------------------------------------------------+
8963
8964+-----------------------------------------------------------------------+
8965|:warning:`warning:` |nbsp| :diagtext:`use of GNU array range extension`|
8966+-----------------------------------------------------------------------+
8967
8968+------------------------------------------------------------------------------------------------+
8969|:warning:`warning:` |nbsp| :diagtext:`exception specification of '...' is a Microsoft extension`|
8970+------------------------------------------------------------------------------------------------+
8971
8972+------------------------------------------------------------+---------------------------+-----------------------------------------------------+
8973|:warning:`warning:` |nbsp| :diagtext:`attributes on` |nbsp| |+-------------------------+| |nbsp| :diagtext:`declaration are a C++17 extension`|
8974|                                                            ||:diagtext:`a namespace`  ||                                                     |
8975|                                                            |+-------------------------+|                                                     |
8976|                                                            ||:diagtext:`an enumerator`||                                                     |
8977|                                                            |+-------------------------+|                                                     |
8978+------------------------------------------------------------+---------------------------+-----------------------------------------------------+
8979
8980+-----------------------------------------------------------------------------+
8981|:warning:`warning:` |nbsp| :diagtext:`extern templates are a C++11 extension`|
8982+-----------------------------------------------------------------------------+
8983
8984+------------------------------------------------------------+
8985|:warning:`warning:` |nbsp| :diagtext:`multi-line // comment`|
8986+------------------------------------------------------------+
8987
8988+-----------------------------------------------------------------------------------+
8989|:warning:`warning:` |nbsp| :diagtext:`// comments are not allowed in this language`|
8990+-----------------------------------------------------------------------------------+
8991
8992+----------------------------------------------------------------+
8993|:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`|
8994+----------------------------------------------------------------+
8995
8996+------------------------------------------------------------------------------------------------------------+
8997|:warning:`warning:` |nbsp| :diagtext:`use of non-standard escape character '\\`:placeholder:`A`:diagtext:`'`|
8998+------------------------------------------------------------------------------------------------------------+
8999
9000+---------------------------------------------------------------------------------------+
9001|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating constants are a C99 feature`|
9002+---------------------------------------------------------------------------------------+
9003
9004+----------------------------------------------------------------------------------------+
9005|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are a C++17 feature`|
9006+----------------------------------------------------------------------------------------+
9007
9008+---------------------------------------------------------------------+
9009|:warning:`warning:` |nbsp| :diagtext:`#ident is a language extension`|
9010+---------------------------------------------------------------------+
9011
9012+-----------------------------------------------------------------------+
9013|:warning:`warning:` |nbsp| :diagtext:`#warning is a language extension`|
9014+-----------------------------------------------------------------------+
9015
9016+-----------------------------------------------------------------------+
9017|:warning:`warning:` |nbsp| :diagtext:`comma operator in operand of #if`|
9018+-----------------------------------------------------------------------+
9019
9020+----------------------------------------------------------------------------------------------------------------+
9021|:warning:`warning:` |nbsp| :diagtext:`\_\_VA\_ARGS\_\_ can only appear in the expansion of a C99 variadic macro`|
9022+----------------------------------------------------------------------------------------------------------------+
9023
9024+------------------------------------------------------------------------+
9025|:warning:`warning:` |nbsp| :diagtext:`variadic macros are a C99 feature`|
9026+------------------------------------------------------------------------+
9027
9028+--------------------------------------------------------------------------------+
9029|:warning:`warning:` |nbsp| :diagtext:`named variadic macros are a GNU extension`|
9030+--------------------------------------------------------------------------------+
9031
9032+------------------------------------------------------------------------------+
9033|:warning:`warning:` |nbsp| :diagtext:`empty macro arguments are a C99 feature`|
9034+------------------------------------------------------------------------------+
9035
9036+----------------------------------------------------------------------------------------------------------------------------------------+
9037|:warning:`warning:` |nbsp| :diagtext:`C requires #line number to be less than` |nbsp| :placeholder:`A`:diagtext:`, allowed as extension`|
9038+----------------------------------------------------------------------------------------------------------------------------------------+
9039
9040+-------------------------------------------------------------------------------------------------+
9041|:warning:`warning:` |nbsp| :diagtext:`macro expansion producing 'defined' has undefined behavior`|
9042+-------------------------------------------------------------------------------------------------+
9043
9044
9045-Wpedantic-core-features
9046------------------------
9047**Diagnostic text:**
9048
9049+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
9050|:warning:`warning:` |nbsp| :diagtext:`OpenCL extension` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is core feature or supported optional core feature - ignoring`|
9051+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
9052
9053
9054-Wpessimizing-move
9055------------------
9056**Diagnostic text:**
9057
9058+--------------------------------------------------------------------------------------+
9059|:warning:`warning:` |nbsp| :diagtext:`moving a temporary object prevents copy elision`|
9060+--------------------------------------------------------------------------------------+
9061
9062+--------------------------------------------------------------------------------------------------------+
9063|:warning:`warning:` |nbsp| :diagtext:`moving a local object in a return statement prevents copy elision`|
9064+--------------------------------------------------------------------------------------------------------+
9065
9066
9067-Wpointer-arith
9068---------------
9069Some of the diagnostics controlled by this flag are enabled by default.
9070
9071**Diagnostic text:**
9072
9073+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+
9074|: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`|
9075|                                                    || |nbsp| :diagtext:`a`||                           ||             ||                      || |nbsp| :diagtext:`the`||                                 ||             ||                        ||                                                 ||                                      |
9076|                                                    |+---------------------+|                           |+-------------+|                      |+-----------------------+|                                 |+-------------+|                        |+-------------------------------------------------+|                                      |
9077|                                                    ||                     ||                           ||:diagtext:`s`||                      ||                       ||                                 ||:diagtext:`s`||                        ||+-----------------------------------------------+||                                      |
9078|                                                    |+---------------------+|                           |+-------------+|                      |+-----------------------+|                                 |+-------------+|                        ||| |nbsp| :diagtext:`and` |nbsp| :placeholder:`D`|||                                      |
9079|                                                    |                       |                           |               |                      |                         |                                 |               |                        ||+-----------------------------------------------+||                                      |
9080|                                                    |                       |                           |               |                      |                         |                                 |               |                        |+-------------------------------------------------+|                                      |
9081+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+
9082
9083+----------------------------------------------------------------------------------------+
9084|:warning:`warning:` |nbsp| :diagtext:`subscript of a pointer to void is a GNU extension`|
9085+----------------------------------------------------------------------------------------+
9086
9087+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+
9088|:warning:`warning:` |nbsp| :diagtext:`arithmetic on`|+---------------------+| |nbsp| :diagtext:`pointer`|+-------------+| |nbsp| :diagtext:`to void is a GNU extension`|
9089|                                                    || |nbsp| :diagtext:`a`||                           ||             ||                                              |
9090|                                                    |+---------------------+|                           |+-------------+|                                              |
9091|                                                    ||                     ||                           ||:diagtext:`s`||                                              |
9092|                                                    |+---------------------+|                           |+-------------+|                                              |
9093+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+
9094
9095+---------------------------------------------------------------+-----------------------------------------------------+--------------------------------+
9096|:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------------------------------------+|:diagtext:`' to a function type`|
9097|                                                               ||:diagtext:`sizeof`                                 ||                                |
9098|                                                               |+---------------------------------------------------+|                                |
9099|                                                               ||:diagtext:`alignof`                                ||                                |
9100|                                                               |+---------------------------------------------------+|                                |
9101|                                                               ||:diagtext:`vec\_step`                              ||                                |
9102|                                                               |+---------------------------------------------------+|                                |
9103|                                                               ||:diagtext:`\_\_builtin\_omp\_required\_simd\_align`||                                |
9104|                                                               |+---------------------------------------------------+|                                |
9105|                                                               ||:diagtext:`\_\_alignof`                            ||                                |
9106|                                                               |+---------------------------------------------------+|                                |
9107+---------------------------------------------------------------+-----------------------------------------------------+--------------------------------+
9108
9109+---------------------------------------------------------------+-----------------------------------------------------+----------------------------+
9110|:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------------------------------------+|:diagtext:`' to a void type`|
9111|                                                               ||:diagtext:`sizeof`                                 ||                            |
9112|                                                               |+---------------------------------------------------+|                            |
9113|                                                               ||:diagtext:`alignof`                                ||                            |
9114|                                                               |+---------------------------------------------------+|                            |
9115|                                                               ||:diagtext:`vec\_step`                              ||                            |
9116|                                                               |+---------------------------------------------------+|                            |
9117|                                                               ||:diagtext:`\_\_builtin\_omp\_required\_simd\_align`||                            |
9118|                                                               |+---------------------------------------------------+|                            |
9119|                                                               ||:diagtext:`\_\_alignof`                            ||                            |
9120|                                                               |+---------------------------------------------------+|                            |
9121+---------------------------------------------------------------+-----------------------------------------------------+----------------------------+
9122
9123+-----------------------------------------------------------------------------------------------------------------------------------------------------+
9124|:warning:`warning:` |nbsp| :diagtext:`subtraction of pointers to type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of zero size has undefined behavior`|
9125+-----------------------------------------------------------------------------------------------------------------------------------------------------+
9126
9127
9128-Wpointer-bool-conversion
9129-------------------------
9130This diagnostic is enabled by default.
9131
9132**Diagnostic text:**
9133
9134+------------------------------------------------------+---------------------------+---------------------------------------------------------------------------------------------+
9135|:warning:`warning:` |nbsp| :diagtext:`nonnull` |nbsp| |+-------------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' will evaluate to 'true' on first encounter`|
9136|                                                      ||:diagtext:`function call`||                                                                                             |
9137|                                                      |+-------------------------+|                                                                                             |
9138|                                                      ||:diagtext:`parameter`    ||                                                                                             |
9139|                                                      |+-------------------------+|                                                                                             |
9140+------------------------------------------------------+---------------------------+---------------------------------------------------------------------------------------------+
9141
9142+-------------------------------------------------+------------------------------+---------------------------------------------------------------------------------+
9143|:warning:`warning:` |nbsp| :diagtext:`address of`|+----------------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' will always evaluate to 'true'`|
9144|                                                 ||                            ||                                                                                 |
9145|                                                 |+----------------------------+|                                                                                 |
9146|                                                 || |nbsp| :diagtext:`function`||                                                                                 |
9147|                                                 |+----------------------------+|                                                                                 |
9148|                                                 || |nbsp| :diagtext:`array`   ||                                                                                 |
9149|                                                 |+----------------------------+|                                                                                 |
9150+-------------------------------------------------+------------------------------+---------------------------------------------------------------------------------+
9151
9152
9153-Wpointer-integer-compare
9154-------------------------
9155This diagnostic is enabled by default.
9156
9157**Diagnostic text:**
9158
9159+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
9160|:warning:`warning:` |nbsp| :diagtext:`comparison between pointer and integer (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`|
9161+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
9162
9163
9164-Wpointer-sign
9165--------------
9166This diagnostic is enabled by default.
9167
9168**Diagnostic text:**
9169
9170+---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------------+
9171|:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`converts between pointers to integer types with different sign`|
9172|                           ||:diagtext:`assigning to different types`                      ||                                                                                  |
9173|                           |+--------------------------------------------------------------+|                                                                                  |
9174|                           ||:diagtext:`passing to parameter of different type`            ||                                                                                  |
9175|                           |+--------------------------------------------------------------+|                                                                                  |
9176|                           ||:diagtext:`returning from function with different return type`||                                                                                  |
9177|                           |+--------------------------------------------------------------+|                                                                                  |
9178|                           ||:diagtext:`converting between types`                          ||                                                                                  |
9179|                           |+--------------------------------------------------------------+|                                                                                  |
9180|                           ||:diagtext:`initializing with expression of different type`    ||                                                                                  |
9181|                           |+--------------------------------------------------------------+|                                                                                  |
9182|                           ||:diagtext:`sending to parameter of different type`            ||                                                                                  |
9183|                           |+--------------------------------------------------------------+|                                                                                  |
9184|                           ||:diagtext:`casting between types`                             ||                                                                                  |
9185|                           |+--------------------------------------------------------------+|                                                                                  |
9186+---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------------+
9187
9188
9189-Wpointer-to-int-cast
9190---------------------
9191This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
9192
9193-Wpointer-type-mismatch
9194-----------------------
9195This diagnostic is enabled by default.
9196
9197**Diagnostic text:**
9198
9199+------------------------------------------------------------+
9200|:warning:`warning:` |nbsp| :diagtext:`pointer type mismatch`|
9201+------------------------------------------------------------+
9202
9203
9204-Wpotentially-evaluated-expression
9205----------------------------------
9206This diagnostic is enabled by default.
9207
9208**Diagnostic text:**
9209
9210+----------------------------------------------------------------------------------------------------------------------------------+
9211|:warning:`warning:` |nbsp| :diagtext:`expression with side effects will be evaluated despite being used as an operand to 'typeid'`|
9212+----------------------------------------------------------------------------------------------------------------------------------+
9213
9214
9215-Wpragma-clang-attribute
9216------------------------
9217This diagnostic is enabled by default.
9218
9219**Diagnostic text:**
9220
9221+-------------------------------------------------------------------------------------------------------------------------------------------+
9222|:warning:`warning:` |nbsp| :diagtext:`unused attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in '#pragma clang attribute push' region`|
9223+-------------------------------------------------------------------------------------------------------------------------------------------+
9224
9225
9226-Wpragma-once-outside-header
9227----------------------------
9228This diagnostic is enabled by default.
9229
9230**Diagnostic text:**
9231
9232+----------------------------------------------------------------+
9233|:warning:`warning:` |nbsp| :diagtext:`#pragma once in main file`|
9234+----------------------------------------------------------------+
9235
9236
9237-Wpragma-pack
9238-------------
9239Some of the diagnostics controlled by this flag are enabled by default.
9240
9241Also controls `-Wpragma-pack-suspicious-include`_.
9242
9243**Diagnostic text:**
9244
9245+----------------------------------------------------------------------------------------------------------------+
9246|:warning:`warning:` |nbsp| :diagtext:`the current #pragma pack alignment value is modified in the included file`|
9247+----------------------------------------------------------------------------------------------------------------+
9248
9249+---------------------------------------------------------------------------------------------+
9250|:warning:`warning:` |nbsp| :diagtext:`unterminated '#pragma pack (push, ...)' at end of file`|
9251+---------------------------------------------------------------------------------------------+
9252
9253
9254-Wpragma-pack-suspicious-include
9255--------------------------------
9256**Diagnostic text:**
9257
9258+-------------------------------------------------------------------------------------------------------------------------------------------+
9259|:warning:`warning:` |nbsp| :diagtext:`non-default #pragma pack value changes the alignment of struct or union members in the included file`|
9260+-------------------------------------------------------------------------------------------------------------------------------------------+
9261
9262
9263-Wpragma-system-header-outside-header
9264-------------------------------------
9265This diagnostic is enabled by default.
9266
9267**Diagnostic text:**
9268
9269+----------------------------------------------------------------------------------+
9270|:warning:`warning:` |nbsp| :diagtext:`#pragma system\_header ignored in main file`|
9271+----------------------------------------------------------------------------------+
9272
9273
9274-Wpragmas
9275---------
9276Some of the diagnostics controlled by this flag are enabled by default.
9277
9278Also controls `-Wignored-pragmas`_, `-Wpragma-clang-attribute`_, `-Wpragma-pack`_, `-Wunknown-pragmas`_.
9279
9280**Diagnostic text:**
9281
9282+--------------------------------------------------------------------------------------------------------------------------------------+----------------------+------------------------+
9283|:warning:`warning:` |nbsp| :diagtext:`#pragma redefine\_extname is applicable to external C declarations only; not applied to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B`|
9284|                                                                                                                                      ||:diagtext:`function`||                        |
9285|                                                                                                                                      |+--------------------+|                        |
9286|                                                                                                                                      ||:diagtext:`variable`||                        |
9287|                                                                                                                                      |+--------------------+|                        |
9288+--------------------------------------------------------------------------------------------------------------------------------------+----------------------+------------------------+
9289
9290
9291-Wpredefined-identifier-outside-function
9292----------------------------------------
9293This diagnostic is enabled by default.
9294
9295**Diagnostic text:**
9296
9297+------------------------------------------------------------------------------------------+
9298|:warning:`warning:` |nbsp| :diagtext:`predefined identifier is only valid inside function`|
9299+------------------------------------------------------------------------------------------+
9300
9301
9302-Wprivate-extern
9303----------------
9304This diagnostic is enabled by default.
9305
9306**Diagnostic text:**
9307
9308+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9309|:warning:`warning:` |nbsp| :diagtext:`use of \_\_private\_extern\_\_ on a declaration may not produce external symbol private to the linkage unit and is deprecated`|
9310+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9311
9312
9313-Wprivate-header
9314----------------
9315This diagnostic is an error by default, but the flag ``-Wno-private-header`` can be used to disable the error.
9316
9317**Diagnostic text:**
9318
9319+----------------------------------------------------------------------------------------------------------------+
9320|:error:`error:` |nbsp| :diagtext:`use of private header from outside its module: '`:placeholder:`A`:diagtext:`'`|
9321+----------------------------------------------------------------------------------------------------------------+
9322
9323
9324-Wprivate-module
9325----------------
9326This diagnostic is enabled by default.
9327
9328**Diagnostic text:**
9329
9330+----------------------------------------------------------------------------------------------------------------+
9331|:warning:`warning:` |nbsp| :diagtext:`expected canonical name for private module '`:placeholder:`A`:diagtext:`'`|
9332+----------------------------------------------------------------------------------------------------------------+
9333
9334+----------------------------------------------------------------------------------------------------------------------------------------+
9335|:warning:`warning:` |nbsp| :diagtext:`private submodule '`:placeholder:`A`:diagtext:`' in private module map, expected top-level module`|
9336+----------------------------------------------------------------------------------------------------------------------------------------+
9337
9338+----------------------------------------------------------------------------------------------------------------------------------+
9339|:warning:`warning:` |nbsp| :diagtext:`module '`:placeholder:`A`:diagtext:`' already re-exported as '`:placeholder:`B`:diagtext:`'`|
9340+----------------------------------------------------------------------------------------------------------------------------------+
9341
9342+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9343|:warning:`warning:` |nbsp| :diagtext:`no submodule named` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in module '`:placeholder:`B`:diagtext:`'; using top level '`:placeholder:`C`:diagtext:`'`|
9344+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9345
9346
9347-Wprofile-instr-missing
9348-----------------------
9349**Diagnostic text:**
9350
9351+-----------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+------------------+---------------------------+
9352|: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`|
9353|                                                                                                                             ||             ||                                             ||:diagtext:`has` ||                           |
9354|                                                                                                                             |+-------------+|                                             |+----------------+|                           |
9355|                                                                                                                             ||:diagtext:`s`||                                             ||:diagtext:`have`||                           |
9356|                                                                                                                             |+-------------+|                                             |+----------------+|                           |
9357+-----------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+------------------+---------------------------+
9358
9359
9360-Wprofile-instr-out-of-date
9361---------------------------
9362This diagnostic is enabled by default.
9363
9364**Diagnostic text:**
9365
9366+------------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+------------------+--------------------------------------------------------+
9367|: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`|
9368|                                                                                                                              ||             ||                                             ||:diagtext:`has` ||                                                        |
9369|                                                                                                                              |+-------------+|                                             |+----------------+|                                                        |
9370|                                                                                                                              ||:diagtext:`s`||                                             ||:diagtext:`have`||                                                        |
9371|                                                                                                                              |+-------------+|                                             |+----------------+|                                                        |
9372+------------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+------------------+--------------------------------------------------------+
9373
9374
9375-Wprofile-instr-unprofiled
9376--------------------------
9377This diagnostic is enabled by default.
9378
9379**Diagnostic text:**
9380
9381+--------------------------------------------------------------------------------------------------------+
9382|:warning:`warning:` |nbsp| :diagtext:`no profile data available for file "`:placeholder:`A`:diagtext:`"`|
9383+--------------------------------------------------------------------------------------------------------+
9384
9385
9386-Wproperty-access-dot-syntax
9387----------------------------
9388This diagnostic is enabled by default.
9389
9390**Diagnostic text:**
9391
9392+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9393|: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:`?`|
9394+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9395
9396
9397-Wproperty-attribute-mismatch
9398-----------------------------
9399This diagnostic is enabled by default.
9400
9401**Diagnostic text:**
9402
9403+-------------------------------------------------------------------------------------------------------------+
9404|:warning:`warning:` |nbsp| :diagtext:`property attribute in class extension does not match the primary class`|
9405+-------------------------------------------------------------------------------------------------------------+
9406
9407+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9408|: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`|
9409+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9410
9411+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9412|:warning:`warning:` |nbsp| :diagtext:`getter name mismatch between property redeclaration (`:placeholder:`B`:diagtext:`) and its original declaration (`:placeholder:`A`:diagtext:`)`|
9413+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9414
9415+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9416|:warning:`warning:` |nbsp| :diagtext:`attribute 'readonly' of property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`restricts attribute 'readwrite' of property inherited from` |nbsp| :placeholder:`B`|
9417+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9418
9419
9420-Wprotocol
9421----------
9422This diagnostic is enabled by default.
9423
9424**Diagnostic text:**
9425
9426+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
9427|:warning:`warning:` |nbsp| :diagtext:`method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in protocol` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not implemented`|
9428+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
9429
9430
9431-Wprotocol-property-synthesis-ambiguity
9432---------------------------------------
9433This diagnostic is enabled by default.
9434
9435**Diagnostic text:**
9436
9437+-------------------------------------------------------+----------------------------------------------------------------+----------------------------------------------+
9438|:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`was selected for synthesis`|
9439|                                                       ||+-------------------------------------------+                 ||                                              |
9440|                                                       |||:diagtext:`of type` |nbsp| :placeholder:`B`|                 ||                                              |
9441|                                                       ||+-------------------------------------------+                 ||                                              |
9442|                                                       |+--------------------------------------------------------------+|                                              |
9443|                                                       ||+---------------------------------------------------------+   ||                                              |
9444|                                                       |||:diagtext:`with attribute '`:placeholder:`B`:diagtext:`'`|   ||                                              |
9445|                                                       ||+---------------------------------------------------------+   ||                                              |
9446|                                                       |+--------------------------------------------------------------+|                                              |
9447|                                                       ||+------------------------------------------------------------+||                                              |
9448|                                                       |||:diagtext:`without attribute '`:placeholder:`B`:diagtext:`'`|||                                              |
9449|                                                       ||+------------------------------------------------------------+||                                              |
9450|                                                       |+--------------------------------------------------------------+|                                              |
9451|                                                       ||+-----------------------------------------------+             ||                                              |
9452|                                                       |||:diagtext:`with getter` |nbsp| :placeholder:`B`|             ||                                              |
9453|                                                       ||+-----------------------------------------------+             ||                                              |
9454|                                                       |+--------------------------------------------------------------+|                                              |
9455|                                                       ||+-----------------------------------------------+             ||                                              |
9456|                                                       |||:diagtext:`with setter` |nbsp| :placeholder:`B`|             ||                                              |
9457|                                                       ||+-----------------------------------------------+             ||                                              |
9458|                                                       |+--------------------------------------------------------------+|                                              |
9459+-------------------------------------------------------+----------------------------------------------------------------+----------------------------------------------+
9460
9461
9462-Wqualified-void-return-type
9463----------------------------
9464This diagnostic is enabled by default.
9465
9466**Diagnostic text:**
9467
9468+---------------------------------------------------------------------------------------------------------+
9469|:warning:`warning:` |nbsp| :diagtext:`function cannot return qualified void type` |nbsp| :placeholder:`A`|
9470+---------------------------------------------------------------------------------------------------------+
9471
9472
9473-Wquoted-include-in-framework-header
9474------------------------------------
9475**Diagnostic text:**
9476
9477+-------------------------------------------------------------------------------------------------------------------------------------------------+
9478|:warning:`warning:` |nbsp| :diagtext:`double-quoted include "`:placeholder:`A`:diagtext:`" in framework header, expected angle-bracketed instead`|
9479+-------------------------------------------------------------------------------------------------------------------------------------------------+
9480
9481
9482-Wrange-loop-analysis
9483---------------------
9484**Diagnostic text:**
9485
9486+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9487|: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`|
9488+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9489
9490+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9491|: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`|
9492+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9493
9494+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9495|: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`|
9496+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9497
9498
9499-Wreadonly-iboutlet-property
9500----------------------------
9501This diagnostic is enabled by default.
9502
9503**Diagnostic text:**
9504
9505+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9506|:warning:`warning:` |nbsp| :diagtext:`readonly IBOutlet property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when auto-synthesized may not work correctly with 'nib' loader`|
9507+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9508
9509
9510-Wreceiver-expr
9511---------------
9512This diagnostic is enabled by default.
9513
9514**Diagnostic text:**
9515
9516+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
9517|:warning:`warning:` |nbsp| :diagtext:`receiver type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not 'id' or interface pointer, consider casting it to 'id'`|
9518+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
9519
9520
9521-Wreceiver-forward-class
9522------------------------
9523Some of the diagnostics controlled by this flag are enabled by default.
9524
9525**Diagnostic text:**
9526
9527+--------------------------------------------------------------------------------------------------------------------------------------------------------+
9528|:warning:`warning:` |nbsp| :diagtext:`receiver` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a forward class and corresponding @interface may not exist`|
9529+--------------------------------------------------------------------------------------------------------------------------------------------------------+
9530
9531+---------------------------------------------------------------------------------------------------------------------------------------------+
9532|:warning:`warning:` |nbsp| :diagtext:`receiver type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for instance message is a forward declaration`|
9533+---------------------------------------------------------------------------------------------------------------------------------------------+
9534
9535
9536-Wredeclared-class-member
9537-------------------------
9538This diagnostic is enabled by default.
9539
9540**Diagnostic text:**
9541
9542+------------------------------------------------------------------------+
9543|:warning:`warning:` |nbsp| :diagtext:`class member cannot be redeclared`|
9544+------------------------------------------------------------------------+
9545
9546
9547-Wredundant-decls
9548-----------------
9549This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
9550
9551-Wredundant-move
9552----------------
9553**Diagnostic text:**
9554
9555+-------------------------------------------------------------------------+
9556|:warning:`warning:` |nbsp| :diagtext:`redundant move in return statement`|
9557+-------------------------------------------------------------------------+
9558
9559
9560-Wredundant-parens
9561------------------
9562**Diagnostic text:**
9563
9564+-----------------------------------------------------------------------------------+
9565|:warning:`warning:` |nbsp| :diagtext:`redundant parentheses surrounding declarator`|
9566+-----------------------------------------------------------------------------------+
9567
9568
9569-Wregister
9570----------
9571This diagnostic is enabled by default.
9572
9573Also controls `-Wdeprecated-register`_.
9574
9575**Diagnostic text:**
9576
9577+----------------------------------------------------------------------------------------------+
9578|:error:`error:` |nbsp| :diagtext:`ISO C++17 does not allow 'register' storage class specifier`|
9579+----------------------------------------------------------------------------------------------+
9580
9581
9582-Wreinterpret-base-class
9583------------------------
9584This diagnostic is enabled by default.
9585
9586**Diagnostic text:**
9587
9588+------------------------------------------------------------------+------------------+---------------------------------------------------------+------------------+-------------------------------+-------------------------------------+-----------------------------------------------------------------------------------+
9589|: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'`|
9590|                                                                  ||:diagtext:`from`||                                                         ||:diagtext:`to`  ||                               ||:diagtext:`virtual base`           ||                                                                                   |
9591|                                                                  |+----------------+|                                                         |+----------------+|                               |+-----------------------------------+|                                                                                   |
9592|                                                                  ||:diagtext:`to`  ||                                                         ||:diagtext:`from`||                               ||:diagtext:`base at non-zero offset`||                                                                                   |
9593|                                                                  |+----------------+|                                                         |+----------------+|                               |+-----------------------------------+|                                                                                   |
9594+------------------------------------------------------------------+------------------+---------------------------------------------------------+------------------+-------------------------------+-------------------------------------+-----------------------------------------------------------------------------------+
9595
9596
9597-Rremark-backend-plugin
9598-----------------------
9599**Diagnostic text:**
9600
9601The text of this diagnostic is not controlled by Clang.
9602
9603
9604-Wreorder
9605---------
9606**Diagnostic text:**
9607
9608+---------------------------+------------------------+-----------------------------------------------------------------------------+-------------------+------------------------+
9609|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`will be initialized after` |nbsp| |+-----------------+| |nbsp| :placeholder:`D`|
9610|                           ||:diagtext:`field`     ||                                                                             ||:diagtext:`field`||                        |
9611|                           |+----------------------+|                                                                             |+-----------------+|                        |
9612|                           ||:diagtext:`base class`||                                                                             ||:diagtext:`base` ||                        |
9613|                           |+----------------------+|                                                                             |+-----------------+|                        |
9614+---------------------------+------------------------+-----------------------------------------------------------------------------+-------------------+------------------------+
9615
9616
9617-Wrequires-super-attribute
9618--------------------------
9619This diagnostic is enabled by default.
9620
9621**Diagnostic text:**
9622
9623+-----------------------------------------------------------------------------------------------------+----------------------------------+
9624|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute cannot be applied to` |nbsp| |+--------------------------------+|
9625|                                                                                                     ||:diagtext:`methods in protocols`||
9626|                                                                                                     |+--------------------------------+|
9627|                                                                                                     ||:diagtext:`dealloc`             ||
9628|                                                                                                     |+--------------------------------+|
9629+-----------------------------------------------------------------------------------------------------+----------------------------------+
9630
9631
9632-Wreserved-id-macro
9633-------------------
9634**Diagnostic text:**
9635
9636+--------------------------------------------------------------------------+
9637|:warning:`warning:` |nbsp| :diagtext:`macro name is a reserved identifier`|
9638+--------------------------------------------------------------------------+
9639
9640
9641-Wreserved-user-defined-literal
9642-------------------------------
9643Some of the diagnostics controlled by this flag are enabled by default.
9644
9645Also controls `-Wc++11-compat-reserved-user-defined-literal`_.
9646
9647**Diagnostic text:**
9648
9649+-----------------------------------------------------------------------------------------------------------------------+
9650|:warning:`warning:` |nbsp| :diagtext:`invalid suffix on literal; C++11 requires a space between literal and identifier`|
9651+-----------------------------------------------------------------------------------------------------------------------+
9652
9653+-------------------------------------------------------------------------------------------------------------------+
9654|:error:`error:` |nbsp| :diagtext:`invalid suffix on literal; C++11 requires a space between literal and identifier`|
9655+-------------------------------------------------------------------------------------------------------------------+
9656
9657
9658-Wretained-language-linkage
9659---------------------------
9660**Diagnostic text:**
9661
9662+-----------------------------------------------------------------------------------------------------------------------------------------------------+
9663|:warning:`warning:` |nbsp| :diagtext:`friend function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`retaining previous language linkage is an extension`|
9664+-----------------------------------------------------------------------------------------------------------------------------------------------------+
9665
9666
9667-Wreturn-stack-address
9668----------------------
9669This diagnostic is enabled by default.
9670
9671**Diagnostic text:**
9672
9673+---------------------------------------------------------------------------------+
9674|:warning:`warning:` |nbsp| :diagtext:`returning address of label, which is local`|
9675+---------------------------------------------------------------------------------+
9676
9677+--------------------------------------------------------+--------------------------+------------------------------------------+
9678|:warning:`warning:` |nbsp| :diagtext:`returning` |nbsp| |+------------------------+| |nbsp| :diagtext:`local temporary object`|
9679|                                                        ||:diagtext:`address of`  ||                                          |
9680|                                                        |+------------------------+|                                          |
9681|                                                        ||:diagtext:`reference to`||                                          |
9682|                                                        |+------------------------+|                                          |
9683+--------------------------------------------------------+--------------------------+------------------------------------------+
9684
9685+---------------------------+--------------------------+--------------------------------------------------------+----------------------------+----------------------------------------------------+
9686|:warning:`warning:` |nbsp| |+------------------------+| |nbsp| :diagtext:`stack memory associated with` |nbsp| |+--------------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`returned`|
9687|                           ||:diagtext:`address of`  ||                                                        ||:diagtext:`local variable`||                                                    |
9688|                           |+------------------------+|                                                        |+--------------------------+|                                                    |
9689|                           ||:diagtext:`reference to`||                                                        ||:diagtext:`parameter`     ||                                                    |
9690|                           |+------------------------+|                                                        |+--------------------------+|                                                    |
9691+---------------------------+--------------------------+--------------------------------------------------------+----------------------------+----------------------------------------------------+
9692
9693
9694-Wreturn-std-move
9695-----------------
9696**Diagnostic text:**
9697
9698+-------------------------------------------------------------------------------------------------------------------------------------+----------------------+---------------------------+
9699|:warning:`warning:` |nbsp| :diagtext:`local variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will be copied despite being` |nbsp| |+--------------------+| |nbsp| :diagtext:`by name`|
9700|                                                                                                                                     ||:diagtext:`returned`||                           |
9701|                                                                                                                                     |+--------------------+|                           |
9702|                                                                                                                                     ||:diagtext:`thrown`  ||                           |
9703|                                                                                                                                     |+--------------------+|                           |
9704+-------------------------------------------------------------------------------------------------------------------------------------+----------------------+---------------------------+
9705
9706
9707-Wreturn-std-move-in-c++11
9708--------------------------
9709**Diagnostic text:**
9710
9711+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9712|:warning:`warning:` |nbsp| :diagtext:`prior to the resolution of a defect report against ISO C++11, local variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`would have been copied despite being returned by name, due to its not matching the function return type`|
9713+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9714
9715
9716-Wreturn-type
9717-------------
9718This diagnostic is enabled by default.
9719
9720Also controls `-Wreturn-type-c-linkage`_.
9721
9722**Diagnostic text:**
9723
9724+-----------------------+---------------------------+---------------------------------------------------------------------+
9725|:error:`error:` |nbsp| |+-------------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return a value`|
9726|                       ||:diagtext:`void function`||                                                                     |
9727|                       |+-------------------------+|                                                                     |
9728|                       ||:diagtext:`void method`  ||                                                                     |
9729|                       |+-------------------------+|                                                                     |
9730|                       ||:diagtext:`constructor`  ||                                                                     |
9731|                       |+-------------------------+|                                                                     |
9732|                       ||:diagtext:`destructor`   ||                                                                     |
9733|                       |+-------------------------+|                                                                     |
9734+-----------------------+---------------------------+---------------------------------------------------------------------+
9735
9736+---------------------------------------------------+----------------------+-----------------------------------------------------------------+
9737|:error:`error:` |nbsp| :diagtext:`non-void` |nbsp| |+--------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should return a value`|
9738|                                                   ||:diagtext:`function`||                                                                 |
9739|                                                   |+--------------------+|                                                                 |
9740|                                                   ||:diagtext:`method`  ||                                                                 |
9741|                                                   |+--------------------+|                                                                 |
9742+---------------------------------------------------+----------------------+-----------------------------------------------------------------+
9743
9744+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9745|: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()'`|
9746+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9747
9748+-------------------------------------------------------------------------------+
9749|:warning:`warning:` |nbsp| :diagtext:`control reaches end of non-void function`|
9750+-------------------------------------------------------------------------------+
9751
9752+-----------------------------------------------------------------------------+
9753|:warning:`warning:` |nbsp| :diagtext:`control reaches end of non-void lambda`|
9754+-----------------------------------------------------------------------------+
9755
9756+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9757|: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()'`|
9758+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9759
9760+---------------------------------------------------------------------------------+
9761|:warning:`warning:` |nbsp| :diagtext:`control may reach end of non-void function`|
9762+---------------------------------------------------------------------------------+
9763
9764+-------------------------------------------------------------------------------+
9765|:warning:`warning:` |nbsp| :diagtext:`control may reach end of non-void lambda`|
9766+-------------------------------------------------------------------------------+
9767
9768+---------------------------------------------------+----------------------+-----------------------------------------------------------------+
9769|:error:`error:` |nbsp| :diagtext:`non-void` |nbsp| |+--------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should return a value`|
9770|                                                   ||:diagtext:`function`||                                                                 |
9771|                                                   |+--------------------+|                                                                 |
9772|                                                   ||:diagtext:`method`  ||                                                                 |
9773|                                                   |+--------------------+|                                                                 |
9774+---------------------------------------------------+----------------------+-----------------------------------------------------------------+
9775
9776
9777-Wreturn-type-c-linkage
9778-----------------------
9779This diagnostic is enabled by default.
9780
9781**Diagnostic text:**
9782
9783+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9784|: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`|
9785+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9786
9787+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9788|: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`|
9789+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9790
9791
9792-Rsanitize-address
9793------------------
9794**Diagnostic text:**
9795
9796+--------------------------------------------------------------------------------------------------------+
9797|:remark:`remark:` |nbsp| :diagtext:`-fsanitize-address-field-padding applied to` |nbsp| :placeholder:`A`|
9798+--------------------------------------------------------------------------------------------------------+
9799
9800+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------+
9801|:remark:`remark:` |nbsp| :diagtext:`-fsanitize-address-field-padding ignored for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`because it` |nbsp| |+------------------------------------+|
9802|                                                                                                                                               ||:diagtext:`is not C++`              ||
9803|                                                                                                                                               |+------------------------------------+|
9804|                                                                                                                                               ||:diagtext:`is packed`               ||
9805|                                                                                                                                               |+------------------------------------+|
9806|                                                                                                                                               ||:diagtext:`is a union`              ||
9807|                                                                                                                                               |+------------------------------------+|
9808|                                                                                                                                               ||:diagtext:`is trivially copyable`   ||
9809|                                                                                                                                               |+------------------------------------+|
9810|                                                                                                                                               ||:diagtext:`has trivial destructor`  ||
9811|                                                                                                                                               |+------------------------------------+|
9812|                                                                                                                                               ||:diagtext:`is standard layout`      ||
9813|                                                                                                                                               |+------------------------------------+|
9814|                                                                                                                                               ||:diagtext:`is in a blacklisted file`||
9815|                                                                                                                                               |+------------------------------------+|
9816|                                                                                                                                               ||:diagtext:`is blacklisted`          ||
9817|                                                                                                                                               |+------------------------------------+|
9818+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------+
9819
9820
9821-Wsection
9822---------
9823This diagnostic is enabled by default.
9824
9825**Diagnostic text:**
9826
9827+--------------------------------------------------------------------------------------------+
9828|:warning:`warning:` |nbsp| :diagtext:`section attribute is specified on redeclared variable`|
9829+--------------------------------------------------------------------------------------------+
9830
9831+------------------------------------------------------------------------+
9832|:warning:`warning:` |nbsp| :diagtext:`duplicate code segment specifiers`|
9833+------------------------------------------------------------------------+
9834
9835+---------------------------+---------------------+-------------------------------------------------------+
9836|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`does not match previous declaration`|
9837|                           ||:diagtext:`codeseg`||                                                       |
9838|                           |+-------------------+|                                                       |
9839|                           ||:diagtext:`section`||                                                       |
9840|                           |+-------------------+|                                                       |
9841+---------------------------+---------------------+-------------------------------------------------------+
9842
9843
9844-Wselector
9845----------
9846Also controls `-Wselector-type-mismatch`_.
9847
9848**Diagnostic text:**
9849
9850+-------------------------------------------------------------------------------------------------------------------------------------------------+
9851|:warning:`warning:` |nbsp| :diagtext:`no method with selector` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is implemented in this translation unit`|
9852+-------------------------------------------------------------------------------------------------------------------------------------------------+
9853
9854
9855-Wselector-type-mismatch
9856------------------------
9857**Diagnostic text:**
9858
9859+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9860|:warning:`warning:` |nbsp| :diagtext:`several methods with selector` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of mismatched types are found for the @selector expression`|
9861+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9862
9863
9864-Wself-assign
9865-------------
9866Some of the diagnostics controlled by this flag are enabled by default.
9867
9868Also controls `-Wself-assign-field`_, `-Wself-assign-overloaded`_.
9869
9870**Diagnostic text:**
9871
9872+------------------------------------------------------------------------------------------------------------------------------------------+
9873|:warning:`warning:` |nbsp| :diagtext:`explicitly assigning value of variable of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to itself`|
9874+------------------------------------------------------------------------------------------------------------------------------------------+
9875
9876
9877-Wself-assign-field
9878-------------------
9879This diagnostic is enabled by default.
9880
9881**Diagnostic text:**
9882
9883+--------------------------------------------------------+-------------------------------+-----------------------------+
9884|:warning:`warning:` |nbsp| :diagtext:`assigning` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`to itself`|
9885|                                                        ||:diagtext:`field`            ||                             |
9886|                                                        |+-----------------------------+|                             |
9887|                                                        ||:diagtext:`instance variable`||                             |
9888|                                                        |+-----------------------------+|                             |
9889+--------------------------------------------------------+-------------------------------+-----------------------------+
9890
9891
9892-Wself-assign-overloaded
9893------------------------
9894**Diagnostic text:**
9895
9896+------------------------------------------------------------------------------------------------------------------------------------------+
9897|:warning:`warning:` |nbsp| :diagtext:`explicitly assigning value of variable of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to itself`|
9898+------------------------------------------------------------------------------------------------------------------------------------------+
9899
9900
9901-Wself-move
9902-----------
9903**Diagnostic text:**
9904
9905+------------------------------------------------------------------------------------------------------------------------------+
9906|:warning:`warning:` |nbsp| :diagtext:`explicitly moving variable of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to itself`|
9907+------------------------------------------------------------------------------------------------------------------------------+
9908
9909
9910-Wsemicolon-before-method-body
9911------------------------------
9912**Diagnostic text:**
9913
9914+------------------------------------------------------------------------------+
9915|:warning:`warning:` |nbsp| :diagtext:`semicolon before method body is ignored`|
9916+------------------------------------------------------------------------------+
9917
9918
9919-Wsentinel
9920----------
9921This diagnostic is enabled by default.
9922
9923**Diagnostic text:**
9924
9925+------------------------------------------------------------------+-----------------------------+
9926|:warning:`warning:` |nbsp| :diagtext:`missing sentinel in` |nbsp| |+---------------------------+|
9927|                                                                  ||:diagtext:`function call`  ||
9928|                                                                  |+---------------------------+|
9929|                                                                  ||:diagtext:`method dispatch`||
9930|                                                                  |+---------------------------+|
9931|                                                                  ||:diagtext:`block call`     ||
9932|                                                                  |+---------------------------+|
9933+------------------------------------------------------------------+-----------------------------+
9934
9935+------------------------------------------------------------------------------------------------------------------------------------------------+
9936|:warning:`warning:` |nbsp| :diagtext:`not enough variable arguments in` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declaration to fit a sentinel`|
9937+------------------------------------------------------------------------------------------------------------------------------------------------+
9938
9939
9940-Wsequence-point
9941----------------
9942Synonym for `-Wunsequenced`_.
9943
9944
9945-Wserialized-diagnostics
9946------------------------
9947This diagnostic is enabled by default.
9948
9949**Diagnostic text:**
9950
9951+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
9952|:warning:`warning:` |nbsp| :diagtext:`unable to open file` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for serializing diagnostics (`:placeholder:`B`:diagtext:`)`|
9953+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
9954
9955+--------------------------------------------------------------------------------------------+
9956|:warning:`warning:` |nbsp| :diagtext:`unable to merge a subprocess's serialized diagnostics`|
9957+--------------------------------------------------------------------------------------------+
9958
9959
9960-Wshadow
9961--------
9962Some of the diagnostics controlled by this flag are enabled by default.
9963
9964Also controls `-Wshadow-field-in-constructor-modified`_, `-Wshadow-ivar`_.
9965
9966**Diagnostic text:**
9967
9968+--------------------------------------------------------------------+-------------------------------------------------------------+
9969|:warning:`warning:` |nbsp| :diagtext:`declaration shadows a` |nbsp| |+-----------------------------------------------------------+|
9970|                                                                    ||:diagtext:`local variable`                                 ||
9971|                                                                    |+-----------------------------------------------------------+|
9972|                                                                    ||+-----------------------------------------------+          ||
9973|                                                                    |||:diagtext:`variable in` |nbsp| :placeholder:`C`|          ||
9974|                                                                    ||+-----------------------------------------------+          ||
9975|                                                                    |+-----------------------------------------------------------+|
9976|                                                                    ||+---------------------------------------------------------+||
9977|                                                                    |||:diagtext:`static data member of` |nbsp| :placeholder:`C`|||
9978|                                                                    ||+---------------------------------------------------------+||
9979|                                                                    |+-----------------------------------------------------------+|
9980|                                                                    ||+--------------------------------------------+             ||
9981|                                                                    |||:diagtext:`field of` |nbsp| :placeholder:`C`|             ||
9982|                                                                    ||+--------------------------------------------+             ||
9983|                                                                    |+-----------------------------------------------------------+|
9984|                                                                    ||+----------------------------------------------+           ||
9985|                                                                    |||:diagtext:`typedef in` |nbsp| :placeholder:`C`|           ||
9986|                                                                    ||+----------------------------------------------+           ||
9987|                                                                    |+-----------------------------------------------------------+|
9988|                                                                    ||+-------------------------------------------------+        ||
9989|                                                                    |||:diagtext:`type alias in` |nbsp| :placeholder:`C`|        ||
9990|                                                                    ||+-------------------------------------------------+        ||
9991|                                                                    |+-----------------------------------------------------------+|
9992+--------------------------------------------------------------------+-------------------------------------------------------------+
9993
9994
9995-Wshadow-all
9996------------
9997Some of the diagnostics controlled by this flag are enabled by default.
9998
9999Controls `-Wshadow`_, `-Wshadow-field`_, `-Wshadow-field-in-constructor`_, `-Wshadow-uncaptured-local`_.
10000
10001
10002-Wshadow-field
10003--------------
10004**Diagnostic text:**
10005
10006+---------------------------+------------------------------------+--------------------------------+--------------------------------------------------+----------------------------------------------------------------------+
10007|:warning:`warning:` |nbsp| |+----------------------------------+| |nbsp| :placeholder:`A` |nbsp| |+------------------------------------------------+|:diagtext:`shadows member inherited from type` |nbsp| :placeholder:`C`|
10008|                           ||:diagtext:`parameter`             ||                                ||                                                ||                                                                      |
10009|                           |+----------------------------------+|                                |+------------------------------------------------+|                                                                      |
10010|                           ||:diagtext:`non-static data member`||                                ||+----------------------------------------------+||                                                                      |
10011|                           |+----------------------------------+|                                |||:diagtext:`of` |nbsp| :placeholder:`B` |nbsp| |||                                                                      |
10012|                           |                                    |                                ||+----------------------------------------------+||                                                                      |
10013|                           |                                    |                                |+------------------------------------------------+|                                                                      |
10014+---------------------------+------------------------------------+--------------------------------+--------------------------------------------------+----------------------------------------------------------------------+
10015
10016
10017-Wshadow-field-in-constructor
10018-----------------------------
10019Also controls `-Wshadow-field-in-constructor-modified`_.
10020
10021**Diagnostic text:**
10022
10023+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10024|:warning:`warning:` |nbsp| :diagtext:`constructor parameter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`shadows the field` |nbsp| :placeholder:`B` |nbsp| :diagtext:`of` |nbsp| :placeholder:`C`|
10025+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10026
10027
10028-Wshadow-field-in-constructor-modified
10029--------------------------------------
10030**Diagnostic text:**
10031
10032+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
10033|:warning:`warning:` |nbsp| :diagtext:`modifying constructor parameter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`that shadows a field of` |nbsp| :placeholder:`B`|
10034+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
10035
10036
10037-Wshadow-ivar
10038-------------
10039This diagnostic is enabled by default.
10040
10041**Diagnostic text:**
10042
10043+------------------------------------------------------------------------------------------------------------------------------+
10044|:warning:`warning:` |nbsp| :diagtext:`local declaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`hides instance variable`|
10045+------------------------------------------------------------------------------------------------------------------------------+
10046
10047
10048-Wshadow-uncaptured-local
10049-------------------------
10050**Diagnostic text:**
10051
10052+--------------------------------------------------------------------+-------------------------------------------------------------+
10053|:warning:`warning:` |nbsp| :diagtext:`declaration shadows a` |nbsp| |+-----------------------------------------------------------+|
10054|                                                                    ||:diagtext:`local variable`                                 ||
10055|                                                                    |+-----------------------------------------------------------+|
10056|                                                                    ||+-----------------------------------------------+          ||
10057|                                                                    |||:diagtext:`variable in` |nbsp| :placeholder:`C`|          ||
10058|                                                                    ||+-----------------------------------------------+          ||
10059|                                                                    |+-----------------------------------------------------------+|
10060|                                                                    ||+---------------------------------------------------------+||
10061|                                                                    |||:diagtext:`static data member of` |nbsp| :placeholder:`C`|||
10062|                                                                    ||+---------------------------------------------------------+||
10063|                                                                    |+-----------------------------------------------------------+|
10064|                                                                    ||+--------------------------------------------+             ||
10065|                                                                    |||:diagtext:`field of` |nbsp| :placeholder:`C`|             ||
10066|                                                                    ||+--------------------------------------------+             ||
10067|                                                                    |+-----------------------------------------------------------+|
10068|                                                                    ||+----------------------------------------------+           ||
10069|                                                                    |||:diagtext:`typedef in` |nbsp| :placeholder:`C`|           ||
10070|                                                                    ||+----------------------------------------------+           ||
10071|                                                                    |+-----------------------------------------------------------+|
10072|                                                                    ||+-------------------------------------------------+        ||
10073|                                                                    |||:diagtext:`type alias in` |nbsp| :placeholder:`C`|        ||
10074|                                                                    ||+-------------------------------------------------+        ||
10075|                                                                    |+-----------------------------------------------------------+|
10076+--------------------------------------------------------------------+-------------------------------------------------------------+
10077
10078
10079-Wshift-count-negative
10080----------------------
10081This diagnostic is enabled by default.
10082
10083**Diagnostic text:**
10084
10085+--------------------------------------------------------------+
10086|:warning:`warning:` |nbsp| :diagtext:`shift count is negative`|
10087+--------------------------------------------------------------+
10088
10089
10090-Wshift-count-overflow
10091----------------------
10092This diagnostic is enabled by default.
10093
10094**Diagnostic text:**
10095
10096+-------------------------------------------------------------------+
10097|:warning:`warning:` |nbsp| :diagtext:`shift count >= width of type`|
10098+-------------------------------------------------------------------+
10099
10100
10101-Wshift-negative-value
10102----------------------
10103This diagnostic is enabled by default.
10104
10105**Diagnostic text:**
10106
10107+------------------------------------------------------------------------------------+
10108|:warning:`warning:` |nbsp| :diagtext:`shifting a negative signed value is undefined`|
10109+------------------------------------------------------------------------------------+
10110
10111
10112-Wshift-op-parentheses
10113----------------------
10114This diagnostic is enabled by default.
10115
10116**Diagnostic text:**
10117
10118+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10119|:warning:`warning:` |nbsp| :diagtext:`operator '`:placeholder:`A`:diagtext:`' has lower precedence than '`:placeholder:`B`:diagtext:`'; '`:placeholder:`B`:diagtext:`' will be evaluated first`|
10120+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10121
10122
10123-Wshift-overflow
10124----------------
10125This diagnostic is enabled by default.
10126
10127**Diagnostic text:**
10128
10129+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10130|: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`|
10131+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10132
10133
10134-Wshift-sign-overflow
10135---------------------
10136**Diagnostic text:**
10137
10138+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10139|: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`|
10140+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10141
10142
10143-Wshorten-64-to-32
10144------------------
10145**Diagnostic text:**
10146
10147+---------------------------------------------------------------------------------------------------------------------------------------------------------+
10148|:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses integer precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
10149+---------------------------------------------------------------------------------------------------------------------------------------------------------+
10150
10151
10152-Wsign-compare
10153--------------
10154**Diagnostic text:**
10155
10156+--------------------------------------------------------------------------------------------------------------------------------------------------------+
10157|:warning:`warning:` |nbsp| :diagtext:`comparison of integers of different signs:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`|
10158+--------------------------------------------------------------------------------------------------------------------------------------------------------+
10159
10160
10161-Wsign-conversion
10162-----------------
10163**Diagnostic text:**
10164
10165+----------------------------------------------------------------------------------------------------------------------------------------------------+
10166|:warning:`warning:` |nbsp| :diagtext:`implicit conversion changes signedness:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
10167+----------------------------------------------------------------------------------------------------------------------------------------------------+
10168
10169+---------------------------------------------------------------------------------------------------------------------------------------------+
10170|:warning:`warning:` |nbsp| :diagtext:`operand of ? changes signedness:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
10171+---------------------------------------------------------------------------------------------------------------------------------------------+
10172
10173+-----------------------------------------------------------------------------------------------------------+
10174|:warning:`warning:` |nbsp| :diagtext:`the resulting value is always non-negative after implicit conversion`|
10175+-----------------------------------------------------------------------------------------------------------+
10176
10177
10178-Wsign-promo
10179------------
10180This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
10181
10182-Wsigned-enum-bitfield
10183----------------------
10184**Diagnostic text:**
10185
10186+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10187|: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`|
10188+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10189
10190
10191-Wsizeof-array-argument
10192-----------------------
10193This diagnostic is enabled by default.
10194
10195**Diagnostic text:**
10196
10197+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10198|:warning:`warning:` |nbsp| :diagtext:`sizeof on array function parameter will return size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`instead of` |nbsp| :placeholder:`B`|
10199+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10200
10201
10202-Wsizeof-array-decay
10203--------------------
10204This diagnostic is enabled by default.
10205
10206**Diagnostic text:**
10207
10208+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10209|:warning:`warning:` |nbsp| :diagtext:`sizeof on pointer operation will return size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`instead of` |nbsp| :placeholder:`B`|
10210+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10211
10212
10213-Wsizeof-pointer-div
10214--------------------
10215This diagnostic is enabled by default.
10216
10217**Diagnostic text:**
10218
10219+-------------------------------------------------------------------------------------------------------------------------------+
10220|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' will return the size of the pointer, not the array itself`|
10221+-------------------------------------------------------------------------------------------------------------------------------+
10222
10223
10224-Wsizeof-pointer-memaccess
10225--------------------------
10226This diagnostic is enabled by default.
10227
10228**Diagnostic text:**
10229
10230+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10231|: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`|
10232+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10233
10234+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------+
10235|: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`|
10236|                                                                                                                                                                                                 ||:diagtext:`destination`||                                                                                       |
10237|                                                                                                                                                                                                 |+-----------------------+|                                                                                       |
10238|                                                                                                                                                                                                 ||:diagtext:`source`     ||                                                                                       |
10239|                                                                                                                                                                                                 |+-----------------------+|                                                                                       |
10240+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------+
10241
10242
10243-Wslash-u-filename
10244------------------
10245This diagnostic is enabled by default.
10246
10247**Diagnostic text:**
10248
10249+--------------------------------------------------------------------------------------------------+
10250|:warning:`warning:` |nbsp| :diagtext:`'/U`:placeholder:`A`:diagtext:`' treated as the '/U' option`|
10251+--------------------------------------------------------------------------------------------------+
10252
10253
10254-Wsometimes-uninitialized
10255-------------------------
10256**Diagnostic text:**
10257
10258+-----------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
10259|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is` |nbsp| |+--------------------+| |nbsp| :diagtext:`uninitialized whenever` |nbsp| |+------------------------------------------------------------------------------------------------------------+|
10260|                                                                                                     ||:diagtext:`used`    ||                                                  ||+---------------------------------------------------------------+-------------------+                       ||
10261|                                                                                                     |+--------------------+|                                                  |||:diagtext:`'`:placeholder:`D`:diagtext:`' condition is` |nbsp| |+-----------------+|                       ||
10262|                                                                                                     ||:diagtext:`captured`||                                                  |||                                                               ||:diagtext:`true` ||                       ||
10263|                                                                                                     |+--------------------+|                                                  |||                                                               |+-----------------+|                       ||
10264|                                                                                                     |                      |                                                  |||                                                               ||:diagtext:`false`||                       ||
10265|                                                                                                     |                      |                                                  |||                                                               |+-----------------+|                       ||
10266|                                                                                                     |                      |                                                  ||+---------------------------------------------------------------+-------------------+                       ||
10267|                                                                                                     |                      |                                                  |+------------------------------------------------------------------------------------------------------------+|
10268|                                                                                                     |                      |                                                  ||+-------------------------------------------------------+--------------------------------------------------+||
10269|                                                                                                     |                      |                                                  |||:diagtext:`'`:placeholder:`D`:diagtext:`' loop` |nbsp| |+------------------------------------------------+|||
10270|                                                                                                     |                      |                                                  |||                                                       ||:diagtext:`is entered`                          ||||
10271|                                                                                                     |                      |                                                  |||                                                       |+------------------------------------------------+|||
10272|                                                                                                     |                      |                                                  |||                                                       ||:diagtext:`exits because its condition is false`||||
10273|                                                                                                     |                      |                                                  |||                                                       |+------------------------------------------------+|||
10274|                                                                                                     |                      |                                                  ||+-------------------------------------------------------+--------------------------------------------------+||
10275|                                                                                                     |                      |                                                  |+------------------------------------------------------------------------------------------------------------+|
10276|                                                                                                     |                      |                                                  ||+-------------------------------------------------------+--------------------------------------------------+||
10277|                                                                                                     |                      |                                                  |||:diagtext:`'`:placeholder:`D`:diagtext:`' loop` |nbsp| |+------------------------------------------------+|||
10278|                                                                                                     |                      |                                                  |||                                                       ||:diagtext:`condition is true`                   ||||
10279|                                                                                                     |                      |                                                  |||                                                       |+------------------------------------------------+|||
10280|                                                                                                     |                      |                                                  |||                                                       ||:diagtext:`exits because its condition is false`||||
10281|                                                                                                     |                      |                                                  |||                                                       |+------------------------------------------------+|||
10282|                                                                                                     |                      |                                                  ||+-------------------------------------------------------+--------------------------------------------------+||
10283|                                                                                                     |                      |                                                  |+------------------------------------------------------------------------------------------------------------+|
10284|                                                                                                     |                      |                                                  ||+----------------------------------------------------------------------+                                    ||
10285|                                                                                                     |                      |                                                  |||:diagtext:`switch` |nbsp| :placeholder:`D` |nbsp| :diagtext:`is taken`|                                    ||
10286|                                                                                                     |                      |                                                  ||+----------------------------------------------------------------------+                                    ||
10287|                                                                                                     |                      |                                                  |+------------------------------------------------------------------------------------------------------------+|
10288|                                                                                                     |                      |                                                  ||:diagtext:`its declaration is reached`                                                                      ||
10289|                                                                                                     |                      |                                                  |+------------------------------------------------------------------------------------------------------------+|
10290|                                                                                                     |                      |                                                  ||+---------------------------------------------+                                                             ||
10291|                                                                                                     |                      |                                                  |||:placeholder:`D` |nbsp| :diagtext:`is called`|                                                             ||
10292|                                                                                                     |                      |                                                  ||+---------------------------------------------+                                                             ||
10293|                                                                                                     |                      |                                                  |+------------------------------------------------------------------------------------------------------------+|
10294+-----------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
10295
10296
10297-Wsource-uses-openmp
10298--------------------
10299Some of the diagnostics controlled by this flag are enabled by default.
10300
10301**Diagnostic text:**
10302
10303+------------------------------------------------------------------------------------------------------------------------------+
10304|:warning:`warning:` |nbsp| :diagtext:`OpenMP only allows an ordered construct with the simd clause nested in a simd construct`|
10305+------------------------------------------------------------------------------------------------------------------------------+
10306
10307+------------------------------------------------------------------------------+
10308|:warning:`warning:` |nbsp| :diagtext:`unexpected '#pragma omp ...' in program`|
10309+------------------------------------------------------------------------------+
10310
10311
10312-Wspir-compat
10313-------------
10314**Diagnostic text:**
10315
10316+----------------------------------------------------------------------------------------------------------------------+
10317|:warning:`warning:` |nbsp| :diagtext:`sampler initializer has invalid` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bits`|
10318+----------------------------------------------------------------------------------------------------------------------+
10319
10320
10321-Wstack-protector
10322-----------------
10323This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
10324
10325-Wstatic-float-init
10326-------------------
10327This diagnostic is enabled by default.
10328
10329Also controls `-Wgnu-static-float-init`_.
10330
10331**Diagnostic text:**
10332
10333+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
10334|:error:`error:` |nbsp| :diagtext:`in-class initializer for static data member of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires 'constexpr' specifier`|
10335+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
10336
10337
10338-Wstatic-in-inline
10339------------------
10340Some of the diagnostics controlled by this flag are enabled by default.
10341
10342**Diagnostic text:**
10343
10344+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
10345|:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`|
10346|                                                     ||:diagtext:`function`||                                                                                               |
10347|                                                     |+--------------------+|                                                                                               |
10348|                                                     ||:diagtext:`variable`||                                                                                               |
10349|                                                     |+--------------------+|                                                                                               |
10350+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
10351
10352+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
10353|:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`|
10354|                                                     ||:diagtext:`function`||                                                                                               |
10355|                                                     |+--------------------+|                                                                                               |
10356|                                                     ||:diagtext:`variable`||                                                                                               |
10357|                                                     |+--------------------+|                                                                                               |
10358+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
10359
10360
10361-Wstatic-inline-explicit-instantiation
10362--------------------------------------
10363This diagnostic is enabled by default.
10364
10365**Diagnostic text:**
10366
10367+-------------------------------------------------+--------------------+--------------------------------------------------------+
10368|:warning:`warning:` |nbsp| :diagtext:`ignoring '`|+------------------+|:diagtext:`' keyword on explicit template instantiation`|
10369|                                                 ||:diagtext:`static`||                                                        |
10370|                                                 |+------------------+|                                                        |
10371|                                                 ||:diagtext:`inline`||                                                        |
10372|                                                 |+------------------+|                                                        |
10373+-------------------------------------------------+--------------------+--------------------------------------------------------+
10374
10375
10376-Wstatic-local-in-inline
10377------------------------
10378This diagnostic is enabled by default.
10379
10380**Diagnostic text:**
10381
10382+--------------------------------------------------------------------------------------------------------------------------------+
10383|:warning:`warning:` |nbsp| :diagtext:`non-constant static local variable in inline function may be different in different files`|
10384+--------------------------------------------------------------------------------------------------------------------------------+
10385
10386
10387-Wstatic-self-init
10388------------------
10389This diagnostic is enabled by default.
10390
10391**Diagnostic text:**
10392
10393+----------------------------------------------------------------------------------------------------------------------------------------------------+
10394|:warning:`warning:` |nbsp| :diagtext:`static variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is suspiciously used within its own initialization`|
10395+----------------------------------------------------------------------------------------------------------------------------------------------------+
10396
10397
10398-Wstdlibcxx-not-found
10399---------------------
10400This diagnostic is enabled by default.
10401
10402**Diagnostic text:**
10403
10404+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10405|:warning:`warning:` |nbsp| :diagtext:`include path for stdlibc++ headers not found; pass '-stdlib=libc++' on the command line to use the libc++ standard library instead`|
10406+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10407
10408
10409-Wstrict-aliasing
10410-----------------
10411This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
10412
10413-Wstrict-aliasing=0
10414-------------------
10415This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
10416
10417-Wstrict-aliasing=1
10418-------------------
10419This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
10420
10421-Wstrict-aliasing=2
10422-------------------
10423This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
10424
10425-Wstrict-overflow
10426-----------------
10427This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
10428
10429-Wstrict-overflow=0
10430-------------------
10431This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
10432
10433-Wstrict-overflow=1
10434-------------------
10435This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
10436
10437-Wstrict-overflow=2
10438-------------------
10439This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
10440
10441-Wstrict-overflow=3
10442-------------------
10443This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
10444
10445-Wstrict-overflow=4
10446-------------------
10447This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
10448
10449-Wstrict-overflow=5
10450-------------------
10451This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
10452
10453-Wstrict-prototypes
10454-------------------
10455**Diagnostic text:**
10456
10457+---------------------------------------------------+--------------------------------------------------------------+-------------------------------+
10458|:warning:`warning:` |nbsp| :diagtext:`this` |nbsp| |+------------------------------------------------------------+| |nbsp| :diagtext:`a prototype`|
10459|                                                   ||:diagtext:`function declaration is not`                     ||                               |
10460|                                                   |+------------------------------------------------------------+|                               |
10461|                                                   ||:diagtext:`block declaration is not`                        ||                               |
10462|                                                   |+------------------------------------------------------------+|                               |
10463|                                                   ||:diagtext:`old-style function definition is not preceded by`||                               |
10464|                                                   |+------------------------------------------------------------+|                               |
10465+---------------------------------------------------+--------------------------------------------------------------+-------------------------------+
10466
10467
10468-Wstrict-prototypes
10469-------------------
10470**Diagnostic text:**
10471
10472+---------------------------------------------------+--------------------------------------------------------------+-------------------------------+
10473|:warning:`warning:` |nbsp| :diagtext:`this` |nbsp| |+------------------------------------------------------------+| |nbsp| :diagtext:`a prototype`|
10474|                                                   ||:diagtext:`function declaration is not`                     ||                               |
10475|                                                   |+------------------------------------------------------------+|                               |
10476|                                                   ||:diagtext:`block declaration is not`                        ||                               |
10477|                                                   |+------------------------------------------------------------+|                               |
10478|                                                   ||:diagtext:`old-style function definition is not preceded by`||                               |
10479|                                                   |+------------------------------------------------------------+|                               |
10480+---------------------------------------------------+--------------------------------------------------------------+-------------------------------+
10481
10482
10483-Wstrict-selector-match
10484-----------------------
10485**Diagnostic text:**
10486
10487+--------------------------------------------------------------------------------------------------------------+
10488|:warning:`warning:` |nbsp| :diagtext:`multiple methods named` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found`|
10489+--------------------------------------------------------------------------------------------------------------+
10490
10491
10492-Wstring-compare
10493----------------
10494This diagnostic is enabled by default.
10495
10496**Diagnostic text:**
10497
10498+---------------------------------------------------------------------------+------------------------------+--------------------------------------------------------+
10499|:warning:`warning:` |nbsp| :diagtext:`result of comparison against` |nbsp| |+----------------------------+| |nbsp| :diagtext:`is unspecified (use strncmp instead)`|
10500|                                                                           ||:diagtext:`a string literal`||                                                        |
10501|                                                                           |+----------------------------+|                                                        |
10502|                                                                           ||:diagtext:`@encode`         ||                                                        |
10503|                                                                           |+----------------------------+|                                                        |
10504+---------------------------------------------------------------------------+------------------------------+--------------------------------------------------------+
10505
10506
10507-Wstring-conversion
10508-------------------
10509**Diagnostic text:**
10510
10511+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
10512|:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns string literal into bool:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
10513+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
10514
10515
10516-Wstring-plus-char
10517------------------
10518This diagnostic is enabled by default.
10519
10520**Diagnostic text:**
10521
10522+------------------------------------------------------------------------------------------------------------------------------------------+
10523|:warning:`warning:` |nbsp| :diagtext:`adding` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to a string pointer does not append to the string`|
10524+------------------------------------------------------------------------------------------------------------------------------------------+
10525
10526
10527-Wstring-plus-int
10528-----------------
10529This diagnostic is enabled by default.
10530
10531**Diagnostic text:**
10532
10533+----------------------------------------------------------------------------------------------------------------------------------+
10534|:warning:`warning:` |nbsp| :diagtext:`adding` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to a string does not append to the string`|
10535+----------------------------------------------------------------------------------------------------------------------------------+
10536
10537
10538-Wstrlcpy-strlcat-size
10539----------------------
10540This diagnostic is enabled by default.
10541
10542**Diagnostic text:**
10543
10544+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10545|: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`|
10546+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10547
10548
10549-Wstrncat-size
10550--------------
10551This diagnostic is enabled by default.
10552
10553**Diagnostic text:**
10554
10555+--------------------------------------------------------------------------------------------------------------------------------+
10556|:warning:`warning:` |nbsp| :diagtext:`the value of the size argument in 'strncat' is too large, might lead to a buffer overflow`|
10557+--------------------------------------------------------------------------------------------------------------------------------+
10558
10559+-------------------------------------------------------------------------------------------------------+
10560|:warning:`warning:` |nbsp| :diagtext:`size argument in 'strncat' call appears to be size of the source`|
10561+-------------------------------------------------------------------------------------------------------+
10562
10563+-------------------------------------------------------------------------------------------+
10564|:warning:`warning:` |nbsp| :diagtext:`the value of the size argument to 'strncat' is wrong`|
10565+-------------------------------------------------------------------------------------------+
10566
10567
10568-Wsuper-class-method-mismatch
10569-----------------------------
10570**Diagnostic text:**
10571
10572+--------------------------------------------------------------------------------------------------------------------------------+
10573|:warning:`warning:` |nbsp| :diagtext:`method parameter type` |nbsp| :diagtext:`does not match super class method parameter type`|
10574+--------------------------------------------------------------------------------------------------------------------------------+
10575
10576
10577-Wsuspicious-bzero
10578------------------
10579This diagnostic is enabled by default.
10580
10581**Diagnostic text:**
10582
10583+----------------------------------------------------------------------+
10584|:warning:`warning:` |nbsp| :diagtext:`'size' argument to bzero is '0'`|
10585+----------------------------------------------------------------------+
10586
10587
10588-Wsuspicious-memaccess
10589----------------------
10590This diagnostic is enabled by default.
10591
10592Controls `-Wdynamic-class-memaccess`_, `-Wmemset-transposed-args`_, `-Wnontrivial-memaccess`_, `-Wsizeof-pointer-memaccess`_, `-Wsuspicious-bzero`_.
10593
10594
10595-Wswitch
10596--------
10597This diagnostic is enabled by default.
10598
10599**Diagnostic text:**
10600
10601+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10602|:warning:`warning:` |nbsp| :diagtext:`overflow converting case value to switch condition type (`:placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`:diagtext:`)`|
10603+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10604
10605+---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10606|:warning:`warning:` |nbsp| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
10607|                           ||+----------------------------------------------------------------------------------------------+                                                                                                ||
10608|                           |||:diagtext:`enumeration value` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not handled in switch`|                                                                                                ||
10609|                           ||+----------------------------------------------------------------------------------------------+                                                                                                ||
10610|                           |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
10611|                           ||+----------------------------------------------------------------------------------------------------------------------------------------------+                                                ||
10612|                           |||:diagtext:`enumeration values` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C` |nbsp| :diagtext:`not handled in switch`|                                                ||
10613|                           ||+----------------------------------------------------------------------------------------------------------------------------------------------+                                                ||
10614|                           |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
10615|                           ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+                 ||
10616|                           |||:diagtext:`enumeration values` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D` |nbsp| :diagtext:`not handled in switch`|                 ||
10617|                           ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+                 ||
10618|                           |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
10619|                           ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
10620|                           |||:placeholder:`A` |nbsp| :diagtext:`enumeration values not handled in switch:` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`...`|||
10621|                           ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
10622|                           |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
10623+---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10624
10625+------------------------------------------------------------------------------------------------+
10626|:warning:`warning:` |nbsp| :diagtext:`case value not in enumerated type` |nbsp| :placeholder:`A`|
10627+------------------------------------------------------------------------------------------------+
10628
10629
10630-Wswitch-bool
10631-------------
10632This diagnostic is enabled by default.
10633
10634**Diagnostic text:**
10635
10636+-------------------------------------------------------------------------+
10637|:warning:`warning:` |nbsp| :diagtext:`switch condition has boolean value`|
10638+-------------------------------------------------------------------------+
10639
10640
10641-Wswitch-default
10642----------------
10643This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
10644
10645-Wswitch-enum
10646-------------
10647**Diagnostic text:**
10648
10649+---------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10650|:warning:`warning:` |nbsp| |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
10651|                           ||+---------------------------------------------------------------------------------------------------------+                                                                                                ||
10652|                           |||:diagtext:`enumeration value` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not explicitly handled in switch`|                                                                                                ||
10653|                           ||+---------------------------------------------------------------------------------------------------------+                                                                                                ||
10654|                           |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
10655|                           ||+---------------------------------------------------------------------------------------------------------------------------------------------------------+                                                ||
10656|                           |||:diagtext:`enumeration values` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C` |nbsp| :diagtext:`not explicitly handled in switch`|                                                ||
10657|                           ||+---------------------------------------------------------------------------------------------------------------------------------------------------------+                                                ||
10658|                           |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
10659|                           ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+                 ||
10660|                           |||:diagtext:`enumeration values` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D` |nbsp| :diagtext:`not explicitly handled in switch`|                 ||
10661|                           ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+                 ||
10662|                           |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
10663|                           ||+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
10664|                           |||:placeholder:`A` |nbsp| :diagtext:`enumeration values not explicitly handled in switch:` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`...`|||
10665|                           ||+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
10666|                           |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
10667+---------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10668
10669
10670-Wsync-fetch-and-nand-semantics-changed
10671---------------------------------------
10672This diagnostic is enabled by default.
10673
10674**Diagnostic text:**
10675
10676+-------------------------------------------------------------------------------------------------------------------------------------------+
10677|:warning:`warning:` |nbsp| :diagtext:`the semantics of this intrinsic changed with GCC version 4.4 - the newer semantics are provided here`|
10678+-------------------------------------------------------------------------------------------------------------------------------------------+
10679
10680
10681-Wsynth
10682-------
10683This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
10684
10685-Wtautological-compare
10686----------------------
10687Some of the diagnostics controlled by this flag are enabled by default.
10688
10689Also controls `-Wtautological-constant-compare`_, `-Wtautological-overlap-compare`_, `-Wtautological-pointer-compare`_, `-Wtautological-undefined-compare`_.
10690
10691**Diagnostic text:**
10692
10693+---------------------------+---------------------------+--------------------------------------------------+------------------------+
10694|:warning:`warning:` |nbsp| |+-------------------------+|:diagtext:`comparison always evaluates to` |nbsp| |+----------------------+|
10695|                           ||:diagtext:`self-`        ||                                                  ||:diagtext:`a constant`||
10696|                           |+-------------------------+|                                                  |+----------------------+|
10697|                           ||:diagtext:`array` |nbsp| ||                                                  ||:placeholder:`C`      ||
10698|                           |+-------------------------+|                                                  |+----------------------+|
10699+---------------------------+---------------------------+--------------------------------------------------+------------------------+
10700
10701+-------------------------------------------------------------------------------------+-------------------+
10702|:warning:`warning:` |nbsp| :diagtext:`bitwise comparison always evaluates to` |nbsp| |+-----------------+|
10703|                                                                                     ||:diagtext:`false`||
10704|                                                                                     |+-----------------+|
10705|                                                                                     ||:diagtext:`true` ||
10706|                                                                                     |+-----------------+|
10707+-------------------------------------------------------------------------------------+-------------------+
10708
10709
10710-Wtautological-constant-compare
10711-------------------------------
10712This diagnostic is enabled by default.
10713
10714Also controls `-Wtautological-constant-out-of-range-compare`_.
10715
10716**Diagnostic text:**
10717
10718+----------------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-----------------------------------------------------+
10719|:warning:`warning:` |nbsp| :diagtext:`result of comparison of` |nbsp| |+----------------------------------------------+| |nbsp| :diagtext:`with` |nbsp| |+--------------------------------------------------------+| |nbsp| :diagtext:`is always` |nbsp| :placeholder:`E`|
10720|                                                                      ||+--------------------------------------------+||                                ||+------------------------------------------------------+||                                                     |
10721|                                                                      |||:diagtext:`constant` |nbsp| :placeholder:`A`|||                                |||:diagtext:`expression of type` |nbsp| :placeholder:`C`|||                                                     |
10722|                                                                      ||+--------------------------------------------+||                                ||+------------------------------------------------------+||                                                     |
10723|                                                                      |+----------------------------------------------+|                                |+--------------------------------------------------------+|                                                     |
10724|                                                                      ||:diagtext:`true`                              ||                                ||:diagtext:`boolean expression`                          ||                                                     |
10725|                                                                      |+----------------------------------------------+|                                |+--------------------------------------------------------+|                                                     |
10726|                                                                      ||:diagtext:`false`                             ||                                |                                                          |                                                     |
10727|                                                                      |+----------------------------------------------+|                                |                                                          |                                                     |
10728+----------------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-----------------------------------------------------+
10729
10730
10731-Wtautological-constant-in-range-compare
10732----------------------------------------
10733Controls `-Wtautological-type-limit-compare`_, `-Wtautological-unsigned-enum-zero-compare`_, `-Wtautological-unsigned-zero-compare`_.
10734
10735
10736-Wtautological-constant-out-of-range-compare
10737--------------------------------------------
10738This diagnostic is enabled by default.
10739
10740**Diagnostic text:**
10741
10742+----------------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-----------------------------------------------------+
10743|:warning:`warning:` |nbsp| :diagtext:`result of comparison of` |nbsp| |+----------------------------------------------+| |nbsp| :diagtext:`with` |nbsp| |+--------------------------------------------------------+| |nbsp| :diagtext:`is always` |nbsp| :placeholder:`E`|
10744|                                                                      ||+--------------------------------------------+||                                ||+------------------------------------------------------+||                                                     |
10745|                                                                      |||:diagtext:`constant` |nbsp| :placeholder:`A`|||                                |||:diagtext:`expression of type` |nbsp| :placeholder:`C`|||                                                     |
10746|                                                                      ||+--------------------------------------------+||                                ||+------------------------------------------------------+||                                                     |
10747|                                                                      |+----------------------------------------------+|                                |+--------------------------------------------------------+|                                                     |
10748|                                                                      ||:diagtext:`true`                              ||                                ||:diagtext:`boolean expression`                          ||                                                     |
10749|                                                                      |+----------------------------------------------+|                                |+--------------------------------------------------------+|                                                     |
10750|                                                                      ||:diagtext:`false`                             ||                                |                                                          |                                                     |
10751|                                                                      |+----------------------------------------------+|                                |                                                          |                                                     |
10752+----------------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-----------------------------------------------------+
10753
10754
10755-Wtautological-overlap-compare
10756------------------------------
10757**Diagnostic text:**
10758
10759+-----------------------------------------------------------------------------------------+-------------------+
10760|:warning:`warning:` |nbsp| :diagtext:`overlapping comparisons always evaluate to` |nbsp| |+-----------------+|
10761|                                                                                         ||:diagtext:`false`||
10762|                                                                                         |+-----------------+|
10763|                                                                                         ||:diagtext:`true` ||
10764|                                                                                         |+-----------------+|
10765+-----------------------------------------------------------------------------------------+-------------------+
10766
10767
10768-Wtautological-pointer-compare
10769------------------------------
10770This diagnostic is enabled by default.
10771
10772**Diagnostic text:**
10773
10774+--------------------------------------------------------------------+---------------------------+----------------------------------------------------------+-------------------------+----------------------------------------+-------------------+--------------------------------+
10775|: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`|
10776|                                                                    ||:diagtext:`function call`||                                                          ||:diagtext:`not` |nbsp| ||                                        ||:diagtext:`true` ||                                |
10777|                                                                    |+-------------------------+|                                                          |+-----------------------+|                                        |+-----------------+|                                |
10778|                                                                    ||:diagtext:`parameter`    ||                                                          ||                       ||                                        ||:diagtext:`false`||                                |
10779|                                                                    |+-------------------------+|                                                          |+-----------------------+|                                        |+-----------------+|                                |
10780+--------------------------------------------------------------------+---------------------------+----------------------------------------------------------+-------------------------+----------------------------------------+-------------------+--------------------------------+
10781
10782+------------------------------------------------------------+------------------------+----------------------------------------------------------+-------------------------+-----------------------------------------------------+-------------------+
10783|:warning:`warning:` |nbsp| :diagtext:`comparison of` |nbsp| |+----------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`'` |nbsp| |+-----------------------+|:diagtext:`equal to a null pointer is always` |nbsp| |+-----------------+|
10784|                                                            ||:diagtext:`address of`||                                                          ||:diagtext:`not` |nbsp| ||                                                     ||:diagtext:`true` ||
10785|                                                            |+----------------------+|                                                          |+-----------------------+|                                                     |+-----------------+|
10786|                                                            ||:diagtext:`function`  ||                                                          ||                       ||                                                     ||:diagtext:`false`||
10787|                                                            |+----------------------+|                                                          |+-----------------------+|                                                     |+-----------------+|
10788|                                                            ||:diagtext:`array`     ||                                                          |                         |                                                     |                   |
10789|                                                            |+----------------------+|                                                          |                         |                                                     |                   |
10790+------------------------------------------------------------+------------------------+----------------------------------------------------------+-------------------------+-----------------------------------------------------+-------------------+
10791
10792
10793-Wtautological-type-limit-compare
10794---------------------------------
10795**Diagnostic text:**
10796
10797+-------------------------------------------------------------------+------------------+--------------------------------+------------------+-----------------------------------------------------+
10798|:warning:`warning:` |nbsp| :diagtext:`result of comparison` |nbsp| |+----------------+| |nbsp| :placeholder:`C` |nbsp| |+----------------+| |nbsp| :diagtext:`is always` |nbsp| :placeholder:`E`|
10799|                                                                   ||:placeholder:`D`||                                ||:placeholder:`B`||                                                     |
10800|                                                                   |+----------------+|                                |+----------------+|                                                     |
10801|                                                                   ||:placeholder:`B`||                                ||:placeholder:`D`||                                                     |
10802|                                                                   |+----------------+|                                |+----------------+|                                                     |
10803+-------------------------------------------------------------------+------------------+--------------------------------+------------------+-----------------------------------------------------+
10804
10805
10806-Wtautological-undefined-compare
10807--------------------------------
10808This diagnostic is enabled by default.
10809
10810**Diagnostic text:**
10811
10812+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
10813|: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| |+-----------------+|
10814|                                                                                                                                                                               ||:diagtext:`true` ||
10815|                                                                                                                                                                               |+-----------------+|
10816|                                                                                                                                                                               ||:diagtext:`false`||
10817|                                                                                                                                                                               |+-----------------+|
10818+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
10819
10820+------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
10821|:warning:`warning:` |nbsp| :diagtext:`'this' pointer cannot be null in well-defined C++ code; comparison may be assumed to always evaluate to` |nbsp| |+-----------------+|
10822|                                                                                                                                                      ||:diagtext:`true` ||
10823|                                                                                                                                                      |+-----------------+|
10824|                                                                                                                                                      ||:diagtext:`false`||
10825|                                                                                                                                                      |+-----------------+|
10826+------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
10827
10828
10829-Wtautological-unsigned-enum-zero-compare
10830-----------------------------------------
10831**Diagnostic text:**
10832
10833+----------------------------------------------------------------------+--------------------------------------+--------------------------------+--------------------------------------+-----------------------------------------------------+
10834|:warning:`warning:` |nbsp| :diagtext:`result of comparison of` |nbsp| |+------------------------------------+| |nbsp| :placeholder:`C` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`is always` |nbsp| :placeholder:`E`|
10835|                                                                      ||:placeholder:`D`                    ||                                ||:diagtext:`unsigned enum expression`||                                                     |
10836|                                                                      |+------------------------------------+|                                |+------------------------------------+|                                                     |
10837|                                                                      ||:diagtext:`unsigned enum expression`||                                ||:placeholder:`D`                    ||                                                     |
10838|                                                                      |+------------------------------------+|                                |+------------------------------------+|                                                     |
10839+----------------------------------------------------------------------+--------------------------------------+--------------------------------+--------------------------------------+-----------------------------------------------------+
10840
10841
10842-Wtautological-unsigned-zero-compare
10843------------------------------------
10844**Diagnostic text:**
10845
10846+----------------------------------------------------------------------+---------------------------------+--------------------------------+---------------------------------+-----------------------------------------------------+
10847|:warning:`warning:` |nbsp| :diagtext:`result of comparison of` |nbsp| |+-------------------------------+| |nbsp| :placeholder:`C` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`is always` |nbsp| :placeholder:`E`|
10848|                                                                      ||:placeholder:`D`               ||                                ||:diagtext:`unsigned expression`||                                                     |
10849|                                                                      |+-------------------------------+|                                |+-------------------------------+|                                                     |
10850|                                                                      ||:diagtext:`unsigned expression`||                                ||:placeholder:`D`               ||                                                     |
10851|                                                                      |+-------------------------------+|                                |+-------------------------------+|                                                     |
10852+----------------------------------------------------------------------+---------------------------------+--------------------------------+---------------------------------+-----------------------------------------------------+
10853
10854
10855-Wtentative-definition-incomplete-type
10856--------------------------------------
10857This diagnostic is enabled by default.
10858
10859**Diagnostic text:**
10860
10861+---------------------------------------------------------------------------------------------------------------------------------------------------+
10862|:warning:`warning:` |nbsp| :diagtext:`tentative definition of variable with internal linkage has incomplete non-array type` |nbsp| :placeholder:`A`|
10863+---------------------------------------------------------------------------------------------------------------------------------------------------+
10864
10865
10866-Wthread-safety
10867---------------
10868Controls `-Wthread-safety-analysis`_, `-Wthread-safety-attributes`_, `-Wthread-safety-precise`_, `-Wthread-safety-reference`_.
10869
10870
10871-Wthread-safety-analysis
10872------------------------
10873**Diagnostic text:**
10874
10875+----------------------------------------------------------------------------------------------------------------------------------------------------+
10876|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' must be acquired before '`:placeholder:`C`:diagtext:`'`|
10877+----------------------------------------------------------------------------------------------------------------------------------------------------+
10878
10879+---------------------------------------------------------------------------------------------------------------------------------+
10880|:warning:`warning:` |nbsp| :diagtext:`Cycle in acquired\_before/after dependencies, starting with '`:placeholder:`A`:diagtext:`'`|
10881+---------------------------------------------------------------------------------------------------------------------------------+
10882
10883+---------------------------------------------------------------------+
10884|:warning:`warning:` |nbsp| :diagtext:`cannot resolve lock expression`|
10885+---------------------------------------------------------------------+
10886
10887+-----------------------------------------------------------------------------------------------------------------------------------------------+
10888|:warning:`warning:` |nbsp| :diagtext:`acquiring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' that is already held`|
10889+-----------------------------------------------------------------------------------------------------------------------------------------------+
10890
10891+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
10892|:warning:`warning:` |nbsp| :diagtext:`expecting` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' to be held at start of each loop`|
10893+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
10894
10895+------------------------------------------------------------------------------------------------------------------------------------------------------------+
10896|:warning:`warning:` |nbsp| :diagtext:`expecting` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' to be held at the end of function`|
10897+------------------------------------------------------------------------------------------------------------------------------------------------------------+
10898
10899+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10900|:warning:`warning:` |nbsp| :diagtext:`cannot call function '`:placeholder:`B`:diagtext:`' while` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`C`:diagtext:`' is held`|
10901+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10902
10903+---------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
10904|:warning:`warning:` |nbsp| :diagtext:`calling function` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
10905|                                                                                                                                                   ||+------------------------------------------+            ||
10906|                                                                                                                                                   |||:diagtext:`'`:placeholder:`C`:diagtext:`'`|            ||
10907|                                                                                                                                                   ||+------------------------------------------+            ||
10908|                                                                                                                                                   |+--------------------------------------------------------+|
10909|                                                                                                                                                   ||+------------------------------------------------------+||
10910|                                                                                                                                                   |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
10911|                                                                                                                                                   ||+------------------------------------------------------+||
10912|                                                                                                                                                   |+--------------------------------------------------------+|
10913+---------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
10914
10915+--------------------------------------------------------------------------------------------------------------------------------------------------+
10916|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is acquired exclusively and shared in the same scope`|
10917+--------------------------------------------------------------------------------------------------------------------------------------------------+
10918
10919+------------------------------------------------------------------------------------------------------------------------------------+
10920|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is not held on every path through here`|
10921+------------------------------------------------------------------------------------------------------------------------------------+
10922
10923+----------------------------------------------------------------------------------------------------------------------------------+
10924|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is still held at the end of function`|
10925+----------------------------------------------------------------------------------------------------------------------------------+
10926
10927+--------------------------------------------------------------------------------------------------------------------------------------------+
10928|:warning:`warning:` |nbsp| :diagtext:`releasing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' that was not held`|
10929+--------------------------------------------------------------------------------------------------------------------------------------------+
10930
10931+----------------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+-----------------------+--------------------------+
10932|:warning:`warning:` |nbsp| :diagtext:`releasing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' using` |nbsp| |+---------------------+| |nbsp| :diagtext:`access, expected` |nbsp| |+---------------------+| |nbsp| :diagtext:`access`|
10933|                                                                                                                                        ||:diagtext:`shared`   ||                                            ||:diagtext:`shared`   ||                          |
10934|                                                                                                                                        |+---------------------+|                                            |+---------------------+|                          |
10935|                                                                                                                                        ||:diagtext:`exclusive`||                                            ||:diagtext:`exclusive`||                          |
10936|                                                                                                                                        |+---------------------+|                                            |+---------------------+|                          |
10937+----------------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+-----------------------+--------------------------+
10938
10939+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------+-----------------------------------+
10940|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires holding` |nbsp| |+---------------------------------+|
10941|                           ||:diagtext:`reading`||                                                                                                               ||:diagtext:`any mutex`            ||
10942|                           |+-------------------+|                                                                                                               |+---------------------------------+|
10943|                           ||:diagtext:`writing`||                                                                                                               ||:diagtext:`any mutex exclusively`||
10944|                           |+-------------------+|                                                                                                               |+---------------------------------+|
10945+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------+-----------------------------------+
10946
10947+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
10948|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
10949|                           ||:diagtext:`reading`||                                                                                                                                       ||+------------------------------------------+            ||
10950|                           |+-------------------+|                                                                                                                                       |||:diagtext:`'`:placeholder:`C`:diagtext:`'`|            ||
10951|                           ||:diagtext:`writing`||                                                                                                                                       ||+------------------------------------------+            ||
10952|                           |+-------------------+|                                                                                                                                       |+--------------------------------------------------------+|
10953|                           |                     |                                                                                                                                       ||+------------------------------------------------------+||
10954|                           |                     |                                                                                                                                       |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
10955|                           |                     |                                                                                                                                       ||+------------------------------------------------------+||
10956|                           |                     |                                                                                                                                       |+--------------------------------------------------------+|
10957+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
10958
10959+---------------------------+---------------------+------------------------------------------------------------------------------------------------+-----------------------------------+
10960|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires holding` |nbsp| |+---------------------------------+|
10961|                           ||:diagtext:`reading`||                                                                                                ||:diagtext:`any mutex`            ||
10962|                           |+-------------------+|                                                                                                |+---------------------------------+|
10963|                           ||:diagtext:`writing`||                                                                                                ||:diagtext:`any mutex exclusively`||
10964|                           |+-------------------+|                                                                                                |+---------------------------------+|
10965+---------------------------+---------------------+------------------------------------------------------------------------------------------------+-----------------------------------+
10966
10967+---------------------------+---------------------+------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
10968|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
10969|                           ||:diagtext:`reading`||                                                                                                                        ||+------------------------------------------+            ||
10970|                           |+-------------------+|                                                                                                                        |||:diagtext:`'`:placeholder:`C`:diagtext:`'`|            ||
10971|                           ||:diagtext:`writing`||                                                                                                                        ||+------------------------------------------+            ||
10972|                           |+-------------------+|                                                                                                                        |+--------------------------------------------------------+|
10973|                           |                     |                                                                                                                        ||+------------------------------------------------------+||
10974|                           |                     |                                                                                                                        |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
10975|                           |                     |                                                                                                                        ||+------------------------------------------------------+||
10976|                           |                     |                                                                                                                        |+--------------------------------------------------------+|
10977+---------------------------+---------------------+------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
10978
10979
10980-Wthread-safety-attributes
10981--------------------------
10982**Diagnostic text:**
10983
10984+----------------------------------------------------------------------------------------------------------------------------------------+
10985|:warning:`warning:` |nbsp| :diagtext:`invalid capability name '`:placeholder:`A`:diagtext:`'; capability name must be 'mutex' or 'role'`|
10986+----------------------------------------------------------------------------------------------------------------------------------------+
10987
10988+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10989|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute requires arguments whose type is annotated with 'capability' attribute; type here is` |nbsp| :placeholder:`B`|
10990+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10991
10992+--------------------------------------------------------------------------------------------------------------------------------------------------------+
10993|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute can only be applied in a context annotated with 'capability("mutex")' attribute`|
10994+--------------------------------------------------------------------------------------------------------------------------------------------------------+
10995
10996+----------------------------------------------------------------------------------------------------------------------------------+
10997|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`only applies to pointer types; type here is` |nbsp| :placeholder:`B`|
10998+----------------------------------------------------------------------------------------------------------------------------------+
10999
11000+------------------------------------------------------------------------------------------------------------------------------------+
11001|:warning:`warning:` |nbsp| :diagtext:`ignoring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute because its argument is invalid`|
11002+------------------------------------------------------------------------------------------------------------------------------------+
11003
11004+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11005|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute without capability arguments refers to 'this', but` |nbsp| :placeholder:`B` |nbsp| :diagtext:`isn't annotated with 'capability' or 'scoped\_lockable' attribute`|
11006+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11007
11008+----------------------------------------------------------------------------------------------------------------------------------------------------------+
11009|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute without capability arguments can only be applied to non-static methods of a class`|
11010+----------------------------------------------------------------------------------------------------------------------------------------------------------+
11011
11012
11013-Wthread-safety-beta
11014--------------------
11015**Diagnostic text:**
11016
11017+------------------------------------------------------------------+
11018|:warning:`warning:` |nbsp| :diagtext:`Thread safety beta warning.`|
11019+------------------------------------------------------------------+
11020
11021
11022-Wthread-safety-negative
11023------------------------
11024**Diagnostic text:**
11025
11026+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11027|:warning:`warning:` |nbsp| :diagtext:`acquiring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' requires negative capability '`:placeholder:`C`:diagtext:`'`|
11028+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11029
11030
11031-Wthread-safety-precise
11032-----------------------
11033**Diagnostic text:**
11034
11035+---------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
11036|:warning:`warning:` |nbsp| :diagtext:`calling function` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
11037|                                                                                                                                                   ||+------------------------------------------+            ||
11038|                                                                                                                                                   |||:diagtext:`'`:placeholder:`C`:diagtext:`'`|            ||
11039|                                                                                                                                                   ||+------------------------------------------+            ||
11040|                                                                                                                                                   |+--------------------------------------------------------+|
11041|                                                                                                                                                   ||+------------------------------------------------------+||
11042|                                                                                                                                                   |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
11043|                                                                                                                                                   ||+------------------------------------------------------+||
11044|                                                                                                                                                   |+--------------------------------------------------------+|
11045+---------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
11046
11047+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
11048|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
11049|                           ||:diagtext:`reading`||                                                                                                                                       ||+------------------------------------------+            ||
11050|                           |+-------------------+|                                                                                                                                       |||:diagtext:`'`:placeholder:`C`:diagtext:`'`|            ||
11051|                           ||:diagtext:`writing`||                                                                                                                                       ||+------------------------------------------+            ||
11052|                           |+-------------------+|                                                                                                                                       |+--------------------------------------------------------+|
11053|                           |                     |                                                                                                                                       ||+------------------------------------------------------+||
11054|                           |                     |                                                                                                                                       |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
11055|                           |                     |                                                                                                                                       ||+------------------------------------------------------+||
11056|                           |                     |                                                                                                                                       |+--------------------------------------------------------+|
11057+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
11058
11059+---------------------------+---------------------+------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
11060|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
11061|                           ||:diagtext:`reading`||                                                                                                                        ||+------------------------------------------+            ||
11062|                           |+-------------------+|                                                                                                                        |||:diagtext:`'`:placeholder:`C`:diagtext:`'`|            ||
11063|                           ||:diagtext:`writing`||                                                                                                                        ||+------------------------------------------+            ||
11064|                           |+-------------------+|                                                                                                                        |+--------------------------------------------------------+|
11065|                           |                     |                                                                                                                        ||+------------------------------------------------------+||
11066|                           |                     |                                                                                                                        |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
11067|                           |                     |                                                                                                                        ||+------------------------------------------------------+||
11068|                           |                     |                                                                                                                        |+--------------------------------------------------------+|
11069+---------------------------+---------------------+------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
11070
11071
11072-Wthread-safety-reference
11073-------------------------
11074**Diagnostic text:**
11075
11076+----------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
11077|:warning:`warning:` |nbsp| :diagtext:`passing variable` |nbsp| :placeholder:`B` |nbsp| :diagtext:`by reference requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
11078|                                                                                                                                                                ||+------------------------------------------+            ||
11079|                                                                                                                                                                |||:diagtext:`'`:placeholder:`C`:diagtext:`'`|            ||
11080|                                                                                                                                                                ||+------------------------------------------+            ||
11081|                                                                                                                                                                |+--------------------------------------------------------+|
11082|                                                                                                                                                                ||+------------------------------------------------------+||
11083|                                                                                                                                                                |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
11084|                                                                                                                                                                ||+------------------------------------------------------+||
11085|                                                                                                                                                                |+--------------------------------------------------------+|
11086+----------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
11087
11088+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
11089|:warning:`warning:` |nbsp| :diagtext:`passing the value that` |nbsp| :placeholder:`B` |nbsp| :diagtext:`points to by reference requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
11090|                                                                                                                                                                                ||+------------------------------------------+            ||
11091|                                                                                                                                                                                |||:diagtext:`'`:placeholder:`C`:diagtext:`'`|            ||
11092|                                                                                                                                                                                ||+------------------------------------------+            ||
11093|                                                                                                                                                                                |+--------------------------------------------------------+|
11094|                                                                                                                                                                                ||+------------------------------------------------------+||
11095|                                                                                                                                                                                |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
11096|                                                                                                                                                                                ||+------------------------------------------------------+||
11097|                                                                                                                                                                                |+--------------------------------------------------------+|
11098+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
11099
11100
11101-Wthread-safety-verbose
11102-----------------------
11103**Diagnostic text:**
11104
11105+---------------------------------------------------------------------+
11106|:warning:`warning:` |nbsp| :diagtext:`Thread safety verbose warning.`|
11107+---------------------------------------------------------------------+
11108
11109
11110-Wtrigraphs
11111-----------
11112This diagnostic is enabled by default.
11113
11114**Diagnostic text:**
11115
11116+-----------------------------------------------------------------------------------------------------+
11117|:warning:`warning:` |nbsp| :diagtext:`trigraph converted to '`:placeholder:`A`:diagtext:`' character`|
11118+-----------------------------------------------------------------------------------------------------+
11119
11120+------------------------------------------------------------------+
11121|:warning:`warning:` |nbsp| :diagtext:`trigraph ends block comment`|
11122+------------------------------------------------------------------+
11123
11124+-------------------------------------------------------+
11125|:warning:`warning:` |nbsp| :diagtext:`trigraph ignored`|
11126+-------------------------------------------------------+
11127
11128+-------------------------------------------------------------------------------+
11129|:warning:`warning:` |nbsp| :diagtext:`ignored trigraph would end block comment`|
11130+-------------------------------------------------------------------------------+
11131
11132
11133-Wtype-limits
11134-------------
11135This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
11136
11137-Wtype-safety
11138-------------
11139This diagnostic is enabled by default.
11140
11141**Diagnostic text:**
11142
11143+----------------------------------------------------------------------------------------------------------------------------+
11144|:warning:`warning:` |nbsp| :diagtext:`specified` |nbsp| :placeholder:`A` |nbsp| :diagtext:`type tag requires a null pointer`|
11145+----------------------------------------------------------------------------------------------------------------------------+
11146
11147+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------+
11148|:warning:`warning:` |nbsp| :diagtext:`argument type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`doesn't match specified` |nbsp| :placeholder:`B` |nbsp| :diagtext:`type tag` |nbsp| |+---------------------------------------------------+|
11149|                                                                                                                                                                                   ||+-------------------------------------------------+||
11150|                                                                                                                                                                                   |||:diagtext:`that requires` |nbsp| :placeholder:`D`|||
11151|                                                                                                                                                                                   ||+-------------------------------------------------+||
11152|                                                                                                                                                                                   |+---------------------------------------------------+|
11153|                                                                                                                                                                                   ||                                                   ||
11154|                                                                                                                                                                                   |+---------------------------------------------------+|
11155+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------+
11156
11157+---------------------------------------------------------------------------------------------------+
11158|:warning:`warning:` |nbsp| :diagtext:`this type tag was not designed to be used with this function`|
11159+---------------------------------------------------------------------------------------------------+
11160
11161
11162-Wtypedef-redefinition
11163----------------------
11164This diagnostic is enabled by default.
11165
11166**Diagnostic text:**
11167
11168+--------------------------------------------------------------------------------------------------------------------------+
11169|:warning:`warning:` |nbsp| :diagtext:`redefinition of typedef` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C11 feature`|
11170+--------------------------------------------------------------------------------------------------------------------------+
11171
11172
11173-Wtypename-missing
11174------------------
11175This diagnostic is enabled by default.
11176
11177**Diagnostic text:**
11178
11179+-------------------------------------------------------------------------------------------------------------------------------------+
11180|:warning:`warning:` |nbsp| :diagtext:`missing 'typename' prior to dependent type name '`:placeholder:`A`:placeholder:`B`:diagtext:`'`|
11181+-------------------------------------------------------------------------------------------------------------------------------------+
11182
11183
11184-Wunable-to-open-stats-file
11185---------------------------
11186This diagnostic is enabled by default.
11187
11188**Diagnostic text:**
11189
11190+-------------------------------------------------------------------------------------------------------------------------------------------+
11191|:warning:`warning:` |nbsp| :diagtext:`unable to open statistics output file '`:placeholder:`A`:diagtext:`': '`:placeholder:`B`:diagtext:`'`|
11192+-------------------------------------------------------------------------------------------------------------------------------------------+
11193
11194
11195-Wunavailable-declarations
11196--------------------------
11197This diagnostic is enabled by default.
11198
11199**Diagnostic text:**
11200
11201+----------------------------------------------------------------------------------------------------------------------+
11202|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be unavailable because the receiver type is unknown`|
11203+----------------------------------------------------------------------------------------------------------------------+
11204
11205
11206-Wundeclared-selector
11207---------------------
11208**Diagnostic text:**
11209
11210+----------------------------------------------------------------------------------+
11211|:warning:`warning:` |nbsp| :diagtext:`undeclared selector` |nbsp| :placeholder:`A`|
11212+----------------------------------------------------------------------------------+
11213
11214+-------------------------------------------------------------------------------------------------------------------------------------------------+
11215|:warning:`warning:` |nbsp| :diagtext:`undeclared selector` |nbsp| :placeholder:`A`:diagtext:`; did you mean` |nbsp| :placeholder:`B`:diagtext:`?`|
11216+-------------------------------------------------------------------------------------------------------------------------------------------------+
11217
11218
11219-Wundef
11220-------
11221**Diagnostic text:**
11222
11223+---------------------------------------------------------------------------------------------+
11224|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not defined, evaluates to 0`|
11225+---------------------------------------------------------------------------------------------+
11226
11227
11228-Wundefined-bool-conversion
11229---------------------------
11230This diagnostic is enabled by default.
11231
11232**Diagnostic text:**
11233
11234+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11235|: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`|
11236+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11237
11238+-----------------------------------------------------------------------------------------------------------------------------------------------+
11239|:warning:`warning:` |nbsp| :diagtext:`'this' pointer cannot be null in well-defined C++ code; pointer may be assumed to always convert to true`|
11240+-----------------------------------------------------------------------------------------------------------------------------------------------+
11241
11242
11243-Wundefined-func-template
11244-------------------------
11245**Diagnostic text:**
11246
11247+---------------------------------------------------------------------------------------------------------------------------------------------------------+
11248|:warning:`warning:` |nbsp| :diagtext:`instantiation of function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`required here, but no definition is available`|
11249+---------------------------------------------------------------------------------------------------------------------------------------------------------+
11250
11251
11252-Wundefined-inline
11253------------------
11254This diagnostic is enabled by default.
11255
11256**Diagnostic text:**
11257
11258+----------------------------------------------------------------------------------------------------------------+
11259|:warning:`warning:` |nbsp| :diagtext:`inline function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not defined`|
11260+----------------------------------------------------------------------------------------------------------------+
11261
11262
11263-Wundefined-internal
11264--------------------
11265This diagnostic is enabled by default.
11266
11267**Diagnostic text:**
11268
11269+---------------------------+----------------------+-----------------------------------------------------------------------------------+
11270|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`has internal linkage but is not defined`|
11271|                           ||:diagtext:`function`||                                                                                   |
11272|                           |+--------------------+|                                                                                   |
11273|                           ||:diagtext:`variable`||                                                                                   |
11274|                           |+--------------------+|                                                                                   |
11275+---------------------------+----------------------+-----------------------------------------------------------------------------------+
11276
11277
11278-Wundefined-internal-type
11279-------------------------
11280**Diagnostic text:**
11281
11282+---------------------------------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------------------+
11283|: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`|
11284|                                                                                                         ||:diagtext:`function`||                                                                                  |
11285|                                                                                                         |+--------------------+|                                                                                  |
11286|                                                                                                         ||:diagtext:`variable`||                                                                                  |
11287|                                                                                                         |+--------------------+|                                                                                  |
11288+---------------------------------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------------------+
11289
11290
11291-Wundefined-reinterpret-cast
11292----------------------------
11293**Diagnostic text:**
11294
11295+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11296|: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`|
11297+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11298
11299+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11300|:warning:`warning:` |nbsp| :diagtext:`reinterpret\_cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has undefined behavior`|
11301+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11302
11303
11304-Wundefined-var-template
11305------------------------
11306This diagnostic is enabled by default.
11307
11308**Diagnostic text:**
11309
11310+---------------------------------------------------------------------------------------------------------------------------------------------------------+
11311|:warning:`warning:` |nbsp| :diagtext:`instantiation of variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`required here, but no definition is available`|
11312+---------------------------------------------------------------------------------------------------------------------------------------------------------+
11313
11314
11315-Wunevaluated-expression
11316------------------------
11317This diagnostic is enabled by default.
11318
11319Also controls `-Wpotentially-evaluated-expression`_.
11320
11321**Diagnostic text:**
11322
11323+-----------------------------------------------------------------------------------------------------------+
11324|:warning:`warning:` |nbsp| :diagtext:`expression with side effects has no effect in an unevaluated context`|
11325+-----------------------------------------------------------------------------------------------------------+
11326
11327
11328-Wunguarded-availability
11329------------------------
11330Some of the diagnostics controlled by this flag are enabled by default.
11331
11332Also controls `-Wunguarded-availability-new`_.
11333
11334**Diagnostic text:**
11335
11336+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
11337|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is only available on` |nbsp| :placeholder:`B` |nbsp| :placeholder:`C` |nbsp| :diagtext:`or newer`|
11338+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
11339
11340
11341-Wunguarded-availability-new
11342----------------------------
11343This diagnostic is enabled by default.
11344
11345**Diagnostic text:**
11346
11347+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
11348|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is only available on` |nbsp| :placeholder:`B` |nbsp| :placeholder:`C` |nbsp| :diagtext:`or newer`|
11349+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
11350
11351
11352-Wunicode
11353---------
11354This diagnostic is enabled by default.
11355
11356**Diagnostic text:**
11357
11358+-------------------------------------------------------------------------------------------------------------------+
11359|:warning:`warning:` |nbsp| :diagtext:`incomplete universal character name; treating as '\\' followed by identifier`|
11360+-------------------------------------------------------------------------------------------------------------------+
11361
11362+-------------------------------------------------------------------------------------------------------------------------------------------------------+
11363|:warning:`warning:` |nbsp| :diagtext:`\\`:placeholder:`A` |nbsp| :diagtext:`used with no following hex digits; treating as '\\' followed by identifier`|
11364+-------------------------------------------------------------------------------------------------------------------------------------------------------+
11365
11366+-----------------------------------------------------------------------------------------------+
11367|:warning:`warning:` |nbsp| :diagtext:`universal character name refers to a surrogate character`|
11368+-----------------------------------------------------------------------------------------------+
11369
11370+--------------------------------------------------------------------------------------------------------------------------------------+
11371|:warning:`warning:` |nbsp| :diagtext:`universal character names are only valid in C99 or C++; treating as '\\' followed by identifier`|
11372+--------------------------------------------------------------------------------------------------------------------------------------+
11373
11374+---------------------------------------------------------------------------------------------+
11375|:warning:`warning:` |nbsp| :diagtext:`universal character names are only valid in C99 or C++`|
11376+---------------------------------------------------------------------------------------------+
11377
11378
11379-Wunicode-homoglyph
11380-------------------
11381This diagnostic is enabled by default.
11382
11383**Diagnostic text:**
11384
11385+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11386|:warning:`warning:` |nbsp| :diagtext:`treating Unicode character <U+`:placeholder:`A`:diagtext:`> as identifier character rather than as '`:placeholder:`B`:diagtext:`' symbol`|
11387+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11388
11389
11390-Wunicode-whitespace
11391--------------------
11392This diagnostic is enabled by default.
11393
11394**Diagnostic text:**
11395
11396+-------------------------------------------------------------------------------+
11397|:warning:`warning:` |nbsp| :diagtext:`treating Unicode character as whitespace`|
11398+-------------------------------------------------------------------------------+
11399
11400
11401-Wunicode-zero-width
11402--------------------
11403This diagnostic is enabled by default.
11404
11405**Diagnostic text:**
11406
11407+----------------------------------------------------------------------------------------------------------------------------------------------------+
11408|:warning:`warning:` |nbsp| :diagtext:`identifier contains Unicode character <U+`:placeholder:`A`:diagtext:`> that is invisible in some environments`|
11409+----------------------------------------------------------------------------------------------------------------------------------------------------+
11410
11411
11412-Wuninitialized
11413---------------
11414Some of the diagnostics controlled by this flag are enabled by default.
11415
11416Also controls `-Wsometimes-uninitialized`_, `-Wstatic-self-init`_.
11417
11418**Diagnostic text:**
11419
11420+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
11421|:warning:`warning:` |nbsp| :diagtext:`base class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when used here to access` |nbsp| :placeholder:`B`|
11422+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
11423
11424+-----------------------------------------------------------------------------------------------------------------------+
11425|:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when used here`|
11426+-----------------------------------------------------------------------------------------------------------------------+
11427
11428+--------------------------------------------------------------------------------------------------------------------------------------+
11429|:warning:`warning:` |nbsp| :diagtext:`reference` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not yet bound to a value when used here`|
11430+--------------------------------------------------------------------------------------------------------------------------------------+
11431
11432+------------------------------------------------------------------------------------------------------------------------------------------------+
11433|:warning:`warning:` |nbsp| :diagtext:`block pointer variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when captured by block`|
11434+------------------------------------------------------------------------------------------------------------------------------------------------+
11435
11436+---------------------------------------------------------------------------------------------------------------------------------------------------+
11437|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when used within its own initialization`|
11438+---------------------------------------------------------------------------------------------------------------------------------------------------+
11439
11440+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
11441|:warning:`warning:` |nbsp| :diagtext:`reference` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not yet bound to a value when used within its own initialization`|
11442+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
11443
11444+------------------------------------------------------------------------------------------------------------------------+-------------------------------+
11445|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when` |nbsp| |+-----------------------------+|
11446|                                                                                                                        ||:diagtext:`used here`        ||
11447|                                                                                                                        |+-----------------------------+|
11448|                                                                                                                        ||:diagtext:`captured by block`||
11449|                                                                                                                        |+-----------------------------+|
11450+------------------------------------------------------------------------------------------------------------------------+-------------------------------+
11451
11452
11453-Wunknown-argument
11454------------------
11455This diagnostic is enabled by default.
11456
11457**Diagnostic text:**
11458
11459+-----------------------------------------------------------------------------------------------------------+
11460|:warning:`warning:` |nbsp| :diagtext:`unknown argument ignored in clang-cl: '`:placeholder:`A`:diagtext:`'`|
11461+-----------------------------------------------------------------------------------------------------------+
11462
11463+---------------------------------------------------------------------------------------------------------------------------------------------------------+
11464|:warning:`warning:` |nbsp| :diagtext:`unknown argument ignored in clang-cl '`:placeholder:`A`:diagtext:`' (did you mean '`:placeholder:`B`:diagtext:`'?)`|
11465+---------------------------------------------------------------------------------------------------------------------------------------------------------+
11466
11467
11468-Wunknown-attributes
11469--------------------
11470This diagnostic is enabled by default.
11471
11472**Diagnostic text:**
11473
11474+-----------------------------------------------------------------------------------------------------------+
11475|:warning:`warning:` |nbsp| :diagtext:`unknown attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored`|
11476+-----------------------------------------------------------------------------------------------------------+
11477
11478
11479-Wunknown-escape-sequence
11480-------------------------
11481This diagnostic is enabled by default.
11482
11483**Diagnostic text:**
11484
11485+-----------------------------------------------------------------------------------------------+
11486|:warning:`warning:` |nbsp| :diagtext:`unknown escape sequence '\\`:placeholder:`A`:diagtext:`'`|
11487+-----------------------------------------------------------------------------------------------+
11488
11489
11490-Wunknown-pragmas
11491-----------------
11492Some of the diagnostics controlled by this flag are enabled by default.
11493
11494**Diagnostic text:**
11495
11496+------------------------------------------------------------------------------------+
11497|:warning:`warning:` |nbsp| :diagtext:`expected 'ON' or 'OFF' or 'DEFAULT' in pragma`|
11498+------------------------------------------------------------------------------------+
11499
11500+--------------------------------------------------------------------------+
11501|:warning:`warning:` |nbsp| :diagtext:`expected end of directive in pragma`|
11502+--------------------------------------------------------------------------+
11503
11504+-----------------------------------------------------------------------+
11505|:warning:`warning:` |nbsp| :diagtext:`unknown pragma in STDC namespace`|
11506+-----------------------------------------------------------------------+
11507
11508+--------------------------------------------------------------------------------------------+
11509|:warning:`warning:` |nbsp| :diagtext:`pragma diagnostic pop could not pop, no matching push`|
11510+--------------------------------------------------------------------------------------------+
11511
11512+--------------------------------------------------------------------------------------------------------------------------+
11513|:warning:`warning:` |nbsp| :diagtext:`pragma diagnostic expected 'error', 'warning', 'ignored', 'fatal', 'push', or 'pop'`|
11514+--------------------------------------------------------------------------------------------------------------------------+
11515
11516+----------------------------------------------------------------------------------------------+
11517|:warning:`warning:` |nbsp| :diagtext:`pragma diagnostic expected option name (e.g. "-Wundef")`|
11518+----------------------------------------------------------------------------------------------+
11519
11520+----------------------------------------------------------------------------+
11521|:warning:`warning:` |nbsp| :diagtext:`unexpected token in pragma diagnostic`|
11522+----------------------------------------------------------------------------+
11523
11524+-------------------------------------------------------------+
11525|:warning:`warning:` |nbsp| :diagtext:`unknown pragma ignored`|
11526+-------------------------------------------------------------+
11527
11528+----------------------------------------------------------------------------------------------------+
11529|:warning:`warning:` |nbsp| :diagtext:`pragma include\_alias expected '`:placeholder:`A`:diagtext:`'`|
11530+----------------------------------------------------------------------------------------------------+
11531
11532+--------------------------------------------------------------------------------------+
11533|:warning:`warning:` |nbsp| :diagtext:`pragma include\_alias expected include filename`|
11534+--------------------------------------------------------------------------------------+
11535
11536+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11537|:warning:`warning:` |nbsp| :diagtext:`angle-bracketed include <`:placeholder:`A`:diagtext:`> cannot be aliased to double-quoted include "`:placeholder:`B`:diagtext:`"`|
11538+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11539
11540+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11541|:warning:`warning:` |nbsp| :diagtext:`double-quoted include "`:placeholder:`A`:diagtext:`" cannot be aliased to angle-bracketed include <`:placeholder:`B`:diagtext:`>`|
11542+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11543
11544+----------------------------------------------------------------------------------------------+
11545|:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected '`:placeholder:`A`:diagtext:`'`|
11546+----------------------------------------------------------------------------------------------+
11547
11548+--------------------------------------------------------------------------------+
11549|:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected a warning number`|
11550+--------------------------------------------------------------------------------+
11551
11552+----------------------------------------------------------------------------------------------------+
11553|:warning:`warning:` |nbsp| :diagtext:`#pragma warning(push, level) requires a level between 0 and 4`|
11554+----------------------------------------------------------------------------------------------------+
11555
11556+-----------------------------------------------------------------------------------------------------------------------------------------------+
11557|:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected 'push', 'pop', 'default', 'disable', 'error', 'once', 'suppress', 1, 2, 3, or 4`|
11558+-----------------------------------------------------------------------------------------------------------------------------------------------+
11559
11560+----------------------------------------------------------------------------------------------------+
11561|:warning:`warning:` |nbsp| :diagtext:`pragma STDC FENV\_ACCESS ON is not supported, ignoring pragma`|
11562+----------------------------------------------------------------------------------------------------+
11563
11564
11565-Wunknown-sanitizers
11566--------------------
11567This diagnostic is enabled by default.
11568
11569**Diagnostic text:**
11570
11571+-----------------------------------------------------------------------------------------------+
11572|:warning:`warning:` |nbsp| :diagtext:`unknown sanitizer '`:placeholder:`A`:diagtext:`' ignored`|
11573+-----------------------------------------------------------------------------------------------+
11574
11575
11576-Wunknown-warning-option
11577------------------------
11578This diagnostic is enabled by default.
11579
11580**Diagnostic text:**
11581
11582+----------------------------------------------------------------------------------------------------+
11583|:warning:`warning:` |nbsp| :diagtext:`unknown warning group '`:placeholder:`A`:diagtext:`', ignored`|
11584+----------------------------------------------------------------------------------------------------+
11585
11586+------------------------------------------------------+---------------------+---------------------------------------------------------+--------------------------------------------------------------+
11587|:warning:`warning:` |nbsp| :diagtext:`unknown` |nbsp| |+-------------------+| |nbsp| :diagtext:`option '`:placeholder:`B`:diagtext:`'`|+------------------------------------------------------------+|
11588|                                                      ||:diagtext:`warning`||                                                         ||                                                            ||
11589|                                                      |+-------------------+|                                                         |+------------------------------------------------------------+|
11590|                                                      ||:diagtext:`remark` ||                                                         ||+----------------------------------------------------------+||
11591|                                                      |+-------------------+|                                                         |||:diagtext:`; did you mean '`:placeholder:`D`:diagtext:`'?`|||
11592|                                                      |                     |                                                         ||+----------------------------------------------------------+||
11593|                                                      |                     |                                                         |+------------------------------------------------------------+|
11594+------------------------------------------------------+---------------------+---------------------------------------------------------+--------------------------------------------------------------+
11595
11596+-------------------------------------------------------------------------------------------------------------------------------------------+
11597|:warning:`warning:` |nbsp| :diagtext:`unknown` |nbsp| :placeholder:`A` |nbsp| :diagtext:`warning specifier: '`:placeholder:`B`:diagtext:`'`|
11598+-------------------------------------------------------------------------------------------------------------------------------------------+
11599
11600
11601-Wunnamed-type-template-args
11602----------------------------
11603Some of the diagnostics controlled by this flag are enabled by default.
11604
11605Also controls `-Wc++98-compat-unnamed-type-template-args`_.
11606
11607**Diagnostic text:**
11608
11609+--------------------------------------------------------------------------+
11610|:warning:`warning:` |nbsp| :diagtext:`template argument uses unnamed type`|
11611+--------------------------------------------------------------------------+
11612
11613
11614-Wunneeded-internal-declaration
11615-------------------------------
11616**Diagnostic text:**
11617
11618+---------------------------+----------------------+---------------------------------------------------------------------------------+
11619|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is not needed and will not be emitted`|
11620|                           ||:diagtext:`function`||                                                                                 |
11621|                           |+--------------------+|                                                                                 |
11622|                           ||:diagtext:`variable`||                                                                                 |
11623|                           |+--------------------+|                                                                                 |
11624+---------------------------+----------------------+---------------------------------------------------------------------------------+
11625
11626+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
11627|:warning:`warning:` |nbsp| :diagtext:`'static' function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared in header file should be declared 'static inline'`|
11628+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
11629
11630
11631-Wunneeded-member-function
11632--------------------------
11633**Diagnostic text:**
11634
11635+---------------------------------------------------------------------------------------------------------------------------------------+
11636|:warning:`warning:` |nbsp| :diagtext:`member function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not needed and will not be emitted`|
11637+---------------------------------------------------------------------------------------------------------------------------------------+
11638
11639
11640-Wunreachable-code
11641------------------
11642Also controls `-Wunreachable-code-loop-increment`_.
11643
11644**Diagnostic text:**
11645
11646+------------------------------------------------------------------+
11647|:warning:`warning:` |nbsp| :diagtext:`code will never be executed`|
11648+------------------------------------------------------------------+
11649
11650
11651-Wunreachable-code-aggressive
11652-----------------------------
11653Controls `-Wunreachable-code`_, `-Wunreachable-code-break`_, `-Wunreachable-code-return`_.
11654
11655
11656-Wunreachable-code-break
11657------------------------
11658**Diagnostic text:**
11659
11660+---------------------------------------------------------------------+
11661|:warning:`warning:` |nbsp| :diagtext:`'break' will never be executed`|
11662+---------------------------------------------------------------------+
11663
11664
11665-Wunreachable-code-loop-increment
11666---------------------------------
11667**Diagnostic text:**
11668
11669+-------------------------------------------------------------------------------------------------+
11670|:warning:`warning:` |nbsp| :diagtext:`loop will run at most once (loop increment never executed)`|
11671+-------------------------------------------------------------------------------------------------+
11672
11673
11674-Wunreachable-code-return
11675-------------------------
11676**Diagnostic text:**
11677
11678+----------------------------------------------------------------------+
11679|:warning:`warning:` |nbsp| :diagtext:`'return' will never be executed`|
11680+----------------------------------------------------------------------+
11681
11682
11683-Wunsequenced
11684-------------
11685This diagnostic is enabled by default.
11686
11687**Diagnostic text:**
11688
11689+----------------------------------------------------------------------------------------------------+
11690|:warning:`warning:` |nbsp| :diagtext:`multiple unsequenced modifications to` |nbsp| :placeholder:`A`|
11691+----------------------------------------------------------------------------------------------------+
11692
11693+-----------------------------------------------------------------------------------------------------+
11694|:warning:`warning:` |nbsp| :diagtext:`unsequenced modification and access to` |nbsp| :placeholder:`A`|
11695+-----------------------------------------------------------------------------------------------------+
11696
11697
11698-Wunsupported-abs
11699-----------------
11700This diagnostic is enabled by default.
11701
11702**Diagnostic text:**
11703
11704+-----------------------------------------------------------------------------------------------------------------------------------------------+
11705|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mabs=2008' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
11706+-----------------------------------------------------------------------------------------------------------------------------------------------+
11707
11708+-------------------------------------------------------------------------------------------------------------------------------------------------+
11709|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mabs=legacy' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
11710+-------------------------------------------------------------------------------------------------------------------------------------------------+
11711
11712
11713-Wunsupported-availability-guard
11714--------------------------------
11715This diagnostic is enabled by default.
11716
11717**Diagnostic text:**
11718
11719+---------------------------+------------------------------------+--------------------------------------------------------------+------------------------------------+---------------------+
11720|:warning:`warning:` |nbsp| |+----------------------------------+| |nbsp| :diagtext:`does not guard availability here; use if (`|+----------------------------------+|:diagtext:`) instead`|
11721|                           ||:diagtext:`@available`            ||                                                              ||:diagtext:`@available`            ||                     |
11722|                           |+----------------------------------+|                                                              |+----------------------------------+|                     |
11723|                           ||:diagtext:`\_\_builtin\_available`||                                                              ||:diagtext:`\_\_builtin\_available`||                     |
11724|                           |+----------------------------------+|                                                              |+----------------------------------+|                     |
11725+---------------------------+------------------------------------+--------------------------------------------------------------+------------------------------------+---------------------+
11726
11727
11728-Wunsupported-cb
11729----------------
11730This diagnostic is enabled by default.
11731
11732**Diagnostic text:**
11733
11734+--------------------------------------------------------------------------------------------------------------------------------------------------------+
11735|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mcompact-branches=' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
11736+--------------------------------------------------------------------------------------------------------------------------------------------------------+
11737
11738
11739-Wunsupported-dll-base-class-template
11740-------------------------------------
11741**Diagnostic text:**
11742
11743+---------------------------------------------------------------------------+------------------------------------+------------------------------------------------------------------------------+
11744|:warning:`warning:` |nbsp| :diagtext:`propagating dll attribute to` |nbsp| |+----------------------------------+| |nbsp| :diagtext:`base class template without dll attribute is not supported`|
11745|                                                                           ||:diagtext:`already instantiated`  ||                                                                              |
11746|                                                                           |+----------------------------------+|                                                                              |
11747|                                                                           ||:diagtext:`explicitly specialized`||                                                                              |
11748|                                                                           |+----------------------------------+|                                                                              |
11749+---------------------------------------------------------------------------+------------------------------------+------------------------------------------------------------------------------+
11750
11751
11752-Wunsupported-friend
11753--------------------
11754This diagnostic is enabled by default.
11755
11756**Diagnostic text:**
11757
11758+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11759|:warning:`warning:` |nbsp| :diagtext:`dependent nested name specifier '`:placeholder:`A`:diagtext:`' for friend template declaration is not supported; ignoring this friend declaration`|
11760+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11761
11762+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11763|: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`|
11764+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11765
11766
11767-Wunsupported-gpopt
11768-------------------
11769This diagnostic is enabled by default.
11770
11771**Diagnostic text:**
11772
11773+--------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+
11774|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mgpopt' option as it cannot be used with` |nbsp| |+-----------------------------------------+|:diagtext:`-mabicalls`|
11775|                                                                                                  ||                                         ||                      |
11776|                                                                                                  |+-----------------------------------------+|                      |
11777|                                                                                                  ||:diagtext:`the implicit usage of` |nbsp| ||                      |
11778|                                                                                                  |+-----------------------------------------+|                      |
11779+--------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+
11780
11781
11782-Wunsupported-nan
11783-----------------
11784This diagnostic is enabled by default.
11785
11786**Diagnostic text:**
11787
11788+-----------------------------------------------------------------------------------------------------------------------------------------------+
11789|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mnan=2008' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
11790+-----------------------------------------------------------------------------------------------------------------------------------------------+
11791
11792+-------------------------------------------------------------------------------------------------------------------------------------------------+
11793|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mnan=legacy' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
11794+-------------------------------------------------------------------------------------------------------------------------------------------------+
11795
11796
11797-Wunsupported-target-opt
11798------------------------
11799This diagnostic is enabled by default.
11800
11801**Diagnostic text:**
11802
11803+---------------------------------------------------------------------------------------------------------------------------------------------------------+
11804|:warning:`warning:` |nbsp| :diagtext:`debug information option '`:placeholder:`A`:diagtext:`' is not supported for target '`:placeholder:`B`:diagtext:`'`|
11805+---------------------------------------------------------------------------------------------------------------------------------------------------------+
11806
11807
11808-Wunsupported-visibility
11809------------------------
11810This diagnostic is enabled by default.
11811
11812**Diagnostic text:**
11813
11814+------------------------------------------------------------------------------------------------------+
11815|:warning:`warning:` |nbsp| :diagtext:`target does not support 'protected' visibility; using 'default'`|
11816+------------------------------------------------------------------------------------------------------+
11817
11818
11819-Wunusable-partial-specialization
11820---------------------------------
11821This diagnostic is an error by default, but the flag ``-Wno-unusable-partial-specialization`` can be used to disable the error.
11822
11823**Diagnostic text:**
11824
11825+-----------------------+----------------------+--------------------------------------------------------------------+----------------------------------+------------------------------------------------------------------------------------------+
11826|:error:`error:` |nbsp| |+--------------------+| |nbsp| :diagtext:`template partial specialization contains` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`that cannot be deduced; this partial specialization will never be used`|
11827|                       ||:diagtext:`class`   ||                                                                    ||:diagtext:`a template parameter`||                                                                                          |
11828|                       |+--------------------+|                                                                    |+--------------------------------+|                                                                                          |
11829|                       ||:diagtext:`variable`||                                                                    ||:diagtext:`template parameters` ||                                                                                          |
11830|                       |+--------------------+|                                                                    |+--------------------------------+|                                                                                          |
11831+-----------------------+----------------------+--------------------------------------------------------------------+----------------------------------+------------------------------------------------------------------------------------------+
11832
11833
11834-Wunused
11835--------
11836Some of the diagnostics controlled by this flag are enabled by default.
11837
11838Controls `-Wunused-argument`_, `-Wunused-function`_, `-Wunused-label`_, `-Wunused-lambda-capture`_, `-Wunused-local-typedef`_, `-Wunused-private-field`_, `-Wunused-property-ivar`_, `-Wunused-value`_, `-Wunused-variable`_.
11839
11840
11841-Wunused-argument
11842-----------------
11843This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
11844
11845-Wunused-command-line-argument
11846------------------------------
11847This diagnostic is enabled by default.
11848
11849**Diagnostic text:**
11850
11851+-------------------------------------------------------------------------------------------------------------------------------+
11852|:warning:`warning:` |nbsp| :diagtext:`argument '`:placeholder:`A`:diagtext:`' requires profile-guided optimization information`|
11853+-------------------------------------------------------------------------------------------------------------------------------+
11854
11855+---------------------------------------------------------------------------------------------------------------+
11856|:warning:`warning:` |nbsp| :diagtext:`joined argument expects additional value: '`:placeholder:`A`:diagtext:`'`|
11857+---------------------------------------------------------------------------------------------------------------+
11858
11859+----------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+
11860|:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: '`:placeholder:`B`:diagtext:`' input unused`|+--------------------------------------------------------------------+|
11861|                                                                                                    ||+------------------------------------------------------------------+||
11862|                                                                                                    ||| |nbsp| :diagtext:`when '`:placeholder:`D`:diagtext:`' is present`|||
11863|                                                                                                    ||+------------------------------------------------------------------+||
11864|                                                                                                    |+--------------------------------------------------------------------+|
11865|                                                                                                    ||                                                                    ||
11866|                                                                                                    |+--------------------------------------------------------------------+|
11867+----------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+
11868
11869+----------------------------------------------------------------------------------------------------------------+
11870|:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: '`:placeholder:`B`:diagtext:`' input unused in cpp mode`|
11871+----------------------------------------------------------------------------------------------------------------+
11872
11873+--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------+
11874|:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: previously preprocessed input`|+---------------------------------------------------------------------------+|
11875|                                                                                      ||+-------------------------------------------------------------------------+||
11876|                                                                                      ||| |nbsp| :diagtext:`unused when '`:placeholder:`C`:diagtext:`' is present`|||
11877|                                                                                      ||+-------------------------------------------------------------------------+||
11878|                                                                                      |+---------------------------------------------------------------------------+|
11879|                                                                                      ||                                                                           ||
11880|                                                                                      |+---------------------------------------------------------------------------+|
11881+--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------+
11882
11883+---------------------------------------------------------------------------------------------------------+
11884|:warning:`warning:` |nbsp| :diagtext:`argument unused during compilation: '`:placeholder:`A`:diagtext:`'`|
11885+---------------------------------------------------------------------------------------------------------+
11886
11887+----------------------------------------------------------------------------------------------------------------------+
11888|:warning:`warning:` |nbsp| :diagtext:`the flag '`:placeholder:`A`:diagtext:`' has been deprecated and will be ignored`|
11889+----------------------------------------------------------------------------------------------------------------------+
11890
11891
11892-Wunused-comparison
11893-------------------
11894This diagnostic is enabled by default.
11895
11896**Diagnostic text:**
11897
11898+---------------------------+------------------------+--------------------------------------------+
11899|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`comparison result unused`|
11900|                           ||:diagtext:`equality`  ||                                            |
11901|                           |+----------------------+|                                            |
11902|                           ||:diagtext:`inequality`||                                            |
11903|                           |+----------------------+|                                            |
11904|                           ||:diagtext:`relational`||                                            |
11905|                           |+----------------------+|                                            |
11906|                           ||:diagtext:`three-way` ||                                            |
11907|                           |+----------------------+|                                            |
11908+---------------------------+------------------------+--------------------------------------------+
11909
11910
11911-Wunused-const-variable
11912-----------------------
11913**Diagnostic text:**
11914
11915+------------------------------------------------------------------------------+
11916|:warning:`warning:` |nbsp| :diagtext:`unused variable` |nbsp| :placeholder:`A`|
11917+------------------------------------------------------------------------------+
11918
11919
11920-Wunused-exception-parameter
11921----------------------------
11922**Diagnostic text:**
11923
11924+-----------------------------------------------------------------------------------------+
11925|:warning:`warning:` |nbsp| :diagtext:`unused exception parameter` |nbsp| :placeholder:`A`|
11926+-----------------------------------------------------------------------------------------+
11927
11928
11929-Wunused-function
11930-----------------
11931Also controls `-Wunneeded-internal-declaration`_.
11932
11933**Diagnostic text:**
11934
11935+------------------------------------------------------------------------------+
11936|:warning:`warning:` |nbsp| :diagtext:`unused function` |nbsp| :placeholder:`A`|
11937+------------------------------------------------------------------------------+
11938
11939
11940-Wunused-getter-return-value
11941----------------------------
11942This diagnostic is enabled by default.
11943
11944**Diagnostic text:**
11945
11946+------------------------------------------------------------------------------------------------------------------+
11947|:warning:`warning:` |nbsp| :diagtext:`property access result unused - getters should not be used for side effects`|
11948+------------------------------------------------------------------------------------------------------------------+
11949
11950
11951-Wunused-label
11952--------------
11953**Diagnostic text:**
11954
11955+---------------------------------------------------------------------------+
11956|:warning:`warning:` |nbsp| :diagtext:`unused label` |nbsp| :placeholder:`A`|
11957+---------------------------------------------------------------------------+
11958
11959
11960-Wunused-lambda-capture
11961-----------------------
11962**Diagnostic text:**
11963
11964+---------------------------------------------------------------------------------------------------------------+--------------------------------------------------+
11965|:warning:`warning:` |nbsp| :diagtext:`lambda capture` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not` |nbsp| |+------------------------------------------------+|
11966|                                                                                                               ||:diagtext:`used`                                ||
11967|                                                                                                               |+------------------------------------------------+|
11968|                                                                                                               ||:diagtext:`required to be captured for this use`||
11969|                                                                                                               |+------------------------------------------------+|
11970+---------------------------------------------------------------------------------------------------------------+--------------------------------------------------+
11971
11972
11973-Wunused-local-typedef
11974----------------------
11975**Diagnostic text:**
11976
11977+-----------------------------------------------------+------------------------+------------------------+
11978|:warning:`warning:` |nbsp| :diagtext:`unused` |nbsp| |+----------------------+| |nbsp| :placeholder:`B`|
11979|                                                     ||:diagtext:`typedef`   ||                        |
11980|                                                     |+----------------------+|                        |
11981|                                                     ||:diagtext:`type alias`||                        |
11982|                                                     |+----------------------+|                        |
11983+-----------------------------------------------------+------------------------+------------------------+
11984
11985
11986-Wunused-local-typedefs
11987-----------------------
11988Synonym for `-Wunused-local-typedef`_.
11989
11990
11991-Wunused-macros
11992---------------
11993**Diagnostic text:**
11994
11995+--------------------------------------------------------+
11996|:warning:`warning:` |nbsp| :diagtext:`macro is not used`|
11997+--------------------------------------------------------+
11998
11999
12000-Wunused-member-function
12001------------------------
12002Also controls `-Wunneeded-member-function`_.
12003
12004**Diagnostic text:**
12005
12006+-------------------------------------------------------------------------------------+
12007|:warning:`warning:` |nbsp| :diagtext:`unused member function` |nbsp| :placeholder:`A`|
12008+-------------------------------------------------------------------------------------+
12009
12010
12011-Wunused-parameter
12012------------------
12013**Diagnostic text:**
12014
12015+-------------------------------------------------------------------------------+
12016|:warning:`warning:` |nbsp| :diagtext:`unused parameter` |nbsp| :placeholder:`A`|
12017+-------------------------------------------------------------------------------+
12018
12019
12020-Wunused-private-field
12021----------------------
12022**Diagnostic text:**
12023
12024+-----------------------------------------------------------------------------------------------------------+
12025|:warning:`warning:` |nbsp| :diagtext:`private field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not used`|
12026+-----------------------------------------------------------------------------------------------------------+
12027
12028
12029-Wunused-property-ivar
12030----------------------
12031**Diagnostic text:**
12032
12033+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
12034|:warning:`warning:` |nbsp| :diagtext:`ivar` |nbsp| :placeholder:`A` |nbsp| :diagtext:`which backs the property is not referenced in this property's accessor`|
12035+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
12036
12037
12038-Wunused-result
12039---------------
12040This diagnostic is enabled by default.
12041
12042**Diagnostic text:**
12043
12044+-------------------------------------------------------------------------------------------------------------------------------------------+
12045|:warning:`warning:` |nbsp| :diagtext:`ignoring return value of function declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute`|
12046+-------------------------------------------------------------------------------------------------------------------------------------------+
12047
12048
12049-Wunused-template
12050-----------------
12051Also controls `-Wunneeded-internal-declaration`_.
12052
12053**Diagnostic text:**
12054
12055+-----------------------------------------------------+----------------------+----------------------------------------------------+
12056|:warning:`warning:` |nbsp| :diagtext:`unused` |nbsp| |+--------------------+| |nbsp| :diagtext:`template` |nbsp| :placeholder:`B`|
12057|                                                     ||:diagtext:`function`||                                                    |
12058|                                                     |+--------------------+|                                                    |
12059|                                                     ||:diagtext:`variable`||                                                    |
12060|                                                     |+--------------------+|                                                    |
12061+-----------------------------------------------------+----------------------+----------------------------------------------------+
12062
12063
12064-Wunused-value
12065--------------
12066This diagnostic is enabled by default.
12067
12068Also controls `-Wunevaluated-expression`_, `-Wunused-comparison`_, `-Wunused-result`_.
12069
12070**Diagnostic text:**
12071
12072+-------------------------------------------------------------------------------------------------------------------------------------------+
12073|:warning:`warning:` |nbsp| :diagtext:`ignoring return value of function declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute`|
12074+-------------------------------------------------------------------------------------------------------------------------------------------+
12075
12076+----------------------------------------------------------------------------------------------------------------------------+
12077|:warning:`warning:` |nbsp| :diagtext:`container access result unused - container access should not be used for side effects`|
12078+----------------------------------------------------------------------------------------------------------------------------+
12079
12080+---------------------------------------------------------------+
12081|:warning:`warning:` |nbsp| :diagtext:`expression result unused`|
12082+---------------------------------------------------------------+
12083
12084+-----------------------------------------------------------------------------------------------+
12085|:warning:`warning:` |nbsp| :diagtext:`expression result unused; should this cast be to 'void'?`|
12086+-----------------------------------------------------------------------------------------------+
12087
12088
12089-Wunused-variable
12090-----------------
12091Also controls `-Wunused-const-variable`_.
12092
12093**Diagnostic text:**
12094
12095+------------------------------------------------------------------------------+
12096|:warning:`warning:` |nbsp| :diagtext:`unused variable` |nbsp| :placeholder:`A`|
12097+------------------------------------------------------------------------------+
12098
12099
12100-Wunused-volatile-lvalue
12101------------------------
12102This diagnostic is enabled by default.
12103
12104**Diagnostic text:**
12105
12106+----------------------------------------------------------------------------------------------------------------+
12107|:warning:`warning:` |nbsp| :diagtext:`expression result unused; assign into a variable to force a volatile load`|
12108+----------------------------------------------------------------------------------------------------------------+
12109
12110
12111-Wused-but-marked-unused
12112------------------------
12113**Diagnostic text:**
12114
12115+---------------------------------------------------------------------------------------------+
12116|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`was marked unused but was used`|
12117+---------------------------------------------------------------------------------------------+
12118
12119
12120-Wuser-defined-literals
12121-----------------------
12122This diagnostic is enabled by default.
12123
12124**Diagnostic text:**
12125
12126+--------------------------------------------------------------------------------------------------------+----------------------------------------------------+
12127|:warning:`warning:` |nbsp| :diagtext:`user-defined literal suffixes not starting with '\_' are reserved`|+--------------------------------------------------+|
12128|                                                                                                        ||:diagtext:`; no literal will invoke this operator`||
12129|                                                                                                        |+--------------------------------------------------+|
12130|                                                                                                        ||                                                  ||
12131|                                                                                                        |+--------------------------------------------------+|
12132+--------------------------------------------------------------------------------------------------------+----------------------------------------------------+
12133
12134
12135-Wuser-defined-warnings
12136-----------------------
12137This diagnostic is enabled by default.
12138
12139**Diagnostic text:**
12140
12141The text of this diagnostic is not controlled by Clang.
12142
12143
12144-Wvarargs
12145---------
12146This diagnostic is enabled by default.
12147
12148**Diagnostic text:**
12149
12150+-----------------------------------------------------------------------------------------------------+
12151|:warning:`warning:` |nbsp| :diagtext:`second argument to 'va\_start' is not the last named parameter`|
12152+-----------------------------------------------------------------------------------------------------+
12153
12154+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12155|: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`|
12156+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12157
12158+------------------------------------------------------+-----------------------------------------------------------------+---------------------------------------------------------+
12159|:warning:`warning:` |nbsp| :diagtext:`passing` |nbsp| |+---------------------------------------------------------------+| |nbsp| :diagtext:`to 'va\_start' has undefined behavior`|
12160|                                                      ||:diagtext:`an object that undergoes default argument promotion`||                                                         |
12161|                                                      |+---------------------------------------------------------------+|                                                         |
12162|                                                      ||:diagtext:`an object of reference type`                        ||                                                         |
12163|                                                      |+---------------------------------------------------------------+|                                                         |
12164|                                                      ||:diagtext:`a parameter declared with the 'register' keyword`   ||                                                         |
12165|                                                      |+---------------------------------------------------------------+|                                                         |
12166+------------------------------------------------------+-----------------------------------------------------------------+---------------------------------------------------------+
12167
12168
12169-Wvariadic-macros
12170-----------------
12171Some of the diagnostics controlled by this flag are enabled by default.
12172
12173**Diagnostic text:**
12174
12175+--------------------------------------------------------------------------------+
12176|:warning:`warning:` |nbsp| :diagtext:`named variadic macros are a GNU extension`|
12177+--------------------------------------------------------------------------------+
12178
12179+-----------------------------------------------------------------------------------------------------------+
12180|:warning:`warning:` |nbsp| :diagtext:`\_\_VA\_OPT\_\_ can only appear in the expansion of a variadic macro`|
12181+-----------------------------------------------------------------------------------------------------------+
12182
12183+------------------------------------------------------------------------+
12184|:warning:`warning:` |nbsp| :diagtext:`variadic macros are a C99 feature`|
12185+------------------------------------------------------------------------+
12186
12187
12188-Wvec-elem-size
12189---------------
12190This diagnostic is an error by default, but the flag ``-Wno-vec-elem-size`` can be used to disable the error.
12191
12192**Diagnostic text:**
12193
12194+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12195|:error:`error:` |nbsp| :diagtext:`vector operands do not have the same elements sizes (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`|
12196+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12197
12198
12199-Wvector-conversion
12200-------------------
12201**Diagnostic text:**
12202
12203+------------------------------------------------------------------------+----------------------------------------------------------------+
12204|:warning:`warning:` |nbsp| :diagtext:`incompatible vector types` |nbsp| |+--------------------------------------------------------------+|
12205|                                                                        ||:diagtext:`assigning to different types`                      ||
12206|                                                                        |+--------------------------------------------------------------+|
12207|                                                                        ||:diagtext:`passing to parameter of different type`            ||
12208|                                                                        |+--------------------------------------------------------------+|
12209|                                                                        ||:diagtext:`returning from function with different return type`||
12210|                                                                        |+--------------------------------------------------------------+|
12211|                                                                        ||:diagtext:`converting between types`                          ||
12212|                                                                        |+--------------------------------------------------------------+|
12213|                                                                        ||:diagtext:`initializing with expression of different type`    ||
12214|                                                                        |+--------------------------------------------------------------+|
12215|                                                                        ||:diagtext:`sending to parameter of different type`            ||
12216|                                                                        |+--------------------------------------------------------------+|
12217|                                                                        ||:diagtext:`casting between types`                             ||
12218|                                                                        |+--------------------------------------------------------------+|
12219+------------------------------------------------------------------------+----------------------------------------------------------------+
12220
12221
12222-Wvector-conversions
12223--------------------
12224Synonym for `-Wvector-conversion`_.
12225
12226
12227-Wvexing-parse
12228--------------
12229This diagnostic is enabled by default.
12230
12231**Diagnostic text:**
12232
12233+----------------------------------------------------------------------------------------------+
12234|:warning:`warning:` |nbsp| :diagtext:`empty parentheses interpreted as a function declaration`|
12235+----------------------------------------------------------------------------------------------+
12236
12237+-----------------------------------------------------------------------------------------------+
12238|:warning:`warning:` |nbsp| :diagtext:`parentheses were disambiguated as a function declaration`|
12239+-----------------------------------------------------------------------------------------------+
12240
12241+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
12242|:warning:`warning:` |nbsp| :diagtext:`parentheses were disambiguated as redundant parentheses around declaration of variable named` |nbsp| :placeholder:`A`|
12243+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
12244
12245
12246-Wvisibility
12247------------
12248This diagnostic is enabled by default.
12249
12250**Diagnostic text:**
12251
12252+---------------------------------------------------------------------------------------------------------------------------------------------+
12253|:warning:`warning:` |nbsp| :diagtext:`declaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will not be visible outside of this function`|
12254+---------------------------------------------------------------------------------------------------------------------------------------------+
12255
12256+----------------------------------------------------------------------------------------------------------------------------------------------+
12257|:warning:`warning:` |nbsp| :diagtext:`redefinition of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will not be visible outside of this function`|
12258+----------------------------------------------------------------------------------------------------------------------------------------------+
12259
12260
12261-Wvla
12262-----
12263**Diagnostic text:**
12264
12265+-----------------------------------------------------------------+
12266|:warning:`warning:` |nbsp| :diagtext:`variable length array used`|
12267+-----------------------------------------------------------------+
12268
12269
12270-Wvla-extension
12271---------------
12272**Diagnostic text:**
12273
12274+-------------------------------------------------------------------------------+
12275|:warning:`warning:` |nbsp| :diagtext:`variable length arrays are a C99 feature`|
12276+-------------------------------------------------------------------------------+
12277
12278
12279-Wvoid-ptr-dereference
12280----------------------
12281This diagnostic is enabled by default.
12282
12283**Diagnostic text:**
12284
12285+--------------------------------------------------------------------------------------------------------------------+
12286|:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow indirection on operand of type` |nbsp| :placeholder:`A`|
12287+--------------------------------------------------------------------------------------------------------------------+
12288
12289
12290-Wvolatile-register-var
12291-----------------------
12292This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
12293
12294-Wweak-template-vtables
12295-----------------------
12296**Diagnostic text:**
12297
12298+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
12299|:warning:`warning:` |nbsp| :diagtext:`explicit template instantiation` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will emit a vtable in every translation unit`|
12300+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
12301
12302
12303-Wweak-vtables
12304--------------
12305**Diagnostic text:**
12306
12307+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12308|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has no out-of-line virtual method definitions; its vtable will be emitted in every translation unit`|
12309+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12310
12311
12312-Wwritable-strings
12313------------------
12314This diagnostic is enabled by default.
12315
12316Also controls `-Wdeprecated-writable-strings`_.
12317
12318**Diagnostic text:**
12319
12320+-------------------------------------------------------------------------------------------------------------------------+
12321|:warning:`warning:` |nbsp| :diagtext:`ISO C++11 does not allow conversion from string literal to` |nbsp| :placeholder:`A`|
12322+-------------------------------------------------------------------------------------------------------------------------+
12323
12324
12325-Wwrite-strings
12326---------------
12327Synonym for `-Wwritable-strings`_.
12328
12329
12330-Wzero-as-null-pointer-constant
12331-------------------------------
12332**Diagnostic text:**
12333
12334+--------------------------------------------------------------------+
12335|:warning:`warning:` |nbsp| :diagtext:`zero as null pointer constant`|
12336+--------------------------------------------------------------------+
12337
12338
12339-Wzero-length-array
12340-------------------
12341**Diagnostic text:**
12342
12343+------------------------------------------------------------------------+
12344|:warning:`warning:` |nbsp| :diagtext:`zero size arrays are an extension`|
12345+------------------------------------------------------------------------+
12346
12347
12348