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;` |nbsp| |+--------------------------------------------------------------------------+|:diagtext:`, callee requires at least` |nbsp| :placeholder:`B`|
481|                                                                           ||+------------------------------------------------------------------------+||                                                              |
482|                                                                           |||:diagtext:`contains` |nbsp| :placeholder:`A` |nbsp| :diagtext:`elements`|||                                                              |
483|                                                                           ||+------------------------------------------------------------------------+||                                                              |
484|                                                                           |+--------------------------------------------------------------------------+|                                                              |
485|                                                                           ||+----------------------------------------------+                          ||                                                              |
486|                                                                           |||:diagtext:`is of size` |nbsp| :placeholder:`A`|                          ||                                                              |
487|                                                                           ||+----------------------------------------------+                          ||                                                              |
488|                                                                           |+--------------------------------------------------------------------------+|                                                              |
489+---------------------------------------------------------------------------+----------------------------------------------------------------------------+--------------------------------------------------------------+
490
491+-----------------------------------------------------------------------------------+
492|:warning:`warning:` |nbsp| :diagtext:`'static' has no effect on zero-length arrays`|
493+-----------------------------------------------------------------------------------+
494
495
496-Warray-bounds-pointer-arithmetic
497---------------------------------
498**Diagnostic text:**
499
500+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+
501|: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:`)`|
502|                                                                                                                                                                                                               ||             ||             |
503|                                                                                                                                                                                                               |+-------------+|             |
504|                                                                                                                                                                                                               ||:diagtext:`s`||             |
505|                                                                                                                                                                                                               |+-------------+|             |
506+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+
507
508+-----------------------------------------------------------------------------------------------------------------------------------------------------+
509|:warning:`warning:` |nbsp| :diagtext:`the pointer decremented by` |nbsp| :placeholder:`A` |nbsp| :diagtext:`refers before the beginning of the array`|
510+-----------------------------------------------------------------------------------------------------------------------------------------------------+
511
512
513-Wasm
514-----
515This diagnostic is enabled by default.
516
517Controls `-Wasm-ignored-qualifier`_, `-Wasm-operand-widths`_.
518
519
520-Wasm-ignored-qualifier
521-----------------------
522This diagnostic is enabled by default.
523
524**Diagnostic text:**
525
526+----------------------------------------------------------------------------------------------------------+
527|:warning:`warning:` |nbsp| :diagtext:`ignored` |nbsp| :placeholder:`A` |nbsp| :diagtext:`qualifier on asm`|
528+----------------------------------------------------------------------------------------------------------+
529
530+-------------------------------------------------------------------------------------+
531|:warning:`warning:` |nbsp| :diagtext:`meaningless 'volatile' on asm outside function`|
532+-------------------------------------------------------------------------------------+
533
534
535-Wasm-operand-widths
536--------------------
537This diagnostic is enabled by default.
538
539**Diagnostic text:**
540
541+-----------------------------------------------------------------------------------------------------------------------+
542|:warning:`warning:` |nbsp| :diagtext:`value size does not match register size specified by the constraint and modifier`|
543+-----------------------------------------------------------------------------------------------------------------------+
544
545
546-Wassign-enum
547-------------
548**Diagnostic text:**
549
550+---------------------------------------------------------------------------------------------------------------+
551|:warning:`warning:` |nbsp| :diagtext:`integer constant not in range of enumerated type` |nbsp| :placeholder:`A`|
552+---------------------------------------------------------------------------------------------------------------+
553
554
555-Wassume
556--------
557This diagnostic is enabled by default.
558
559**Diagnostic text:**
560
561+-----------------------------------------------------------------------------------------------------------------------------------------+
562|:warning:`warning:` |nbsp| :diagtext:`the argument to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has side effects that will be discarded`|
563+-----------------------------------------------------------------------------------------------------------------------------------------+
564
565
566-Wat-protocol
567-------------
568This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
569
570-Watimport-in-framework-header
571------------------------------
572This diagnostic is enabled by default.
573
574**Diagnostic text:**
575
576+------------------------------------------------------------------------------------------------------------------------------------+
577|:warning:`warning:` |nbsp| :diagtext:`use of '@import' in framework header is discouraged, including this header requires -fmodules`|
578+------------------------------------------------------------------------------------------------------------------------------------+
579
580
581-Watomic-alignment
582------------------
583This diagnostic is enabled by default.
584
585**Diagnostic text:**
586
587+---------------------------+------------------------+------------------------------------------------------------------------------+
588|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`atomic operation may incur significant performance penalty`|
589|                           ||:diagtext:`large`     ||                                                                              |
590|                           |+----------------------+|                                                                              |
591|                           ||:diagtext:`misaligned`||                                                                              |
592|                           |+----------------------+|                                                                              |
593+---------------------------+------------------------+------------------------------------------------------------------------------+
594
595
596-Watomic-implicit-seq-cst
597-------------------------
598**Diagnostic text:**
599
600+---------------------------------------------------------------------------------------------------------------------------------------+
601|:warning:`warning:` |nbsp| :diagtext:`implicit use of sequentially-consistent atomic may incur stronger memory barriers than necessary`|
602+---------------------------------------------------------------------------------------------------------------------------------------+
603
604
605-Watomic-memory-ordering
606------------------------
607This diagnostic is enabled by default.
608
609**Diagnostic text:**
610
611+-------------------------------------------------------------------------------------------+
612|:warning:`warning:` |nbsp| :diagtext:`memory order argument to atomic operation is invalid`|
613+-------------------------------------------------------------------------------------------+
614
615
616-Watomic-properties
617-------------------
618Controls `-Wcustom-atomic-properties`_, `-Wimplicit-atomic-properties`_.
619
620
621-Watomic-property-with-user-defined-accessor
622--------------------------------------------
623This diagnostic is enabled by default.
624
625**Diagnostic text:**
626
627+--------------------------------------------------------------------------------------------------------------------------------------------+--------------------+-----------------------------------------------+--------------------+
628|:warning:`warning:` |nbsp| :diagtext:`writable atomic property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot pair a synthesized` |nbsp| |+------------------+| |nbsp| :diagtext:`with a user defined` |nbsp| |+------------------+|
629|                                                                                                                                            ||:diagtext:`getter`||                                               ||:diagtext:`getter`||
630|                                                                                                                                            |+------------------+|                                               |+------------------+|
631|                                                                                                                                            ||:diagtext:`setter`||                                               ||:diagtext:`setter`||
632|                                                                                                                                            |+------------------+|                                               |+------------------+|
633+--------------------------------------------------------------------------------------------------------------------------------------------+--------------------+-----------------------------------------------+--------------------+
634
635
636-Wattribute-packed-for-bitfield
637-------------------------------
638This diagnostic is enabled by default.
639
640**Diagnostic text:**
641
642+-------------------------------------------------------------------------------------------------------------------------------------------------+
643|:warning:`warning:` |nbsp| :diagtext:`'packed' attribute was ignored on bit-fields with single-byte alignment in older versions of GCC and Clang`|
644+-------------------------------------------------------------------------------------------------------------------------------------------------+
645
646
647-Wattributes
648------------
649This diagnostic is enabled by default.
650
651Controls `-Wignored-attributes`_, `-Wunknown-attributes`_.
652
653
654-Wauto-disable-vptr-sanitizer
655-----------------------------
656This diagnostic is enabled by default.
657
658**Diagnostic text:**
659
660+------------------------------------------------------------------------------------------------------+
661|:warning:`warning:` |nbsp| :diagtext:`implicitly disabling vptr sanitizer because rtti wasn't enabled`|
662+------------------------------------------------------------------------------------------------------+
663
664
665-Wauto-import
666-------------
667**Diagnostic text:**
668
669+-------------------------------------------------+---------------------------------+-------------------------------------------------------------------------+
670|:warning:`warning:` |nbsp| :diagtext:`treating #`|+-------------------------------+| |nbsp| :diagtext:`as an import of module '`:placeholder:`B`:diagtext:`'`|
671|                                                 ||:diagtext:`include`            ||                                                                         |
672|                                                 |+-------------------------------+|                                                                         |
673|                                                 ||:diagtext:`import`             ||                                                                         |
674|                                                 |+-------------------------------+|                                                                         |
675|                                                 ||:diagtext:`include\_next`      ||                                                                         |
676|                                                 |+-------------------------------+|                                                                         |
677|                                                 ||:diagtext:`\_\_include\_macros`||                                                                         |
678|                                                 |+-------------------------------+|                                                                         |
679+-------------------------------------------------+---------------------------------+-------------------------------------------------------------------------+
680
681
682-Wauto-storage-class
683--------------------
684This diagnostic is enabled by default.
685
686**Diagnostic text:**
687
688+---------------------------------------------------------------------------------------------------------------------------------------------+
689|:warning:`warning:` |nbsp| :diagtext:`'auto' storage class specifier is not permitted in C++11, and will not be supported in future releases`|
690+---------------------------------------------------------------------------------------------------------------------------------------------+
691
692
693-Wauto-var-id
694-------------
695This diagnostic is enabled by default.
696
697**Diagnostic text:**
698
699+-------------------------------------------------------------------------------------------------------+
700|:warning:`warning:` |nbsp| :diagtext:`'auto' deduced as 'id' in declaration of` |nbsp| :placeholder:`A`|
701+-------------------------------------------------------------------------------------------------------+
702
703
704-Wavailability
705--------------
706This diagnostic is enabled by default.
707
708**Diagnostic text:**
709
710+--------------------------------------------------------------------------------------------------------------+
711|:warning:`warning:` |nbsp| :diagtext:`'unavailable' availability overrides all other availability information`|
712+--------------------------------------------------------------------------------------------------------------+
713
714+------------------------------------------------------------------------------+----------------------------------------+
715|:warning:`warning:` |nbsp| :diagtext:`ignoring availability attribute` |nbsp| |+--------------------------------------+|
716|                                                                              ||:diagtext:`on '+load' method`         ||
717|                                                                              |+--------------------------------------+|
718|                                                                              ||:diagtext:`with constructor attribute`||
719|                                                                              |+--------------------------------------+|
720|                                                                              ||:diagtext:`with destructor attribute` ||
721|                                                                              |+--------------------------------------+|
722+------------------------------------------------------------------------------+----------------------------------------+
723
724+---------------------------------------------------------------------------------------------------------------+
725|:warning:`warning:` |nbsp| :diagtext:`only 'unavailable' and 'deprecated' are supported for Swift availability`|
726+---------------------------------------------------------------------------------------------------------------+
727
728+------------------------------------------------------------------------------------------------------------------------+
729|:warning:`warning:` |nbsp| :diagtext:`unknown platform` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in availability macro`|
730+------------------------------------------------------------------------------------------------------------------------+
731
732+----------------------------------------------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------------------------+------------------------+-------------------------------------------------------------------------------------+
733|: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`|
734|                                                                ||:diagtext:`introduced`||                                                                                                                                          ||:diagtext:`introduced`||                                                                                     |
735|                                                                |+----------------------+|                                                                                                                                          |+----------------------+|                                                                                     |
736|                                                                ||:diagtext:`deprecated`||                                                                                                                                          ||:diagtext:`deprecated`||                                                                                     |
737|                                                                |+----------------------+|                                                                                                                                          |+----------------------+|                                                                                     |
738|                                                                ||:diagtext:`obsoleted` ||                                                                                                                                          ||:diagtext:`obsoleted` ||                                                                                     |
739|                                                                |+----------------------+|                                                                                                                                          |+----------------------+|                                                                                     |
740+----------------------------------------------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------------------------+------------------------+-------------------------------------------------------------------------------------+
741
742+---------------------------------------------------------------------------------------------------------------------------+
743|:warning:`warning:` |nbsp| :diagtext:`use same version number separators '\_' or '.'; as in 'major\[.minor\[.subminor\]\]'`|
744+---------------------------------------------------------------------------------------------------------------------------+
745
746+---------------------------------------------------------------------------------------+
747|:warning:`warning:` |nbsp| :diagtext:`availability does not match previous declaration`|
748+---------------------------------------------------------------------------------------+
749
750+---------------------------+--------------------------------+--------------------------+-------------------------------+--------+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
751|:warning:`warning:` |nbsp| |+------------------------------+|:diagtext:`method` |nbsp| |+-----------------------------+| |nbsp| |+---------------------------------------------+| |nbsp| :diagtext:`on` |nbsp| :placeholder:`B` |nbsp| :diagtext:`(`:placeholder:`C` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`D`:diagtext:`)`|
752|                           ||                              ||                          ||:diagtext:`introduced after` ||        ||:diagtext:`the protocol method it implements`||                                                                                                                                               |
753|                           |+------------------------------+|                          |+-----------------------------+|        |+---------------------------------------------+|                                                                                                                                               |
754|                           ||:diagtext:`overriding` |nbsp| ||                          ||:diagtext:`deprecated before`||        ||:diagtext:`overridden method`                ||                                                                                                                                               |
755|                           |+------------------------------+|                          |+-----------------------------+|        |+---------------------------------------------+|                                                                                                                                               |
756|                           |                                |                          ||:diagtext:`obsoleted before` ||        |                                               |                                                                                                                                               |
757|                           |                                |                          |+-----------------------------+|        |                                               |                                                                                                                                               |
758+---------------------------+--------------------------------+--------------------------+-------------------------------+--------+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
759
760+---------------------------+--------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------+--------------------------------+
761|:warning:`warning:` |nbsp| |+------------------------------+|:diagtext:`method cannot be unavailable on` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when` |nbsp| |+---------------------------------------------+| |nbsp| :diagtext:`is available`|
762|                           ||                              ||                                                                                                   ||:diagtext:`the protocol method it implements`||                                |
763|                           |+------------------------------+|                                                                                                   |+---------------------------------------------+|                                |
764|                           ||:diagtext:`overriding` |nbsp| ||                                                                                                   ||:diagtext:`its overridden method`            ||                                |
765|                           |+------------------------------+|                                                                                                   |+---------------------------------------------+|                                |
766+---------------------------+--------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------+--------------------------------+
767
768
769-Wavr-rtlib-linking-quirks
770--------------------------
771This diagnostic is enabled by default.
772
773**Diagnostic text:**
774
775+----------------------------------------------------------------------------------------------------------------------------------------+
776|:warning:`warning:` |nbsp| :diagtext:`support for linking stdlibs for microcontroller '`:placeholder:`A`:diagtext:`' is not implemented`|
777+----------------------------------------------------------------------------------------------------------------------------------------+
778
779+-------------------------------------------------------------------------------------------------------------------------+
780|:warning:`warning:` |nbsp| :diagtext:`no avr-gcc installation can be found on the system, cannot link standard libraries`|
781+-------------------------------------------------------------------------------------------------------------------------+
782
783+--------------------------------------------------------------------------------------------------------------------------+
784|:warning:`warning:` |nbsp| :diagtext:`no avr-libc installation can be found on the system, cannot link standard libraries`|
785+--------------------------------------------------------------------------------------------------------------------------+
786
787+--------------------------------------------------------------------------------------------------------------------------------------------------------+
788|:warning:`warning:` |nbsp| :diagtext:`no target microcontroller specified on command line, cannot link standard libraries, please pass -mmcu=<mcu name>`|
789+--------------------------------------------------------------------------------------------------------------------------------------------------------+
790
791+-----------------------------------------------------------------------------------------------------------------------------------------------+
792|:warning:`warning:` |nbsp| :diagtext:`standard library not linked and so no interrupt vector table or compiler runtime routines will be linked`|
793+-----------------------------------------------------------------------------------------------------------------------------------------------+
794
795
796-Wbackend-plugin
797----------------
798This diagnostic is enabled by default.
799
800**Diagnostic text:**
801
802The text of this diagnostic is not controlled by Clang.
803
804
805-Wbackslash-newline-escape
806--------------------------
807This diagnostic is enabled by default.
808
809**Diagnostic text:**
810
811+-------------------------------------------------------------------------------+
812|:warning:`warning:` |nbsp| :diagtext:`backslash and newline separated by space`|
813+-------------------------------------------------------------------------------+
814
815
816-Wbad-function-cast
817-------------------
818**Diagnostic text:**
819
820+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
821|:warning:`warning:` |nbsp| :diagtext:`cast from function call of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to non-matching type` |nbsp| :placeholder:`B`|
822+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
823
824
825-Wbinary-literal
826----------------
827Controls `-Wc++14-binary-literal`_, `-Wc++98-c++11-compat-binary-literal`_, `-Wgnu-binary-literal`_.
828
829
830-Wbind-to-temporary-copy
831------------------------
832Also controls `-Wc++98-compat-bind-to-temporary-copy`_.
833
834**Diagnostic text:**
835
836+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+
837|: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| |+---------------------+|
838|                                                                                                                                                                                              ||:diagtext:`private`  ||
839|                                                                                                                                                                                              |+---------------------+|
840|                                                                                                                                                                                              ||:diagtext:`protected`||
841|                                                                                                                                                                                              |+---------------------+|
842+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+
843
844+--------------------------------------------------------------------+------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
845|: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`|
846|                                                                    ||:diagtext:`copying variable`                        ||                                                                                                                                          |
847|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
848|                                                                    ||:diagtext:`copying parameter`                       ||                                                                                                                                          |
849|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
850|                                                                    ||:diagtext:`returning object`                        ||                                                                                                                                          |
851|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
852|                                                                    ||:diagtext:`initializing statement expression result`||                                                                                                                                          |
853|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
854|                                                                    ||:diagtext:`throwing object`                         ||                                                                                                                                          |
855|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
856|                                                                    ||:diagtext:`copying member subobject`                ||                                                                                                                                          |
857|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
858|                                                                    ||:diagtext:`copying array element`                   ||                                                                                                                                          |
859|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
860|                                                                    ||:diagtext:`allocating object`                       ||                                                                                                                                          |
861|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
862|                                                                    ||:diagtext:`copying temporary`                       ||                                                                                                                                          |
863|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
864|                                                                    ||:diagtext:`initializing base subobject`             ||                                                                                                                                          |
865|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
866|                                                                    ||:diagtext:`initializing vector element`             ||                                                                                                                                          |
867|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
868|                                                                    ||:diagtext:`capturing value`                         ||                                                                                                                                          |
869|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
870+--------------------------------------------------------------------+------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
871
872
873-Wbinding-in-condition
874----------------------
875This diagnostic is enabled by default.
876
877**Diagnostic text:**
878
879+--------------------------------------------------------------------------------------------------------------+
880|:warning:`warning:` |nbsp| :diagtext:`ISO C++17 does not permit structured binding declaration in a condition`|
881+--------------------------------------------------------------------------------------------------------------+
882
883
884-Wbitfield-constant-conversion
885------------------------------
886This diagnostic is enabled by default.
887
888**Diagnostic text:**
889
890+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
891|: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`|
892+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
893
894
895-Wbitfield-enum-conversion
896--------------------------
897**Diagnostic text:**
898
899+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
900|:warning:`warning:` |nbsp| :diagtext:`bit-field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not wide enough to store all enumerators of` |nbsp| :placeholder:`B`|
901+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
902
903+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
904|: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`|
905+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
906
907+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
908|: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`|
909+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
910
911
912-Wbitfield-width
913----------------
914This diagnostic is enabled by default.
915
916**Diagnostic text:**
917
918+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+
919|: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`|+-------------+|
920|                                                                                                                                                                                                                   ||             ||
921|                                                                                                                                                                                                                   |+-------------+|
922|                                                                                                                                                                                                                   ||:diagtext:`s`||
923|                                                                                                                                                                                                                   |+-------------+|
924+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+
925
926+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+
927|: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`|+-------------+|
928|                                                                                                                                                                                                                                                        ||             ||
929|                                                                                                                                                                                                                                                        |+-------------+|
930|                                                                                                                                                                                                                                                        ||:diagtext:`s`||
931|                                                                                                                                                                                                                                                        |+-------------+|
932+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+
933
934
935-Wbitwise-op-parentheses
936------------------------
937This diagnostic is enabled by default.
938
939**Diagnostic text:**
940
941+-----------------------------------------------------------------------------------------------------------+
942|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' within '`:placeholder:`B`:diagtext:`'`|
943+-----------------------------------------------------------------------------------------------------------+
944
945
946-Wblock-capture-autoreleasing
947-----------------------------
948This diagnostic is enabled by default.
949
950**Diagnostic text:**
951
952+-----------------------------------------------------------------------------------------------------------------------------+
953|:warning:`warning:` |nbsp| :diagtext:`block captures an autoreleasing out-parameter, which may result in use-after-free bugs`|
954+-----------------------------------------------------------------------------------------------------------------------------+
955
956
957-Wbool-conversion
958-----------------
959This diagnostic is enabled by default.
960
961Also controls `-Wpointer-bool-conversion`_, `-Wundefined-bool-conversion`_.
962
963**Diagnostic text:**
964
965+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
966|:warning:`warning:` |nbsp| :diagtext:`initialization of pointer of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to null from a constant boolean expression`|
967+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
968
969
970-Wbool-conversions
971------------------
972Synonym for `-Wbool-conversion`_.
973
974
975-Wbraced-scalar-init
976--------------------
977This diagnostic is enabled by default.
978
979**Diagnostic text:**
980
981+-----------------------------------------------------------------------+
982|:warning:`warning:` |nbsp| :diagtext:`braces around scalar initializer`|
983+-----------------------------------------------------------------------+
984
985
986-Wbridge-cast
987-------------
988This diagnostic is enabled by default.
989
990**Diagnostic text:**
991
992+------------------------------------------------------------------------------------------------------------------------------------------+
993|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bridges to` |nbsp| :placeholder:`B`:diagtext:`, not` |nbsp| :placeholder:`C`|
994+------------------------------------------------------------------------------------------------------------------------------------------+
995
996+-------------------------------------------------------------------------------------------------------+
997|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot bridge to` |nbsp| :placeholder:`B`|
998+-------------------------------------------------------------------------------------------------------+
999
1000
1001-Wbuiltin-macro-redefined
1002-------------------------
1003This diagnostic is enabled by default.
1004
1005**Diagnostic text:**
1006
1007+---------------------------------------------------------------+
1008|:warning:`warning:` |nbsp| :diagtext:`redefining builtin macro`|
1009+---------------------------------------------------------------+
1010
1011+---------------------------------------------------------------+
1012|:warning:`warning:` |nbsp| :diagtext:`undefining builtin macro`|
1013+---------------------------------------------------------------+
1014
1015
1016-Wbuiltin-memcpy-chk-size
1017-------------------------
1018This diagnostic is enabled by default.
1019
1020**Diagnostic text:**
1021
1022+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1023|: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`|
1024+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1025
1026
1027-Wbuiltin-requires-header
1028-------------------------
1029This diagnostic is enabled by default.
1030
1031**Diagnostic text:**
1032
1033+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1034|:warning:`warning:` |nbsp| :diagtext:`declaration of built-in function '`:placeholder:`B`:diagtext:`' requires inclusion of the header <`:placeholder:`A`:diagtext:`>`|
1035+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1036
1037
1038-Wc++-compat
1039------------
1040**Diagnostic text:**
1041
1042+---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+
1043|:warning:`warning:` |nbsp| |+-------------------------+|+------------------+| |nbsp| :diagtext:`has size 0 in C,` |nbsp| |+-------------------------+| |nbsp| :diagtext:`in C++`|
1044|                           ||                         |||:diagtext:`struct`||                                            ||:diagtext:`size 1`       ||                          |
1045|                           |+-------------------------+|+------------------+|                                            |+-------------------------+|                          |
1046|                           ||:diagtext:`empty` |nbsp| |||:diagtext:`union` ||                                            ||:diagtext:`non-zero size`||                          |
1047|                           |+-------------------------+|+------------------+|                                            |+-------------------------+|                          |
1048+---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+
1049
1050
1051-Wc++0x-compat
1052--------------
1053Synonym for `-Wc++11-compat`_.
1054
1055
1056-Wc++0x-extensions
1057------------------
1058Synonym for `-Wc++11-extensions`_.
1059
1060
1061-Wc++0x-narrowing
1062-----------------
1063Synonym for `-Wc++11-narrowing`_.
1064
1065
1066-Wc++11-compat
1067--------------
1068Some of the diagnostics controlled by this flag are enabled by default.
1069
1070Also 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`_.
1071
1072**Diagnostic text:**
1073
1074+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+
1075|: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`|
1076|                                                                                                                                                                                                                 ||:diagtext:`have type 'long long'`||                                    |
1077|                                                                                                                                                                                                                 |+---------------------------------+|                                    |
1078|                                                                                                                                                                                                                 ||:diagtext:`be ill-formed`        ||                                    |
1079|                                                                                                                                                                                                                 |+---------------------------------+|                                    |
1080+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+
1081
1082+--------------------------------------------------------------------------------------------------------------+
1083|:warning:`warning:` |nbsp| :diagtext:`'auto' storage class specifier is redundant and incompatible with C++11`|
1084+--------------------------------------------------------------------------------------------------------------+
1085
1086+-------------------------------------------------------------------------------------------------------------------------+
1087|:warning:`warning:` |nbsp| :diagtext:`identifier after literal will be treated as a user-defined literal suffix in C++11`|
1088+-------------------------------------------------------------------------------------------------------------------------+
1089
1090+-------------------------------------------------------------------------------------------+
1091|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is a keyword in C++11`|
1092+-------------------------------------------------------------------------------------------+
1093
1094+--------------------------------------------------------------------------------------------------------------------------------+
1095|:warning:`warning:` |nbsp| :diagtext:`use of right-shift operator ('>>') in template argument will require parentheses in C++11`|
1096+--------------------------------------------------------------------------------------------------------------------------------+
1097
1098+--------------------------------------------------------------------------------+
1099|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation cannot be 'inline'`|
1100+--------------------------------------------------------------------------------+
1101
1102+--------------------------------------------------------------------------------------------------------------------------------------+
1103|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`must occur at global scope`|
1104+--------------------------------------------------------------------------------------------------------------------------------------+
1105
1106+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
1107|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not in a namespace enclosing` |nbsp| :placeholder:`B`|
1108+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
1109
1110+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
1111|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`must occur in namespace` |nbsp| :placeholder:`B`|
1112+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
1113
1114+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+
1115|: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`|
1116|                                                                                                                                                                          ||:diagtext:`have type 'long long'`||                                    |
1117|                                                                                                                                                                          |+---------------------------------+|                                    |
1118|                                                                                                                                                                          ||:diagtext:`be ill-formed`        ||                                    |
1119|                                                                                                                                                                          |+---------------------------------+|                                    |
1120+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+
1121
1122
1123-Wc++11-compat-deprecated-writable-strings
1124------------------------------------------
1125This diagnostic is enabled by default.
1126
1127**Diagnostic text:**
1128
1129+---------------------------------------------------------------------------------------------------------------------------------+
1130|:warning:`warning:` |nbsp| :diagtext:`conversion from string literal to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated`|
1131+---------------------------------------------------------------------------------------------------------------------------------+
1132
1133
1134-Wc++11-compat-pedantic
1135-----------------------
1136Some of the diagnostics controlled by this flag are enabled by default.
1137
1138Controls `-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`_.
1139
1140
1141-Wc++11-compat-reserved-user-defined-literal
1142--------------------------------------------
1143**Diagnostic text:**
1144
1145+----------------------------------------------------------------------------------------------------------------------------------+
1146|:warning:`warning:` |nbsp| :diagtext:`identifier after literal will be treated as a reserved user-defined literal suffix in C++11`|
1147+----------------------------------------------------------------------------------------------------------------------------------+
1148
1149
1150-Wc++11-extensions
1151------------------
1152Some of the diagnostics controlled by this flag are enabled by default.
1153
1154Also controls `-Wc++11-extra-semi`_, `-Wc++11-inline-namespace`_, `-Wc++11-long-long`_.
1155
1156**Diagnostic text:**
1157
1158+-------------------------------------------------------------------------------+
1159|:warning:`warning:` |nbsp| :diagtext:`alias declarations are a C++11 extension`|
1160+-------------------------------------------------------------------------------+
1161
1162+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+
1163|: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`|
1164|                                                                                                                                                   ||:diagtext:`integral`   ||                                                                                        |
1165|                                                                                                                                                   |+-----------------------+|                                                                                        |
1166|                                                                                                                                                   ||:diagtext:`enumeration`||                                                                                        |
1167|                                                                                                                                                   |+-----------------------+|                                                                                        |
1168+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+
1169
1170+---------------------------------------------------------------------------------+
1171|:warning:`warning:` |nbsp| :diagtext:`'auto' type specifier is a C++11 extension`|
1172+---------------------------------------------------------------------------------+
1173
1174+-----------------------------------------------------------------------------------------------------------+
1175|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a C++11 extension`|
1176+-----------------------------------------------------------------------------------------------------------+
1177
1178+---------------------------+-----------------------+--------------------------------------------------------------+
1179|:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`function definitions are a C++11 extension`|
1180|                           ||:diagtext:`defaulted`||                                                              |
1181|                           |+---------------------+|                                                              |
1182|                           ||:diagtext:`deleted`  ||                                                              |
1183|                           |+---------------------+|                                                              |
1184+---------------------------+-----------------------+--------------------------------------------------------------+
1185
1186+-----------------------------------------------------------------------------------------------------------------------------------+
1187|:warning:`warning:` |nbsp| :diagtext:`befriending enumeration type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C++11 extension`|
1188+-----------------------------------------------------------------------------------------------------------------------------------+
1189
1190+--------------------------------------------------------------------------------------------------+
1191|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C++11 extension`|
1192+--------------------------------------------------------------------------------------------------+
1193
1194+------------------------------------------------------------------------------------------+
1195|:warning:`warning:` |nbsp| :diagtext:`explicit conversion functions are a C++11 extension`|
1196+------------------------------------------------------------------------------------------+
1197
1198+-----------------------------------------------------------------------------+
1199|:warning:`warning:` |nbsp| :diagtext:`extern templates are a C++11 extension`|
1200+-----------------------------------------------------------------------------+
1201
1202+--------------------------------------------------------------------------------+
1203|:warning:`warning:` |nbsp| :diagtext:`range-based for loop is a C++11 extension`|
1204+--------------------------------------------------------------------------------+
1205
1206+------------------------------------------------------------------------------------------+
1207|:warning:`warning:` |nbsp| :diagtext:`generalized initializer lists are a C++11 extension`|
1208+------------------------------------------------------------------------------------------+
1209
1210+---------------------------------------------------------------------------------------------------------+
1211|:warning:`warning:` |nbsp| :diagtext:`use of enumeration in a nested name specifier is a C++11 extension`|
1212+---------------------------------------------------------------------------------------------------------+
1213
1214+----------------------------------------------------------------------------------------------------------------------------+
1215|:warning:`warning:` |nbsp| :diagtext:`non-class friend type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C++11 extension`|
1216+----------------------------------------------------------------------------------------------------------------------------+
1217
1218+-------------------------------------------------------------------------------------------------------------+
1219|:warning:`warning:` |nbsp| :diagtext:`in-class initialization of non-static data member is a C++11 extension`|
1220+-------------------------------------------------------------------------------------------------------------+
1221
1222+--------------------------------------------------------------------------------------------------+
1223|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' keyword is a C++11 extension`|
1224+--------------------------------------------------------------------------------------------------+
1225
1226+----------------------------------------------------------------------------------------------+
1227|:warning:`warning:` |nbsp| :diagtext:`reference qualifiers on functions are a C++11 extension`|
1228+----------------------------------------------------------------------------------------------+
1229
1230+------------------------------------------------------------------------------+
1231|:warning:`warning:` |nbsp| :diagtext:`rvalue references are a C++11 extension`|
1232+------------------------------------------------------------------------------+
1233
1234+--------------------------------------------------------------------------------+
1235|:warning:`warning:` |nbsp| :diagtext:`scoped enumerations are a C++11 extension`|
1236+--------------------------------------------------------------------------------+
1237
1238+----------------------------------------------------------------------------------------------------------------------------------+
1239|:warning:`warning:` |nbsp| :diagtext:`static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in union is a C++11 extension`|
1240+----------------------------------------------------------------------------------------------------------------------------------+
1241
1242+--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------+
1243|:warning:`warning:` |nbsp| :diagtext:`non-type template argument referring to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with internal linkage is a C++11 extension`|
1244|                                                                                      ||:diagtext:`function`||                                                                                      |
1245|                                                                                      |+--------------------+|                                                                                      |
1246|                                                                                      ||:diagtext:`object`  ||                                                                                      |
1247|                                                                                      |+--------------------+|                                                                                      |
1248+--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------+
1249
1250+-------------------------------------------------------------------------------+
1251|:warning:`warning:` |nbsp| :diagtext:`'template' keyword outside of a template`|
1252+-------------------------------------------------------------------------------+
1253
1254+---------------------------------------------------------------------------------------------------------------+
1255|:warning:`warning:` |nbsp| :diagtext:`default template arguments for a function template are a C++11 extension`|
1256+---------------------------------------------------------------------------------------------------------------+
1257
1258+------------------------------------------------------------------------------+
1259|:warning:`warning:` |nbsp| :diagtext:`'typename' occurs outside of a template`|
1260+------------------------------------------------------------------------------+
1261
1262+------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------+
1263|:warning:`warning:` |nbsp| :diagtext:`unelaborated friend declaration is a C++11 extension; specify '`|+---------------------+|:diagtext:`' to befriend` |nbsp| :placeholder:`B`|
1264|                                                                                                      ||:diagtext:`struct`   ||                                                 |
1265|                                                                                                      |+---------------------+|                                                 |
1266|                                                                                                      ||:diagtext:`interface`||                                                 |
1267|                                                                                                      |+---------------------+|                                                 |
1268|                                                                                                      ||:diagtext:`union`    ||                                                 |
1269|                                                                                                      |+---------------------+|                                                 |
1270|                                                                                                      ||:diagtext:`class`    ||                                                 |
1271|                                                                                                      |+---------------------+|                                                 |
1272|                                                                                                      ||:diagtext:`enum`     ||                                                 |
1273|                                                                                                      |+---------------------+|                                                 |
1274+------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------+
1275
1276+-------------------------------------------------------------------------------+
1277|:warning:`warning:` |nbsp| :diagtext:`variadic templates are a C++11 extension`|
1278+-------------------------------------------------------------------------------+
1279
1280
1281-Wc++11-extra-semi
1282------------------
1283**Diagnostic text:**
1284
1285+-------------------------------------------------------------------------------------------+
1286|:warning:`warning:` |nbsp| :diagtext:`extra ';' outside of a function is a C++11 extension`|
1287+-------------------------------------------------------------------------------------------+
1288
1289
1290-Wc++11-inline-namespace
1291------------------------
1292This diagnostic is enabled by default.
1293
1294**Diagnostic text:**
1295
1296+----------------------------------------------------------------------------+
1297|:warning:`warning:` |nbsp| :diagtext:`inline namespaces are a C++11 feature`|
1298+----------------------------------------------------------------------------+
1299
1300
1301-Wc++11-long-long
1302-----------------
1303**Diagnostic text:**
1304
1305+-----------------------------------------------------------------------+
1306|:warning:`warning:` |nbsp| :diagtext:`'long long' is a C++11 extension`|
1307+-----------------------------------------------------------------------+
1308
1309
1310-Wc++11-narrowing
1311-----------------
1312Some of the diagnostics controlled by this flag are enabled by default.
1313
1314**Diagnostic text:**
1315
1316+-----------------------+-----------------------------------------+--------+--------------------------------------------------------------------------------------------------------------------------+
1317|:error:`error:` |nbsp| |+---------------------------------------+| |nbsp| |+------------------------------------------------------------------------------------------------------------------------+|
1318|                       ||:diagtext:`case value`                 ||        ||+--------------------------------------------------------------------------------------------------------------+        ||
1319|                       |+---------------------------------------+|        |||:diagtext:`cannot be narrowed from type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`|        ||
1320|                       ||:diagtext:`enumerator value`           ||        ||+--------------------------------------------------------------------------------------------------------------+        ||
1321|                       |+---------------------------------------+|        |+------------------------------------------------------------------------------------------------------------------------+|
1322|                       ||:diagtext:`non-type template argument` ||        ||+----------------------------------------------------------------------------------------------------------------------+||
1323|                       |+---------------------------------------+|        |||:diagtext:`evaluates to` |nbsp| :placeholder:`C`:diagtext:`, which cannot be narrowed to type` |nbsp| :placeholder:`D`|||
1324|                       ||:diagtext:`array size`                 ||        ||+----------------------------------------------------------------------------------------------------------------------+||
1325|                       |+---------------------------------------+|        |+------------------------------------------------------------------------------------------------------------------------+|
1326|                       ||:diagtext:`constexpr if condition`     ||        |                                                                                                                          |
1327|                       |+---------------------------------------+|        |                                                                                                                          |
1328|                       ||:diagtext:`explicit specifier argument`||        |                                                                                                                          |
1329|                       |+---------------------------------------+|        |                                                                                                                          |
1330+-----------------------+-----------------------------------------+--------+--------------------------------------------------------------------------------------------------------------------------+
1331
1332+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1333|:error:`error:` |nbsp| :diagtext:`constant expression evaluates to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`which cannot be narrowed to type` |nbsp| :placeholder:`B`|
1334+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1335
1336+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1337|:error:`error:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be narrowed to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in initializer list`|
1338+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1339
1340+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1341|: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`|
1342+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1343
1344+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1345|: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`|
1346+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1347
1348+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1349|: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`|
1350+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1351
1352+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1353|: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`|
1354+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1355
1356
1357-Wc++14-binary-literal
1358----------------------
1359**Diagnostic text:**
1360
1361+------------------------------------------------------------------------------------+
1362|:warning:`warning:` |nbsp| :diagtext:`binary integer literals are a C++14 extension`|
1363+------------------------------------------------------------------------------------+
1364
1365
1366-Wc++14-compat
1367--------------
1368Controls `-Wc++98-c++11-c++14-c++17-compat`_, `-Wc++98-c++11-c++14-compat`_.
1369
1370
1371-Wc++14-compat-pedantic
1372-----------------------
1373Controls `-Wc++14-compat`_, `-Wc++98-c++11-c++14-c++17-compat-pedantic`_, `-Wc++98-c++11-c++14-compat-pedantic`_.
1374
1375
1376-Wc++14-extensions
1377------------------
1378Some of the diagnostics controlled by this flag are enabled by default.
1379
1380Also controls `-Wc++14-binary-literal`_.
1381
1382**Diagnostic text:**
1383
1384+-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
1385|:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`|
1386|                                                                                   ||:diagtext:`function`   ||                                        |
1387|                                                                                   |+-----------------------+|                                        |
1388|                                                                                   ||:diagtext:`constructor`||                                        |
1389|                                                                                   |+-----------------------+|                                        |
1390+-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
1391
1392+------------------------------------------------------------------------------------------------------------+
1393|:warning:`warning:` |nbsp| :diagtext:`multiple return statements in constexpr function is a C++14 extension`|
1394+------------------------------------------------------------------------------------------------------------+
1395
1396+----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
1397|:warning:`warning:` |nbsp| :diagtext:`variable declaration in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`|
1398|                                                                                  ||:diagtext:`function`   ||                                        |
1399|                                                                                  |+-----------------------+|                                        |
1400|                                                                                  ||:diagtext:`constructor`||                                        |
1401|                                                                                  |+-----------------------+|                                        |
1402+----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
1403
1404+-----------------------------------------------------------------------------+-------------------------+----------------------------------------+
1405|:warning:`warning:` |nbsp| :diagtext:`type definition in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`|
1406|                                                                             ||:diagtext:`function`   ||                                        |
1407|                                                                             |+-----------------------+|                                        |
1408|                                                                             ||:diagtext:`constructor`||                                        |
1409|                                                                             |+-----------------------+|                                        |
1410+-----------------------------------------------------------------------------+-------------------------+----------------------------------------+
1411
1412+---------------------------------------------------------------------------------------------------------------------------+
1413|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++14 extension`|
1414+---------------------------------------------------------------------------------------------------------------------------+
1415
1416+-------------------------------------------------------------------------------------------+
1417|:warning:`warning:` |nbsp| :diagtext:`'decltype(auto)' type specifier is a C++14 extension`|
1418+-------------------------------------------------------------------------------------------+
1419
1420+----------------------------------------------------------------------------------------+
1421|:warning:`warning:` |nbsp| :diagtext:`initialized lambda captures are a C++14 extension`|
1422+----------------------------------------------------------------------------------------+
1423
1424+-------------------------------------------------------------------------------+
1425|:warning:`warning:` |nbsp| :diagtext:`variable templates are a C++14 extension`|
1426+-------------------------------------------------------------------------------+
1427
1428
1429-Wc++17-compat
1430--------------
1431Some of the diagnostics controlled by this flag are enabled by default.
1432
1433Controls `-Wc++17-compat-mangling`_, `-Wc++98-c++11-c++14-c++17-compat`_, `-Wdeprecated-increment-bool`_, `-Wdeprecated-register`_.
1434
1435
1436-Wc++17-compat-mangling
1437-----------------------
1438This diagnostic is enabled by default.
1439
1440**Diagnostic text:**
1441
1442+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1443|: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`|
1444+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1445
1446
1447-Wc++17-compat-pedantic
1448-----------------------
1449Some of the diagnostics controlled by this flag are enabled by default.
1450
1451Controls `-Wc++17-compat`_, `-Wc++98-c++11-c++14-c++17-compat-pedantic`_.
1452
1453
1454-Wc++17-extensions
1455------------------
1456Some of the diagnostics controlled by this flag are enabled by default.
1457
1458**Diagnostic text:**
1459
1460+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1461|: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`|
1462+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1463
1464+------------------------------------------------------------------------+
1465|:warning:`warning:` |nbsp| :diagtext:`constexpr if is a C++17 extension`|
1466+------------------------------------------------------------------------+
1467
1468+---------------------------------------------------------------------------------------------+
1469|:warning:`warning:` |nbsp| :diagtext:`'constexpr' on lambda expressions is a C++17 extension`|
1470+---------------------------------------------------------------------------------------------+
1471
1472+---------------------------------------------------------------------------------------------------------------------------+
1473|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++17 extension`|
1474+---------------------------------------------------------------------------------------------------------------------------+
1475
1476+---------------------------------------------------------------------------------------+
1477|:warning:`warning:` |nbsp| :diagtext:`decomposition declarations are a C++17 extension`|
1478+---------------------------------------------------------------------------------------+
1479
1480+--------------------------------------------------------------------------------+
1481|:warning:`warning:` |nbsp| :diagtext:`pack fold expression is a C++17 extension`|
1482+--------------------------------------------------------------------------------+
1483
1484+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1485|:warning:`warning:` |nbsp| :diagtext:`'begin' and 'end' returning different types (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`) is a C++17 extension`|
1486+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1487
1488+----------------------------------------------------------------------------------------+
1489|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are a C++17 feature`|
1490+----------------------------------------------------------------------------------------+
1491
1492+----------------------------------------+--------------------+-------------------------------------------------------------+
1493|:warning:`warning:` |nbsp| :diagtext:`'`|+------------------+|:diagtext:`' initialization statements are a C++17 extension`|
1494|                                        ||:diagtext:`if`    ||                                                             |
1495|                                        |+------------------+|                                                             |
1496|                                        ||:diagtext:`switch`||                                                             |
1497|                                        |+------------------+|                                                             |
1498+----------------------------------------+--------------------+-------------------------------------------------------------+
1499
1500+-----------------------------------------------------------------------------+
1501|:warning:`warning:` |nbsp| :diagtext:`inline variables are a C++17 extension`|
1502+-----------------------------------------------------------------------------+
1503
1504+---------------------------------------------------------------------------------------------------------------------+
1505|:warning:`warning:` |nbsp| :diagtext:`use of multiple declarators in a single using declaration is a C++17 extension`|
1506+---------------------------------------------------------------------------------------------------------------------+
1507
1508+-------------------------------------------------------------------------------------------------------------------------+
1509|:warning:`warning:` |nbsp| :diagtext:`nested namespace definition is a C++17 extension; define each namespace separately`|
1510+-------------------------------------------------------------------------------------------------------------------------+
1511
1512+------------------------------------------------------------+---------------------------+-----------------------------------------------------+
1513|:warning:`warning:` |nbsp| :diagtext:`attributes on` |nbsp| |+-------------------------+| |nbsp| :diagtext:`declaration are a C++17 extension`|
1514|                                                            ||:diagtext:`a namespace`  ||                                                     |
1515|                                                            |+-------------------------+|                                                     |
1516|                                                            ||:diagtext:`an enumerator`||                                                     |
1517|                                                            |+-------------------------+|                                                     |
1518+------------------------------------------------------------+---------------------------+-----------------------------------------------------+
1519
1520+---------------------------------------------------------------------------------------+
1521|:warning:`warning:` |nbsp| :diagtext:`capture of '\*this' by copy is a C++17 extension`|
1522+---------------------------------------------------------------------------------------+
1523
1524+------------------------------------------------------------------------------------------+
1525|:warning:`warning:` |nbsp| :diagtext:`static\_assert with no message is a C++17 extension`|
1526+------------------------------------------------------------------------------------------+
1527
1528+--------------------------------------------------------------------------------------------------------+
1529|:warning:`warning:` |nbsp| :diagtext:`template template parameter using 'typename' is a C++17 extension`|
1530+--------------------------------------------------------------------------------------------------------+
1531
1532+--------------------------------------------------------------------------------------------------+
1533|:warning:`warning:` |nbsp| :diagtext:`default scope specifier for attributes is a C++17 extension`|
1534+--------------------------------------------------------------------------------------------------+
1535
1536+-----------------------------------------------------------------------------------------------+
1537|:warning:`warning:` |nbsp| :diagtext:`pack expansion of using declaration is a C++17 extension`|
1538+-----------------------------------------------------------------------------------------------+
1539
1540
1541-Wc++1y-extensions
1542------------------
1543Synonym for `-Wc++14-extensions`_.
1544
1545
1546-Wc++1z-compat
1547--------------
1548Synonym for `-Wc++17-compat`_.
1549
1550
1551-Wc++1z-compat-mangling
1552-----------------------
1553Synonym for `-Wc++17-compat-mangling`_.
1554
1555
1556-Wc++1z-extensions
1557------------------
1558Synonym for `-Wc++17-extensions`_.
1559
1560
1561-Wc++2a-compat
1562--------------
1563Some of the diagnostics controlled by this flag are enabled by default.
1564
1565**Diagnostic text:**
1566
1567+------------------------------------------------------------------------------------------------+
1568|:warning:`warning:` |nbsp| :diagtext:`consteval is incompatible with C++ standards before C++20`|
1569+------------------------------------------------------------------------------------------------+
1570
1571+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1572|:warning:`warning:` |nbsp| :diagtext:`aggregate initialization of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with user-declared constructors is incompatible with C++2a`|
1573+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1574
1575+------------------------------------------------------------------------------------------------+
1576|:warning:`warning:` |nbsp| :diagtext:`this expression will be parsed as explicit(bool) in C++2a`|
1577+------------------------------------------------------------------------------------------------+
1578
1579+------------------------------------------------------------------------------------------------------------------+
1580|:warning:`warning:` |nbsp| :diagtext:`'<=>' is a single token in C++2a; add a space to avoid a change in behavior`|
1581+------------------------------------------------------------------------------------------------------------------+
1582
1583+--------------------------------------------------------------------------------------------------------------------------------------------+
1584|: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`|
1585+--------------------------------------------------------------------------------------------------------------------------------------------+
1586
1587+-------------------------------------------------------------------------------------------+
1588|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is a keyword in C++2a`|
1589+-------------------------------------------------------------------------------------------+
1590
1591
1592-Wc++2a-compat-pedantic
1593-----------------------
1594Synonym for `-Wc++2a-compat`_.
1595
1596
1597-Wc++2a-extensions
1598------------------
1599Some of the diagnostics controlled by this flag are enabled by default.
1600
1601**Diagnostic text:**
1602
1603+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1604|:warning:`warning:` |nbsp| :diagtext:`use of function template name with no prior declaration in function call with explicit template arguments is a C++2a extension`|
1605+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1606
1607+----------------------------------------------------------------------------------------------------+
1608|:warning:`warning:` |nbsp| :diagtext:`default member initializer for bit-field is a C++2a extension`|
1609+----------------------------------------------------------------------------------------------------+
1610
1611+-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
1612|:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++2a extension`|
1613|                                                                                   ||:diagtext:`function`   ||                                        |
1614|                                                                                   |+-----------------------+|                                        |
1615|                                                                                   ||:diagtext:`constructor`||                                        |
1616|                                                                                   |+-----------------------+|                                        |
1617+-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
1618
1619+------------------------------------------------------------------------------+-------------------------+----------------------------------------+
1620|:warning:`warning:` |nbsp| :diagtext:`function try block in constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++2a extension`|
1621|                                                                              ||:diagtext:`function`   ||                                        |
1622|                                                                              |+-----------------------+|                                        |
1623|                                                                              ||:diagtext:`constructor`||                                        |
1624|                                                                              |+-----------------------+|                                        |
1625+------------------------------------------------------------------------------+-------------------------+----------------------------------------+
1626
1627+---------------------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------+
1628|:warning:`warning:` |nbsp| :diagtext:`decomposition declaration declared` |nbsp| |+------------------------------------------------------------+| |nbsp| :diagtext:`is a C++2a extension`|
1629|                                                                                 ||+------------------------------------------+                ||                                        |
1630|                                                                                 |||:diagtext:`'`:placeholder:`B`:diagtext:`'`|                ||                                        |
1631|                                                                                 ||+------------------------------------------+                ||                                        |
1632|                                                                                 |+------------------------------------------------------------+|                                        |
1633|                                                                                 ||+----------------------------------------------------------+||                                        |
1634|                                                                                 |||:diagtext:`with '`:placeholder:`B`:diagtext:`' specifiers`|||                                        |
1635|                                                                                 ||+----------------------------------------------------------+||                                        |
1636|                                                                                 |+------------------------------------------------------------+|                                        |
1637+---------------------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------+
1638
1639+--------------------------------------------------------------------------------------------------------------------+
1640|:warning:`warning:` |nbsp| :diagtext:`explicit capture of 'this' with a capture default of '=' is a C++2a extension`|
1641+--------------------------------------------------------------------------------------------------------------------+
1642
1643+-----------------------------------------------------------------------------------------------------------+
1644|:warning:`warning:` |nbsp| :diagtext:`range-based for loop initialization statements are a C++2a extension`|
1645+-----------------------------------------------------------------------------------------------------------+
1646
1647+---------------------------------------------------------------------------------------------+
1648|:warning:`warning:` |nbsp| :diagtext:`initialized lambda pack captures are a C++2a extension`|
1649+---------------------------------------------------------------------------------------------+
1650
1651+----------------------------------------------------------------------------------------------+
1652|:warning:`warning:` |nbsp| :diagtext:`inline nested namespace definition is a C++2a extension`|
1653+----------------------------------------------------------------------------------------------+
1654
1655+--------------------------------------------------------------------------------------------------------+
1656|:warning:`warning:` |nbsp| :diagtext:`explicit template parameter list for lambdas is a C++2a extension`|
1657+--------------------------------------------------------------------------------------------------------+
1658
1659+--------------------------------------------------------------------------------------------------------------------------+
1660|:warning:`warning:` |nbsp| :diagtext:`invoking a pointer to a 'const &' member function on an rvalue is a C++2a extension`|
1661+--------------------------------------------------------------------------------------------------------------------------+
1662
1663
1664-Wc++98-c++11-c++14-c++17-compat
1665--------------------------------
1666**Diagnostic text:**
1667
1668+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1669|:warning:`warning:` |nbsp| :diagtext:`use of function template name with no prior function template declaration in function call with explicit template arguments is incompatible with C++ standards before C++2a`|
1670+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1671
1672+-------------------------------------------------------------------------------------------------------------------------------+
1673|:warning:`warning:` |nbsp| :diagtext:`default member initializer for bit-field is incompatible with C++ standards before C++2a`|
1674+-------------------------------------------------------------------------------------------------------------------------------+
1675
1676+-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1677|:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++2a`|
1678|                                                                                   ||:diagtext:`function`   ||                                                                   |
1679|                                                                                   |+-----------------------+|                                                                   |
1680|                                                                                   ||:diagtext:`constructor`||                                                                   |
1681|                                                                                   |+-----------------------+|                                                                   |
1682+-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1683
1684+------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1685|:warning:`warning:` |nbsp| :diagtext:`function try block in constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++2a`|
1686|                                                                              ||:diagtext:`function`   ||                                                                   |
1687|                                                                              |+-----------------------+|                                                                   |
1688|                                                                              ||:diagtext:`constructor`||                                                                   |
1689|                                                                              |+-----------------------+|                                                                   |
1690+------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1691
1692+-------------------------------------------------------------------------------------------------------------------+
1693|:warning:`warning:` |nbsp| :diagtext:`virtual constexpr functions are incompatible with C++ standards before C++2a`|
1694+-------------------------------------------------------------------------------------------------------------------+
1695
1696+---------------------------------------------------------------------------------+--------------------------------------------------------------+-------------------------------------------------------------------+
1697|:warning:`warning:` |nbsp| :diagtext:`decomposition declaration declared` |nbsp| |+------------------------------------------------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++2a`|
1698|                                                                                 ||+------------------------------------------+                ||                                                                   |
1699|                                                                                 |||:diagtext:`'`:placeholder:`B`:diagtext:`'`|                ||                                                                   |
1700|                                                                                 ||+------------------------------------------+                ||                                                                   |
1701|                                                                                 |+------------------------------------------------------------+|                                                                   |
1702|                                                                                 ||+----------------------------------------------------------+||                                                                   |
1703|                                                                                 |||:diagtext:`with '`:placeholder:`B`:diagtext:`' specifiers`|||                                                                   |
1704|                                                                                 ||+----------------------------------------------------------+||                                                                   |
1705|                                                                                 |+------------------------------------------------------------+|                                                                   |
1706+---------------------------------------------------------------------------------+--------------------------------------------------------------+-------------------------------------------------------------------+
1707
1708+-------------------------------------------------------------------------+--------------------------------------+----------------------------------------------------------------------------------------------------------------+
1709|: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`|
1710|                                                                         ||:diagtext:`default constructor`     ||                                                                                                                |
1711|                                                                         |+------------------------------------+|                                                                                                                |
1712|                                                                         ||:diagtext:`copy constructor`        ||                                                                                                                |
1713|                                                                         |+------------------------------------+|                                                                                                                |
1714|                                                                         ||:diagtext:`move constructor`        ||                                                                                                                |
1715|                                                                         |+------------------------------------+|                                                                                                                |
1716|                                                                         ||:diagtext:`copy assignment operator`||                                                                                                                |
1717|                                                                         |+------------------------------------+|                                                                                                                |
1718|                                                                         ||:diagtext:`move assignment operator`||                                                                                                                |
1719|                                                                         |+------------------------------------+|                                                                                                                |
1720|                                                                         ||:diagtext:`destructor`              ||                                                                                                                |
1721|                                                                         |+------------------------------------+|                                                                                                                |
1722+-------------------------------------------------------------------------+--------------------------------------+----------------------------------------------------------------------------------------------------------------+
1723
1724+-----------------------------------------------------------------------------------------------------------------------------------------------+
1725|:warning:`warning:` |nbsp| :diagtext:`explicit capture of 'this' with a capture default of '=' is incompatible with C++ standards before C++2a`|
1726+-----------------------------------------------------------------------------------------------------------------------------------------------+
1727
1728+--------------------------------------------------------------------------------------------------------------------------------------+
1729|:warning:`warning:` |nbsp| :diagtext:`range-based for loop initialization statements are incompatible with C++ standards before C++2a`|
1730+--------------------------------------------------------------------------------------------------------------------------------------+
1731
1732+------------------------------------------------------------------------------------------------------------------------+
1733|:warning:`warning:` |nbsp| :diagtext:`initialized lambda capture packs are incompatible with C++ standards before C++2a`|
1734+------------------------------------------------------------------------------------------------------------------------+
1735
1736+-------------------------------------------------------------------------------------------------------------------------+
1737|:warning:`warning:` |nbsp| :diagtext:`inline nested namespace definition is incompatible with C++ standards before C++2a`|
1738+-------------------------------------------------------------------------------------------------------------------------+
1739
1740+---------------------------+----------------------------------+-----------------------------------------------------------------------------+
1741|:warning:`warning:` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`of lambda is incompatible with C++ standards before C++2a`|
1742|                           ||:diagtext:`default construction`||                                                                             |
1743|                           |+--------------------------------+|                                                                             |
1744|                           ||:diagtext:`assignment`          ||                                                                             |
1745|                           |+--------------------------------+|                                                                             |
1746+---------------------------+----------------------------------+-----------------------------------------------------------------------------+
1747
1748+-----------------------------------------------------------------------------------------------------------------------------------+
1749|:warning:`warning:` |nbsp| :diagtext:`explicit template parameter list for lambdas is incompatible with C++ standards before C++2a`|
1750+-----------------------------------------------------------------------------------------------------------------------------------+
1751
1752+-----------------------------------------------------------------------------------------------------+
1753|:warning:`warning:` |nbsp| :diagtext:`'<=>' operator is incompatible with C++ standards before C++2a`|
1754+-----------------------------------------------------------------------------------------------------+
1755
1756+----------------------------------------------------------------------------------------------------------------+
1757|:warning:`warning:` |nbsp| :diagtext:`'char8\_t' type specifier is incompatible with C++ standards before C++20`|
1758+----------------------------------------------------------------------------------------------------------------+
1759
1760
1761-Wc++98-c++11-c++14-c++17-compat-pedantic
1762-----------------------------------------
1763Also controls `-Wc++98-c++11-c++14-c++17-compat`_.
1764
1765**Diagnostic text:**
1766
1767+-----------------------------------------------------------------------------------------------------------------------------------------------------+
1768|:warning:`warning:` |nbsp| :diagtext:`invoking a pointer to a 'const &' member function on an rvalue is incompatible with C++ standards before C++2a`|
1769+-----------------------------------------------------------------------------------------------------------------------------------------------------+
1770
1771
1772-Wc++98-c++11-c++14-compat
1773--------------------------
1774**Diagnostic text:**
1775
1776+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+
1777|:warning:`warning:` |nbsp| :diagtext:`class template argument deduction is incompatible with C++ standards before C++17`|+---------------------------------------------------------------------------------+|
1778|                                                                                                                        ||                                                                                 ||
1779|                                                                                                                        |+---------------------------------------------------------------------------------+|
1780|                                                                                                                        ||+-------------------------------------------------------------------------------+||
1781|                                                                                                                        |||:diagtext:`; for compatibility, use explicit type name` |nbsp| :placeholder:`B`|||
1782|                                                                                                                        ||+-------------------------------------------------------------------------------+||
1783|                                                                                                                        |+---------------------------------------------------------------------------------+|
1784+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+
1785
1786+---------------------------------------------------------------------------------------------------+
1787|:warning:`warning:` |nbsp| :diagtext:`constexpr if is incompatible with C++ standards before C++17`|
1788+---------------------------------------------------------------------------------------------------+
1789
1790+----------------------------------------------------------------------------------------------------------------------+
1791|:warning:`warning:` |nbsp| :diagtext:`constexpr on lambda expressions is incompatible with C++ standards before C++17`|
1792+----------------------------------------------------------------------------------------------------------------------+
1793
1794+------------------------------------------------------------------------------------------------------------------+
1795|:warning:`warning:` |nbsp| :diagtext:`decomposition declarations are incompatible with C++ standards before C++17`|
1796+------------------------------------------------------------------------------------------------------------------+
1797
1798+-----------------------------------------------------------------------------------------------------------+
1799|:warning:`warning:` |nbsp| :diagtext:`pack fold expression is incompatible with C++ standards before C++17`|
1800+-----------------------------------------------------------------------------------------------------------+
1801
1802+---------------------------+--------------------+----------------------------------------------------------------------------------------------+
1803|:warning:`warning:` |nbsp| |+------------------+| |nbsp| :diagtext:`initialization statements are incompatible with C++ standards before C++17`|
1804|                           ||:diagtext:`if`    ||                                                                                              |
1805|                           |+------------------+|                                                                                              |
1806|                           ||:diagtext:`switch`||                                                                                              |
1807|                           |+------------------+|                                                                                              |
1808+---------------------------+--------------------+----------------------------------------------------------------------------------------------+
1809
1810+--------------------------------------------------------------------------------------------------------+
1811|:warning:`warning:` |nbsp| :diagtext:`inline variables are incompatible with C++ standards before C++17`|
1812+--------------------------------------------------------------------------------------------------------+
1813
1814+------------------------------------------------------------------------------------------------------------------+
1815|:warning:`warning:` |nbsp| :diagtext:`nested namespace definition is incompatible with C++ standards before C++17`|
1816+------------------------------------------------------------------------------------------------------------------+
1817
1818+-------------------------------------------------------------------------------------------------------------------+
1819|:warning:`warning:` |nbsp| :diagtext:`by value capture of '\*this' is incompatible with C++ standards before C++17`|
1820+-------------------------------------------------------------------------------------------------------------------+
1821
1822+---------------------------------------------------------------------------------------------------------------------+
1823|:warning:`warning:` |nbsp| :diagtext:`static\_assert with no message is incompatible with C++ standards before C++17`|
1824+---------------------------------------------------------------------------------------------------------------------+
1825
1826+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1827|:warning:`warning:` |nbsp| :diagtext:`non-type template parameters declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`are incompatible with C++ standards before C++17`|
1828+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1829
1830+-----------------------------------------------------------------------------------------------------------------------------------+
1831|:warning:`warning:` |nbsp| :diagtext:`template template parameter using 'typename' is incompatible with C++ standards before C++17`|
1832+-----------------------------------------------------------------------------------------------------------------------------------+
1833
1834+--------------------------------------------------------------------------------------------------------+
1835|:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C++ standards before C++17`|
1836+--------------------------------------------------------------------------------------------------------+
1837
1838+-----------------------------------------------------------------------------------------------------------------------------+
1839|:warning:`warning:` |nbsp| :diagtext:`default scope specifier for attributes is incompatible with C++ standards before C++17`|
1840+-----------------------------------------------------------------------------------------------------------------------------+
1841
1842+------------------------------------------------------------------------------------------------------------------------------------------------+
1843|:warning:`warning:` |nbsp| :diagtext:`use of multiple declarators in a single using declaration is incompatible with C++ standards before C++17`|
1844+------------------------------------------------------------------------------------------------------------------------------------------------+
1845
1846+-----------------------------------------------------------------------------------------------------------------------+
1847|:warning:`warning:` |nbsp| :diagtext:`pack expansion using declaration is incompatible with C++ standards before C++17`|
1848+-----------------------------------------------------------------------------------------------------------------------+
1849
1850+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1851|: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`|
1852+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1853
1854
1855-Wc++98-c++11-c++14-compat-pedantic
1856-----------------------------------
1857Also controls `-Wc++98-c++11-c++14-compat`_.
1858
1859**Diagnostic text:**
1860
1861+------------------------------------------------------------+---------------------------+--------------------------------------------------------------------------------+
1862|:warning:`warning:` |nbsp| :diagtext:`attributes on` |nbsp| |+-------------------------+| |nbsp| :diagtext:`declaration are incompatible with C++ standards before C++17`|
1863|                                                            ||:diagtext:`a namespace`  ||                                                                                |
1864|                                                            |+-------------------------+|                                                                                |
1865|                                                            ||:diagtext:`an enumerator`||                                                                                |
1866|                                                            |+-------------------------+|                                                                                |
1867+------------------------------------------------------------+---------------------------+--------------------------------------------------------------------------------+
1868
1869+---------------------------------------------------------------------------------------------------------------------+
1870|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are incompatible with C++ standards before C++17`|
1871+---------------------------------------------------------------------------------------------------------------------+
1872
1873
1874-Wc++98-c++11-compat
1875--------------------
1876**Diagnostic text:**
1877
1878+-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1879|:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`|
1880|                                                                                   ||:diagtext:`function`   ||                                                                   |
1881|                                                                                   |+-----------------------+|                                                                   |
1882|                                                                                   ||:diagtext:`constructor`||                                                                   |
1883|                                                                                   |+-----------------------+|                                                                   |
1884+-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1885
1886+---------------------------------------------------------------------------------------------------------------------------------------+
1887|:warning:`warning:` |nbsp| :diagtext:`multiple return statements in constexpr function is incompatible with C++ standards before C++14`|
1888+---------------------------------------------------------------------------------------------------------------------------------------+
1889
1890+-----------------------------------------------------------------------------------------------------------------------------------+
1891|:warning:`warning:` |nbsp| :diagtext:`constexpr function with no return statements is incompatible with C++ standards before C++14`|
1892+-----------------------------------------------------------------------------------------------------------------------------------+
1893
1894+----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1895|:warning:`warning:` |nbsp| :diagtext:`variable declaration in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`|
1896|                                                                                  ||:diagtext:`function`   ||                                                                   |
1897|                                                                                  |+-----------------------+|                                                                   |
1898|                                                                                  ||:diagtext:`constructor`||                                                                   |
1899|                                                                                  |+-----------------------+|                                                                   |
1900+----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1901
1902+-----------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1903|:warning:`warning:` |nbsp| :diagtext:`type definition in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`|
1904|                                                                             ||:diagtext:`function`   ||                                                                   |
1905|                                                                             |+-----------------------+|                                                                   |
1906|                                                                             ||:diagtext:`constructor`||                                                                   |
1907|                                                                             |+-----------------------+|                                                                   |
1908+-----------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1909
1910+----------------------------------------------------------------------------------------------------------------------+
1911|:warning:`warning:` |nbsp| :diagtext:`'decltype(auto)' type specifier is incompatible with C++ standards before C++14`|
1912+----------------------------------------------------------------------------------------------------------------------+
1913
1914+------------------------------------------------------------------------------------------------------------+
1915|:warning:`warning:` |nbsp| :diagtext:`return type deduction is incompatible with C++ standards before C++14`|
1916+------------------------------------------------------------------------------------------------------------+
1917
1918+--------------------------------------------------------------------------------------------------------+
1919|:warning:`warning:` |nbsp| :diagtext:`digit separators are incompatible with C++ standards before C++14`|
1920+--------------------------------------------------------------------------------------------------------+
1921
1922+----------------------------------------------------------------------------------+
1923|:warning:`warning:` |nbsp| :diagtext:`generic lambdas are incompatible with C++11`|
1924+----------------------------------------------------------------------------------+
1925
1926+-------------------------------------------------------------------------------------------------------------------+
1927|:warning:`warning:` |nbsp| :diagtext:`initialized lambda captures are incompatible with C++ standards before C++14`|
1928+-------------------------------------------------------------------------------------------------------------------+
1929
1930+----------------------------------------------------------------------------------------------------------+
1931|:warning:`warning:` |nbsp| :diagtext:`variable templates are incompatible with C++ standards before C++14`|
1932+----------------------------------------------------------------------------------------------------------+
1933
1934
1935-Wc++98-c++11-compat-binary-literal
1936-----------------------------------
1937**Diagnostic text:**
1938
1939+---------------------------------------------------------------------------------------------------------------+
1940|:warning:`warning:` |nbsp| :diagtext:`binary integer literals are incompatible with C++ standards before C++14`|
1941+---------------------------------------------------------------------------------------------------------------+
1942
1943
1944-Wc++98-c++11-compat-pedantic
1945-----------------------------
1946Controls `-Wc++98-c++11-compat`_, `-Wc++98-c++11-compat-binary-literal`_.
1947
1948
1949-Wc++98-compat
1950--------------
1951Also 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`_.
1952
1953**Diagnostic text:**
1954
1955+-------------------------------------------------------------------------------------+
1956|:warning:`warning:` |nbsp| :diagtext:`alias declarations are incompatible with C++98`|
1957+-------------------------------------------------------------------------------------+
1958
1959+---------------------------------------------------------------------------+
1960|:warning:`warning:` |nbsp| :diagtext:`'alignas' is incompatible with C++98`|
1961+---------------------------------------------------------------------------+
1962
1963+--------------------------------------------------------------------------------------+
1964|:warning:`warning:` |nbsp| :diagtext:`alignof expressions are incompatible with C++98`|
1965+--------------------------------------------------------------------------------------+
1966
1967+----------------------------------------------------------------------------------------+
1968|:warning:`warning:` |nbsp| :diagtext:`C++11 attribute syntax is incompatible with C++98`|
1969+----------------------------------------------------------------------------------------+
1970
1971+---------------------------------------------------------------------------------------+
1972|:warning:`warning:` |nbsp| :diagtext:`'auto' type specifier is incompatible with C++98`|
1973+---------------------------------------------------------------------------------------+
1974
1975+---------------------------------------------------------------------------------------+
1976|:warning:`warning:` |nbsp| :diagtext:`'constexpr' specifier is incompatible with C++98`|
1977+---------------------------------------------------------------------------------------+
1978
1979+--------------------------------------------------------------------------------------------------------+
1980|:warning:`warning:` |nbsp| :diagtext:`constructor call from initializer list is incompatible with C++98`|
1981+--------------------------------------------------------------------------------------------------------+
1982
1983+-------------------------------------------------------------------------------------------+
1984|:warning:`warning:` |nbsp| :diagtext:`'decltype' type specifier is incompatible with C++98`|
1985+-------------------------------------------------------------------------------------------+
1986
1987+---------------------------+-----------------------+--------------------------------------------------------------------+
1988|:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`function definitions are incompatible with C++98`|
1989|                           ||:diagtext:`defaulted`||                                                                    |
1990|                           |+---------------------+|                                                                    |
1991|                           ||:diagtext:`deleted`  ||                                                                    |
1992|                           |+---------------------+|                                                                    |
1993+---------------------------+-----------------------+--------------------------------------------------------------------+
1994
1995+------------------------------------------------------------------------------------------+
1996|:warning:`warning:` |nbsp| :diagtext:`delegating constructors are incompatible with C++98`|
1997+------------------------------------------------------------------------------------------+
1998
1999+----------------------------------------------------------------------------------------------------------------+
2000|:warning:`warning:` |nbsp| :diagtext:`scalar initialized from empty initializer list is incompatible with C++98`|
2001+----------------------------------------------------------------------------------------------------------------+
2002
2003+-----------------------------------------------------------------------------------------------------------------+
2004|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are incompatible with C++98`|
2005+-----------------------------------------------------------------------------------------------------------------+
2006
2007+-----------------------------------------------------------------------------------------------------------------------------------------+
2008|:warning:`warning:` |nbsp| :diagtext:`befriending enumeration type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with C++98`|
2009+-----------------------------------------------------------------------------------------------------------------------------------------+
2010
2011+-----------------------------------------------------------------------------------------------------------+
2012|:warning:`warning:` |nbsp| :diagtext:`enumeration type in nested name specifier is incompatible with C++98`|
2013+-----------------------------------------------------------------------------------------------------------+
2014
2015+------------------------------------------------------------------------------------------------+
2016|:warning:`warning:` |nbsp| :diagtext:`explicit conversion functions are incompatible with C++98`|
2017+------------------------------------------------------------------------------------------------+
2018
2019+--------------------------------------------------------------------------------------+
2020|:warning:`warning:` |nbsp| :diagtext:`range-based for loop is incompatible with C++98`|
2021+--------------------------------------------------------------------------------------+
2022
2023+---------------------------------------------------------------------------------------------------------------------------+
2024|:warning:`warning:` |nbsp| :diagtext:`friend declaration naming a member of the declaring class is incompatible with C++98`|
2025+---------------------------------------------------------------------------------------------------------------------------+
2026
2027+------------------------------------------------------------------------------------------------+
2028|:warning:`warning:` |nbsp| :diagtext:`generalized initializer lists are incompatible with C++98`|
2029+------------------------------------------------------------------------------------------------+
2030
2031+------------------------------------------------------------------------------------------------------------+
2032|:warning:`warning:` |nbsp| :diagtext:`jump from this goto statement to its label is incompatible with C++98`|
2033+------------------------------------------------------------------------------------------------------------+
2034
2035+-------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+
2036|:warning:`warning:` |nbsp| :diagtext:`jump from this` |nbsp| |+--------------------+| |nbsp| :diagtext:`goto statement to one of its possible targets is incompatible with C++98`|
2037|                                                             ||:diagtext:`indirect`||                                                                                            |
2038|                                                             |+--------------------+|                                                                                            |
2039|                                                             ||:diagtext:`asm`     ||                                                                                            |
2040|                                                             |+--------------------+|                                                                                            |
2041+-------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+
2042
2043+------------------------------------------------------------------------------------------------------------+
2044|:warning:`warning:` |nbsp| :diagtext:`initialization of initializer\_list object is incompatible with C++98`|
2045+------------------------------------------------------------------------------------------------------------+
2046
2047+------------------------------------------------------------------------------------+
2048|:warning:`warning:` |nbsp| :diagtext:`inline namespaces are incompatible with C++98`|
2049+------------------------------------------------------------------------------------+
2050
2051+-------------------------------------------------------------------------------------+
2052|:warning:`warning:` |nbsp| :diagtext:`lambda expressions are incompatible with C++98`|
2053+-------------------------------------------------------------------------------------+
2054
2055+-----------------------------------------------------------------------------------------------------------+
2056|:warning:`warning:` |nbsp| :diagtext:`'<::' is treated as digraph '<:' (aka '\[') followed by ':' in C++98`|
2057+-----------------------------------------------------------------------------------------------------------+
2058
2059+------------------------------------------------------------------------------------+
2060|:warning:`warning:` |nbsp| :diagtext:`literal operators are incompatible with C++98`|
2061+------------------------------------------------------------------------------------+
2062
2063+---------------------------------------------------------------------------------------------------------------------------+
2064|:warning:`warning:` |nbsp| :diagtext:`universal character name referring to a control character is incompatible with C++98`|
2065+---------------------------------------------------------------------------------------------------------------------------+
2066
2067+-----------------------------------------------------------------------------------------------------------------------------------------------------+
2068|:warning:`warning:` |nbsp| :diagtext:`specifying character '`:placeholder:`A`:diagtext:`' with a universal character name is incompatible with C++98`|
2069+-----------------------------------------------------------------------------------------------------------------------------------------------------+
2070
2071+------------------------------------------------------------------------------------------+
2072|:warning:`warning:` |nbsp| :diagtext:`noexcept specifications are incompatible with C++98`|
2073+------------------------------------------------------------------------------------------+
2074
2075+---------------------------------------------------------------------------------------+
2076|:warning:`warning:` |nbsp| :diagtext:`noexcept expressions are incompatible with C++98`|
2077+---------------------------------------------------------------------------------------+
2078
2079+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2080|:warning:`warning:` |nbsp| :diagtext:`use of non-static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in an unevaluated context is incompatible with C++98`|
2081+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2082
2083+----------------------------------------------------------------------------------------------------------------------------------+
2084|:warning:`warning:` |nbsp| :diagtext:`non-class friend type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with C++98`|
2085+----------------------------------------------------------------------------------------------------------------------------------+
2086
2087+--------------------------------------------------------------------------------------------------------------------+
2088|:warning:`warning:` |nbsp| :diagtext:`in-class initialization of non-static data members is incompatible with C++98`|
2089+--------------------------------------------------------------------------------------------------------------------+
2090
2091+---------------------------+------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+----------------------------------------------+
2092|:warning:`warning:` |nbsp| |+----------------------------+| |nbsp| :diagtext:`member` |nbsp| :placeholder:`B` |nbsp| :diagtext:`with a non-trivial` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`is incompatible with C++98`|
2093|                           ||:diagtext:`anonymous struct`||                                                                                                ||:diagtext:`default constructor`     ||                                              |
2094|                           |+----------------------------+|                                                                                                |+------------------------------------+|                                              |
2095|                           ||:diagtext:`union`           ||                                                                                                ||:diagtext:`copy constructor`        ||                                              |
2096|                           |+----------------------------+|                                                                                                |+------------------------------------+|                                              |
2097|                           |                              |                                                                                                ||:diagtext:`move constructor`        ||                                              |
2098|                           |                              |                                                                                                |+------------------------------------+|                                              |
2099|                           |                              |                                                                                                ||:diagtext:`copy assignment operator`||                                              |
2100|                           |                              |                                                                                                |+------------------------------------+|                                              |
2101|                           |                              |                                                                                                ||:diagtext:`move assignment operator`||                                              |
2102|                           |                              |                                                                                                |+------------------------------------+|                                              |
2103|                           |                              |                                                                                                ||:diagtext:`destructor`              ||                                              |
2104|                           |                              |                                                                                                |+------------------------------------+|                                              |
2105+---------------------------+------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+----------------------------------------------+
2106
2107+---------------------------------------------------------------------------+
2108|:warning:`warning:` |nbsp| :diagtext:`'nullptr' is incompatible with C++98`|
2109+---------------------------------------------------------------------------+
2110
2111+--------------------------------------------------------------------------------------------------------+
2112|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' keyword is incompatible with C++98`|
2113+--------------------------------------------------------------------------------------------------------+
2114
2115+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+
2116|: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`|
2117|                                                                                                                                                     ||:diagtext:`function`   ||                                              |
2118|                                                                                                                                                     |+-----------------------+|                                              |
2119|                                                                                                                                                     ||:diagtext:`block`      ||                                              |
2120|                                                                                                                                                     |+-----------------------+|                                              |
2121|                                                                                                                                                     ||:diagtext:`method`     ||                                              |
2122|                                                                                                                                                     |+-----------------------+|                                              |
2123|                                                                                                                                                     ||:diagtext:`constructor`||                                              |
2124|                                                                                                                                                     |+-----------------------+|                                              |
2125+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+
2126
2127+--------------------------------------------------------------------------------------+
2128|:warning:`warning:` |nbsp| :diagtext:`raw string literals are incompatible with C++98`|
2129+--------------------------------------------------------------------------------------+
2130
2131+----------------------------------------------------------------------------------------------------+
2132|:warning:`warning:` |nbsp| :diagtext:`reference qualifiers on functions are incompatible with C++98`|
2133+----------------------------------------------------------------------------------------------------+
2134
2135+-------------------------------------------------------------------------------------------------------------+
2136|:warning:`warning:` |nbsp| :diagtext:`reference initialized from initializer list is incompatible with C++98`|
2137+-------------------------------------------------------------------------------------------------------------+
2138
2139+------------------------------------------------------------------------------------+
2140|:warning:`warning:` |nbsp| :diagtext:`rvalue references are incompatible with C++98`|
2141+------------------------------------------------------------------------------------+
2142
2143+--------------------------------------------------------------------------------------+
2144|:warning:`warning:` |nbsp| :diagtext:`scoped enumerations are incompatible with C++98`|
2145+--------------------------------------------------------------------------------------+
2146
2147+------------------------------------------------------------------------------------------------------------+
2148|:warning:`warning:` |nbsp| :diagtext:`substitution failure due to access control is incompatible with C++98`|
2149+------------------------------------------------------------------------------------------------------------+
2150
2151+----------------------------------------------------------------------------------------------+
2152|:warning:`warning:` |nbsp| :diagtext:`static\_assert declarations are incompatible with C++98`|
2153+----------------------------------------------------------------------------------------------+
2154
2155+----------------------------------------------------------------------------------------------------------------------------------------+
2156|:warning:`warning:` |nbsp| :diagtext:`static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in union is incompatible with C++98`|
2157+----------------------------------------------------------------------------------------------------------------------------------------+
2158
2159+---------------------------------------------------------------------------------------------------------------+
2160|:warning:`warning:` |nbsp| :diagtext:`jump from switch statement to this case label is incompatible with C++98`|
2161+---------------------------------------------------------------------------------------------------------------+
2162
2163+---------------------------------------------------------------------------------------------------------------------------------------+
2164|:warning:`warning:` |nbsp| :diagtext:`redundant parentheses surrounding address non-type template argument are incompatible with C++98`|
2165+---------------------------------------------------------------------------------------------------------------------------------------+
2166
2167+-------------------------------------------------------------------------------------------------------------------+
2168|:warning:`warning:` |nbsp| :diagtext:`use of null pointer as non-type template argument is incompatible with C++98`|
2169+-------------------------------------------------------------------------------------------------------------------+
2170
2171+--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+
2172|:warning:`warning:` |nbsp| :diagtext:`non-type template argument referring to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with internal linkage is incompatible with C++98`|
2173|                                                                                      ||:diagtext:`function`||                                                                                            |
2174|                                                                                      |+--------------------+|                                                                                            |
2175|                                                                                      ||:diagtext:`object`  ||                                                                                            |
2176|                                                                                      |+--------------------+|                                                                                            |
2177+--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+
2178
2179+-----------------------------------------------------------------------------------------------------------------+
2180|:warning:`warning:` |nbsp| :diagtext:`use of 'template' keyword outside of a template is incompatible with C++98`|
2181+-----------------------------------------------------------------------------------------------------------------+
2182
2183+---------------------------------------------------------------------------------------------------------------------+
2184|:warning:`warning:` |nbsp| :diagtext:`default template arguments for a function template are incompatible with C++98`|
2185+---------------------------------------------------------------------------------------------------------------------+
2186
2187+----------------------------------------------------------------------------------------+
2188|:warning:`warning:` |nbsp| :diagtext:`trailing return types are incompatible with C++98`|
2189+----------------------------------------------------------------------------------------+
2190
2191+---------------------------------------------------------------------------------------------------------------+
2192|:warning:`warning:` |nbsp| :diagtext:`consecutive right angle brackets are incompatible with C++98 (use '> >')`|
2193+---------------------------------------------------------------------------------------------------------------+
2194
2195+---------------------------------------------------------------------------------------------------------+
2196|:warning:`warning:` |nbsp| :diagtext:`use of 'typename' outside of a template is incompatible with C++98`|
2197+---------------------------------------------------------------------------------------------------------+
2198
2199+-------------------------------------------------------------------------------------------------------+-----------------------+------------------------------------------------+
2200|:warning:`warning:` |nbsp| :diagtext:`befriending` |nbsp| :placeholder:`B` |nbsp| :diagtext:`without '`|+---------------------+|:diagtext:`' keyword is incompatible with C++98`|
2201|                                                                                                       ||:diagtext:`struct`   ||                                                |
2202|                                                                                                       |+---------------------+|                                                |
2203|                                                                                                       ||:diagtext:`interface`||                                                |
2204|                                                                                                       |+---------------------+|                                                |
2205|                                                                                                       ||:diagtext:`union`    ||                                                |
2206|                                                                                                       |+---------------------+|                                                |
2207|                                                                                                       ||:diagtext:`class`    ||                                                |
2208|                                                                                                       |+---------------------+|                                                |
2209|                                                                                                       ||:diagtext:`enum`     ||                                                |
2210|                                                                                                       |+---------------------+|                                                |
2211+-------------------------------------------------------------------------------------------------------+-----------------------+------------------------------------------------+
2212
2213+-------------------------------------------------------------------------------------------------------+
2214|:warning:`warning:` |nbsp| :diagtext:`using this character in an identifier is incompatible with C++98`|
2215+-------------------------------------------------------------------------------------------------------+
2216
2217+-----------------------------------------------------------------------------------+
2218|:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C++98`|
2219+-----------------------------------------------------------------------------------+
2220
2221+---------------------------------------------------------------------------------------------------------------+
2222|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' type specifier is incompatible with C++98`|
2223+---------------------------------------------------------------------------------------------------------------+
2224
2225+------------------------------------------------------------------------------------------+
2226|:warning:`warning:` |nbsp| :diagtext:`inheriting constructors are incompatible with C++98`|
2227+------------------------------------------------------------------------------------------+
2228
2229+-------------------------------------------------------------------------------------+
2230|:warning:`warning:` |nbsp| :diagtext:`variadic templates are incompatible with C++98`|
2231+-------------------------------------------------------------------------------------+
2232
2233
2234-Wc++98-compat-bind-to-temporary-copy
2235-------------------------------------
2236**Diagnostic text:**
2237
2238+---------------------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------+----------------------------+
2239|: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`|
2240|                           ||:diagtext:`copying variable`                        ||                                                                                                                            ||:diagtext:`invoke an inaccessible constructor`||                            |
2241|                           |+----------------------------------------------------+|                                                                                                                            |+----------------------------------------------+|                            |
2242|                           ||:diagtext:`copying parameter`                       ||                                                                                                                            ||:diagtext:`find no viable constructor`        ||                            |
2243|                           |+----------------------------------------------------+|                                                                                                                            |+----------------------------------------------+|                            |
2244|                           ||:diagtext:`returning object`                        ||                                                                                                                            ||:diagtext:`find ambiguous constructors`       ||                            |
2245|                           |+----------------------------------------------------+|                                                                                                                            |+----------------------------------------------+|                            |
2246|                           ||:diagtext:`initializing statement expression result`||                                                                                                                            ||:diagtext:`invoke a deleted constructor`      ||                            |
2247|                           |+----------------------------------------------------+|                                                                                                                            |+----------------------------------------------+|                            |
2248|                           ||:diagtext:`throwing object`                         ||                                                                                                                            |                                                |                            |
2249|                           |+----------------------------------------------------+|                                                                                                                            |                                                |                            |
2250|                           ||:diagtext:`copying member subobject`                ||                                                                                                                            |                                                |                            |
2251|                           |+----------------------------------------------------+|                                                                                                                            |                                                |                            |
2252|                           ||:diagtext:`copying array element`                   ||                                                                                                                            |                                                |                            |
2253|                           |+----------------------------------------------------+|                                                                                                                            |                                                |                            |
2254|                           ||:diagtext:`allocating object`                       ||                                                                                                                            |                                                |                            |
2255|                           |+----------------------------------------------------+|                                                                                                                            |                                                |                            |
2256|                           ||:diagtext:`copying temporary`                       ||                                                                                                                            |                                                |                            |
2257|                           |+----------------------------------------------------+|                                                                                                                            |                                                |                            |
2258|                           ||:diagtext:`initializing base subobject`             ||                                                                                                                            |                                                |                            |
2259|                           |+----------------------------------------------------+|                                                                                                                            |                                                |                            |
2260|                           ||:diagtext:`initializing vector element`             ||                                                                                                                            |                                                |                            |
2261|                           |+----------------------------------------------------+|                                                                                                                            |                                                |                            |
2262|                           ||:diagtext:`capturing value`                         ||                                                                                                                            |                                                |                            |
2263|                           |+----------------------------------------------------+|                                                                                                                            |                                                |                            |
2264+---------------------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------+----------------------------+
2265
2266
2267-Wc++98-compat-extra-semi
2268-------------------------
2269**Diagnostic text:**
2270
2271+-------------------------------------------------------------------------------------------------+
2272|:warning:`warning:` |nbsp| :diagtext:`extra ';' outside of a function is incompatible with C++98`|
2273+-------------------------------------------------------------------------------------------------+
2274
2275
2276-Wc++98-compat-local-type-template-args
2277---------------------------------------
2278**Diagnostic text:**
2279
2280+--------------------------------------------------------------------------------------------------------------------------------------------+
2281|:warning:`warning:` |nbsp| :diagtext:`local type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as template argument is incompatible with C++98`|
2282+--------------------------------------------------------------------------------------------------------------------------------------------+
2283
2284
2285-Wc++98-compat-pedantic
2286-----------------------
2287Also 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`_.
2288
2289**Diagnostic text:**
2290
2291+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------------+
2292|: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`|
2293|                                                                                                                                                   ||:diagtext:`integral`   ||                                                                                              |
2294|                                                                                                                                                   |+-----------------------+|                                                                                              |
2295|                                                                                                                                                   ||:diagtext:`enumeration`||                                                                                              |
2296|                                                                                                                                                   |+-----------------------+|                                                                                              |
2297+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------------+
2298
2299+------------------------------------------------------------------------------------------------------------------------+
2300|:warning:`warning:` |nbsp| :diagtext:`cast between pointer-to-function and pointer-to-object is incompatible with C++98`|
2301+------------------------------------------------------------------------------------------------------------------------+
2302
2303+----------------------------------------------------------------------------------------+
2304|:warning:`warning:` |nbsp| :diagtext:`empty macro arguments are incompatible with C++98`|
2305+----------------------------------------------------------------------------------------+
2306
2307+--------------------------------------------------------------------------------------------------------+
2308|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are incompatible with C++98`|
2309+--------------------------------------------------------------------------------------------------------+
2310
2311+-----------------------------------------------------------------------------------+
2312|:warning:`warning:` |nbsp| :diagtext:`extern templates are incompatible with C++98`|
2313+-----------------------------------------------------------------------------------+
2314
2315+-----------------------------------------------------------------------------+
2316|:warning:`warning:` |nbsp| :diagtext:`'long long' is incompatible with C++98`|
2317+-----------------------------------------------------------------------------+
2318
2319+----------------------------------------------------------------------------+
2320|:warning:`warning:` |nbsp| :diagtext:`C++98 requires newline at end of file`|
2321+----------------------------------------------------------------------------+
2322
2323+-------------------------------------------------------------------------------------------------+
2324|:warning:`warning:` |nbsp| :diagtext:`#line number greater than 32767 is incompatible with C++98`|
2325+-------------------------------------------------------------------------------------------------+
2326
2327+----------------------------------------------------------------------------------+
2328|:warning:`warning:` |nbsp| :diagtext:`variadic macros are incompatible with C++98`|
2329+----------------------------------------------------------------------------------+
2330
2331
2332-Wc++98-compat-unnamed-type-template-args
2333-----------------------------------------
2334**Diagnostic text:**
2335
2336+---------------------------------------------------------------------------------------------------+
2337|:warning:`warning:` |nbsp| :diagtext:`unnamed type as template argument is incompatible with C++98`|
2338+---------------------------------------------------------------------------------------------------+
2339
2340
2341-Wc11-extensions
2342----------------
2343**Diagnostic text:**
2344
2345+---------------------------------------------------------------------------+
2346|:warning:`warning:` |nbsp| :diagtext:`anonymous unions are a C11 extension`|
2347+---------------------------------------------------------------------------+
2348
2349+----------------------------------------------------------------------------------------+
2350|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C11-specific feature`|
2351+----------------------------------------------------------------------------------------+
2352
2353+----------------------------------------------------------------------------+
2354|:warning:`warning:` |nbsp| :diagtext:`anonymous structs are a C11 extension`|
2355+----------------------------------------------------------------------------+
2356
2357+------------------------------------------------------------------------------------+
2358|:warning:`warning:` |nbsp| :diagtext:`generic selections are a C11-specific feature`|
2359+------------------------------------------------------------------------------------+
2360
2361+--------------------------------------------------------------------------------------+
2362|:warning:`warning:` |nbsp| :diagtext:`\_Noreturn functions are a C11-specific feature`|
2363+--------------------------------------------------------------------------------------+
2364
2365+---------------------------------------------------------------------------------+
2366|:warning:`warning:` |nbsp| :diagtext:`\_Static\_assert is a C11-specific feature`|
2367+---------------------------------------------------------------------------------+
2368
2369
2370-Wc99-compat
2371------------
2372Some of the diagnostics controlled by this flag are enabled by default.
2373
2374**Diagnostic text:**
2375
2376+---------------------------+--------------------------------------------------------+--------------------------------------------+
2377|:warning:`warning:` |nbsp| |+------------------------------------------------------+| |nbsp| :diagtext:`is incompatible with C99`|
2378|                           ||:diagtext:`using this character in an identifier`     ||                                            |
2379|                           |+------------------------------------------------------+|                                            |
2380|                           ||:diagtext:`starting an identifier with this character`||                                            |
2381|                           |+------------------------------------------------------+|                                            |
2382+---------------------------+--------------------------------------------------------+--------------------------------------------+
2383
2384+---------------------------------------------------------------------------------+
2385|:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C99`|
2386+---------------------------------------------------------------------------------+
2387
2388+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+----------------------------------+
2389|: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`|
2390|                                                                                                                                                                        ||:diagtext:`have type 'long long'`||                                  |
2391|                                                                                                                                                                        |+---------------------------------+|                                  |
2392|                                                                                                                                                                        ||:diagtext:`be ill-formed`        ||                                  |
2393|                                                                                                                                                                        |+---------------------------------+|                                  |
2394+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+----------------------------------+
2395
2396
2397-Wc99-extensions
2398----------------
2399Some of the diagnostics controlled by this flag are enabled by default.
2400
2401**Diagnostic text:**
2402
2403+-----------------------------------------------------------------------------------------------+
2404|:warning:`warning:` |nbsp| :diagtext:`initializer for aggregate is not a compile-time constant`|
2405+-----------------------------------------------------------------------------------------------+
2406
2407+---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+
2408|:warning:`warning:` |nbsp| |+--------------------------------+|:diagtext:`array size` |nbsp| |+---------------------+|:diagtext:`is a C99 feature`|
2409|                           ||:diagtext:`qualifier in` |nbsp| ||                              ||                     ||                            |
2410|                           |+--------------------------------+|                              |+---------------------+|                            |
2411|                           ||:diagtext:`static` |nbsp|       ||                              ||                     ||                            |
2412|                           |+--------------------------------+|                              |+---------------------+|                            |
2413|                           ||                                ||                              ||:diagtext:`'\[\*\] '`||                            |
2414|                           |+--------------------------------+|                              |+---------------------+|                            |
2415+---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+
2416
2417+-----------------------------------------------------------------------------------+
2418|:warning:`warning:` |nbsp| :diagtext:`compound literals are a C99-specific feature`|
2419+-----------------------------------------------------------------------------------+
2420
2421+-------------------------------------------------------------------------------+
2422|:warning:`warning:` |nbsp| :diagtext:`flexible array members are a C99 feature`|
2423+-------------------------------------------------------------------------------+
2424
2425+-------------------------------------------------------------------------------------------------+
2426|:warning:`warning:` |nbsp| :diagtext:`variable declaration in for loop is a C99-specific feature`|
2427+-------------------------------------------------------------------------------------------------+
2428
2429+---------------------------------------------------------------------------------------+
2430|:warning:`warning:` |nbsp| :diagtext:`ISO C99 requires whitespace after the macro name`|
2431+---------------------------------------------------------------------------------------+
2432
2433+--------------------------------------------------------------------------------+
2434|:warning:`warning:` |nbsp| :diagtext:`designated initializers are a C99 feature`|
2435+--------------------------------------------------------------------------------+
2436
2437+------------------------------------------------------------------------------+
2438|:warning:`warning:` |nbsp| :diagtext:`empty macro arguments are a C99 feature`|
2439+------------------------------------------------------------------------------+
2440
2441+-------------------------------------------------------------------------------------------------------+
2442|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C99-specific feature`|
2443+-------------------------------------------------------------------------------------------------------+
2444
2445+---------------------------------------------------------------------------------------+
2446|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating constants are a C99 feature`|
2447+---------------------------------------------------------------------------------------+
2448
2449
2450-Wcall-to-pure-virtual-from-ctor-dtor
2451-------------------------------------
2452This diagnostic is enabled by default.
2453
2454**Diagnostic text:**
2455
2456+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+
2457|: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`|
2458|                                                                                                                                                                                                                                                     ||:diagtext:`constructor`||                                              |
2459|                                                                                                                                                                                                                                                     |+-----------------------+|                                              |
2460|                                                                                                                                                                                                                                                     ||:diagtext:`destructor` ||                                              |
2461|                                                                                                                                                                                                                                                     |+-----------------------+|                                              |
2462+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+
2463
2464
2465-Wcast-align
2466------------
2467**Diagnostic text:**
2468
2469+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2470|: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`|
2471+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2472
2473
2474-Wcast-calling-convention
2475-------------------------
2476This diagnostic is enabled by default.
2477
2478**Diagnostic text:**
2479
2480+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2481|:warning:`warning:` |nbsp| :diagtext:`cast between incompatible calling conventions '`:placeholder:`A`:diagtext:`' and '`:placeholder:`B`:diagtext:`'; calls through this pointer may abort at runtime`|
2482+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2483
2484
2485-Wcast-of-sel-type
2486------------------
2487This diagnostic is enabled by default.
2488
2489**Diagnostic text:**
2490
2491+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2492|:warning:`warning:` |nbsp| :diagtext:`cast of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is deprecated; use sel\_getName instead`|
2493+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2494
2495
2496-Wcast-qual
2497-----------
2498**Diagnostic text:**
2499
2500+-------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------+
2501|:warning:`warning:` |nbsp| :diagtext:`cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`drops` |nbsp| |+-----------------------------------------+|
2502|                                                                                                                                                       ||:diagtext:`const and volatile qualifiers`||
2503|                                                                                                                                                       |+-----------------------------------------+|
2504|                                                                                                                                                       ||:diagtext:`const qualifier`              ||
2505|                                                                                                                                                       |+-----------------------------------------+|
2506|                                                                                                                                                       ||:diagtext:`volatile qualifier`           ||
2507|                                                                                                                                                       |+-----------------------------------------+|
2508+-------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------+
2509
2510+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2511|: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`|
2512+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2513
2514
2515-Wcast-qual-unrelated
2516---------------------
2517This diagnostic is enabled by default.
2518
2519**Diagnostic text:**
2520
2521+---------------------------------------------------------------------+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2522|: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`|
2523|                                                                     ||:diagtext:`const\_cast`          ||                                                                                                                                                                                                              |
2524|                                                                     |+---------------------------------+|                                                                                                                                                                                                              |
2525|                                                                     ||:diagtext:`static\_cast`         ||                                                                                                                                                                                                              |
2526|                                                                     |+---------------------------------+|                                                                                                                                                                                                              |
2527|                                                                     ||:diagtext:`reinterpret\_cast`    ||                                                                                                                                                                                                              |
2528|                                                                     |+---------------------------------+|                                                                                                                                                                                                              |
2529|                                                                     ||:diagtext:`dynamic\_cast`        ||                                                                                                                                                                                                              |
2530|                                                                     |+---------------------------------+|                                                                                                                                                                                                              |
2531|                                                                     ||:diagtext:`C-style cast`         ||                                                                                                                                                                                                              |
2532|                                                                     |+---------------------------------+|                                                                                                                                                                                                              |
2533|                                                                     ||:diagtext:`functional-style cast`||                                                                                                                                                                                                              |
2534|                                                                     |+---------------------------------+|                                                                                                                                                                                                              |
2535+---------------------------------------------------------------------+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2536
2537
2538-Wchar-align
2539------------
2540This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
2541
2542-Wchar-subscripts
2543-----------------
2544**Diagnostic text:**
2545
2546+------------------------------------------------------------+-------------------------+-------------------------------------+
2547|:warning:`warning:` |nbsp| :diagtext:`array section` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is of type 'char'`|
2548|                                                            ||:diagtext:`lower bound`||                                     |
2549|                                                            |+-----------------------+|                                     |
2550|                                                            ||:diagtext:`length`     ||                                     |
2551|                                                            |+-----------------------+|                                     |
2552+------------------------------------------------------------+-------------------------+-------------------------------------+
2553
2554+------------------------------------------------------------------------+
2555|:warning:`warning:` |nbsp| :diagtext:`array subscript is of type 'char'`|
2556+------------------------------------------------------------------------+
2557
2558
2559-Wclang-cl-pch
2560--------------
2561This diagnostic is enabled by default.
2562
2563**Diagnostic text:**
2564
2565+-------------------------------------------------------------------------------------------------------------------------+
2566|:warning:`warning:` |nbsp| :diagtext:`support for '/Yc' with more than one source file not implemented yet; flag ignored`|
2567+-------------------------------------------------------------------------------------------------------------------------+
2568
2569+------------------------------------------------------------------------------------------------------------------------------+
2570|:warning:`warning:` |nbsp| :diagtext:`support for '/Yc' and '/Yu' with different filenames not implemented yet; flags ignored`|
2571+------------------------------------------------------------------------------------------------------------------------------+
2572
2573+----------------------------------------------------------------------------------------------------------------------------------------------------+
2574|:warning:`warning:` |nbsp| :diagtext:`support for '`:placeholder:`A`:diagtext:`' without a corresponding /FI flag not implemented yet; flag ignored`|
2575+----------------------------------------------------------------------------------------------------------------------------------------------------+
2576
2577+-------------------------------------------------------------------------------------------------------------------------------------+
2578|:warning:`warning:` |nbsp| :diagtext:`#pragma hdrstop filename not supported, /Fp can be used to specify precompiled header filename`|
2579+-------------------------------------------------------------------------------------------------------------------------------------+
2580
2581+-----------------------------------------------------------------------------------------------------------------------------------------------------+
2582|:warning:`warning:` |nbsp| :diagtext:`definition of macro` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not match definition in precompiled header`|
2583+-----------------------------------------------------------------------------------------------------------------------------------------------------+
2584
2585
2586-Wclass-varargs
2587---------------
2588Some of the diagnostics controlled by this flag are enabled by default.
2589
2590Also controls `-Wnon-pod-varargs`_.
2591
2592**Diagnostic text:**
2593
2594+---------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------+
2595|:warning:`warning:` |nbsp| :diagtext:`passing object of class type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`through variadic` |nbsp| |+-----------------------+|+--------------------------------------------------------------------+|
2596|                                                                                                                                       ||:diagtext:`function`   |||                                                                    ||
2597|                                                                                                                                       |+-----------------------+|+--------------------------------------------------------------------+|
2598|                                                                                                                                       ||:diagtext:`block`      |||+------------------------------------------------------------------+||
2599|                                                                                                                                       |+-----------------------+|||:diagtext:`; did you mean to call '`:placeholder:`D`:diagtext:`'?`|||
2600|                                                                                                                                       ||:diagtext:`method`     |||+------------------------------------------------------------------+||
2601|                                                                                                                                       |+-----------------------+|+--------------------------------------------------------------------+|
2602|                                                                                                                                       ||:diagtext:`constructor`||                                                                      |
2603|                                                                                                                                       |+-----------------------+|                                                                      |
2604+---------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------+
2605
2606
2607-Wcomma
2608-------
2609**Diagnostic text:**
2610
2611+-----------------------------------------------------------------------------+
2612|:warning:`warning:` |nbsp| :diagtext:`possible misuse of comma operator here`|
2613+-----------------------------------------------------------------------------+
2614
2615
2616-Wcomment
2617---------
2618Some of the diagnostics controlled by this flag are enabled by default.
2619
2620**Diagnostic text:**
2621
2622+--------------------------------------------------------------------------------------------------+
2623|:warning:`warning:` |nbsp| :diagtext:`escaped newline between \*/ characters at block comment end`|
2624+--------------------------------------------------------------------------------------------------+
2625
2626+-----------------------------------------------------------------------------------+
2627|:warning:`warning:` |nbsp| :diagtext:`// comments are not allowed in this language`|
2628+-----------------------------------------------------------------------------------+
2629
2630+------------------------------------------------------------+
2631|:warning:`warning:` |nbsp| :diagtext:`multi-line // comment`|
2632+------------------------------------------------------------+
2633
2634+-----------------------------------------------------------------+
2635|:warning:`warning:` |nbsp| :diagtext:`'/\*' within block comment`|
2636+-----------------------------------------------------------------+
2637
2638
2639-Wcomments
2640----------
2641Synonym for `-Wcomment`_.
2642
2643
2644-Wcompare-distinct-pointer-types
2645--------------------------------
2646This diagnostic is enabled by default.
2647
2648**Diagnostic text:**
2649
2650+---------------------------------------------------------------------------+
2651|:warning:`warning:` |nbsp| :diagtext:`comparison of distinct pointer types`|
2652+---------------------------------------------------------------------------+
2653
2654
2655-Wcomplex-component-init
2656------------------------
2657**Diagnostic text:**
2658
2659+----------------------------------------------------------------------------------------------------------------------+
2660|:warning:`warning:` |nbsp| :diagtext:`complex initialization specifying real and imaginary components is an extension`|
2661+----------------------------------------------------------------------------------------------------------------------+
2662
2663
2664-Wconcepts-ts-compat
2665--------------------
2666This diagnostic is enabled by default.
2667
2668**Diagnostic text:**
2669
2670+---------------------------------------------------------------------------------------------------+
2671|:warning:`warning:` |nbsp| :diagtext:`ISO C++2a does not permit the 'bool' keyword after 'concept'`|
2672+---------------------------------------------------------------------------------------------------+
2673
2674
2675-Wconditional-type-mismatch
2676---------------------------
2677This diagnostic is enabled by default.
2678
2679**Diagnostic text:**
2680
2681+----------------------------------------------------------------------------------------------+
2682|:warning:`warning:` |nbsp| :diagtext:`pointer/integer type mismatch in conditional expression`|
2683+----------------------------------------------------------------------------------------------+
2684
2685
2686-Wconditional-uninitialized
2687---------------------------
2688**Diagnostic text:**
2689
2690+----------------------------------------------------------------------------------------------------------------------------+-------------------------------+
2691|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be uninitialized when` |nbsp| |+-----------------------------+|
2692|                                                                                                                            ||:diagtext:`used here`        ||
2693|                                                                                                                            |+-----------------------------+|
2694|                                                                                                                            ||:diagtext:`captured by block`||
2695|                                                                                                                            |+-----------------------------+|
2696+----------------------------------------------------------------------------------------------------------------------------+-------------------------------+
2697
2698
2699-Wconfig-macros
2700---------------
2701This diagnostic is enabled by default.
2702
2703**Diagnostic text:**
2704
2705+---------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+---------------------------------------------------------+
2706|: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`|
2707|                           ||:diagtext:`definition`||                                                                                                                                               ||+----------------------------------------------+||                                                         |
2708|                           |+----------------------+|                                                                                                                                               |||:diagtext:`-D`:placeholder:`B`:diagtext:`=...`|||                                                         |
2709|                           ||:diagtext:`#undef`    ||                                                                                                                                               ||+----------------------------------------------+||                                                         |
2710|                           |+----------------------+|                                                                                                                                               |+------------------------------------------------+|                                                         |
2711|                           |                        |                                                                                                                                               ||+------------------------------+                ||                                                         |
2712|                           |                        |                                                                                                                                               |||:diagtext:`-U`:placeholder:`B`|                ||                                                         |
2713|                           |                        |                                                                                                                                               ||+------------------------------+                ||                                                         |
2714|                           |                        |                                                                                                                                               |+------------------------------------------------+|                                                         |
2715+---------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+---------------------------------------------------------+
2716
2717
2718-Wconstant-conversion
2719---------------------
2720This diagnostic is enabled by default.
2721
2722Also controls `-Wbitfield-constant-conversion`_, `-Wobjc-bool-constant-conversion`_.
2723
2724**Diagnostic text:**
2725
2726+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2727|: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`|
2728+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2729
2730
2731-Wconstant-logical-operand
2732--------------------------
2733This diagnostic is enabled by default.
2734
2735**Diagnostic text:**
2736
2737+----------------------------------------------------------------------------------------------------------+
2738|:warning:`warning:` |nbsp| :diagtext:`use of logical '`:placeholder:`A`:diagtext:`' with constant operand`|
2739+----------------------------------------------------------------------------------------------------------+
2740
2741
2742-Wconstexpr-not-const
2743---------------------
2744This diagnostic is enabled by default.
2745
2746**Diagnostic text:**
2747
2748+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
2749|: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`|
2750+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
2751
2752
2753-Wconsumed
2754----------
2755**Diagnostic text:**
2756
2757+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
2758|:warning:`warning:` |nbsp| :diagtext:`consumed analysis attribute is attached to member of class '`:placeholder:`A`:diagtext:`' which isn't marked as consumable`|
2759+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
2760
2761+--------------------------------------------------------------------------------------------------------------------------------+
2762|:warning:`warning:` |nbsp| :diagtext:`state of variable '`:placeholder:`A`:diagtext:`' must match at the entry and exit of loop`|
2763+--------------------------------------------------------------------------------------------------------------------------------+
2764
2765+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2766|:warning:`warning:` |nbsp| :diagtext:`parameter '`:placeholder:`A`:diagtext:`' not in expected state when the function returns: expected '`:placeholder:`B`:diagtext:`', observed '`:placeholder:`C`:diagtext:`'`|
2767+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2768
2769+-------------------------------------------------------------------------------------------------------------------------------------------------------+
2770|:warning:`warning:` |nbsp| :diagtext:`argument not in expected state; expected '`:placeholder:`A`:diagtext:`', observed '`:placeholder:`B`:diagtext:`'`|
2771+-------------------------------------------------------------------------------------------------------------------------------------------------------+
2772
2773+---------------------------------------------------------------------------------------------------------------+
2774|:warning:`warning:` |nbsp| :diagtext:`return state set for an unconsumable type '`:placeholder:`A`:diagtext:`'`|
2775+---------------------------------------------------------------------------------------------------------------+
2776
2777+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
2778|:warning:`warning:` |nbsp| :diagtext:`return value not in expected state; expected '`:placeholder:`A`:diagtext:`', observed '`:placeholder:`B`:diagtext:`'`|
2779+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
2780
2781+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2782|: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`|
2783+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2784
2785+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2786|:warning:`warning:` |nbsp| :diagtext:`invalid invocation of method '`:placeholder:`A`:diagtext:`' on a temporary object while it is in the '`:placeholder:`B`:diagtext:`' state`|
2787+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2788
2789
2790-Wconversion
2791------------
2792Some of the diagnostics controlled by this flag are enabled by default.
2793
2794Also 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`_.
2795
2796**Diagnostic text:**
2797
2798+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
2799|:warning:`warning:` |nbsp| :diagtext:`implicit conversion discards imaginary component:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
2800+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
2801
2802+--------------------------------------------------------------------------------------------------------------------------------------------------------+
2803|:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns vector to scalar:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
2804+--------------------------------------------------------------------------------------------------------------------------------------------------------+
2805
2806+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2807|:warning:`warning:` |nbsp| :diagtext:`passing non-generic address space pointer to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may cause dynamic conversion affecting performance`|
2808+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2809
2810+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2811|: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`|
2812+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2813
2814+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2815|: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`|
2816+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2817
2818
2819-Wconversion-null
2820-----------------
2821Synonym for `-Wnull-conversion`_.
2822
2823
2824-Wcoroutine
2825-----------
2826Synonym for `-Wcoroutine-missing-unhandled-exception`_.
2827
2828
2829-Wcoroutine-missing-unhandled-exception
2830---------------------------------------
2831This diagnostic is enabled by default.
2832
2833**Diagnostic text:**
2834
2835+-----------------------------------------------------------------------------------------------------------------------------------------------------+
2836|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is required to declare the member 'unhandled\_exception()' when exceptions are enabled`|
2837+-----------------------------------------------------------------------------------------------------------------------------------------------------+
2838
2839
2840-Wcovered-switch-default
2841------------------------
2842**Diagnostic text:**
2843
2844+--------------------------------------------------------------------------------------------------+
2845|:warning:`warning:` |nbsp| :diagtext:`default label in switch which covers all enumeration values`|
2846+--------------------------------------------------------------------------------------------------+
2847
2848
2849-Wcpp
2850-----
2851Synonym for `-W#warnings`_.
2852
2853
2854-Wcstring-format-directive
2855--------------------------
2856**Diagnostic text:**
2857
2858+------------------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+------------------------+
2859|: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| |+----------------------+|
2860|                                                                                                            ||:diagtext:`NSString`||                                                                                            ||:diagtext:`method`    ||
2861|                                                                                                            |+--------------------+|                                                                                            |+----------------------+|
2862|                                                                                                            ||:diagtext:`CFString`||                                                                                            ||:diagtext:`CFfunction`||
2863|                                                                                                            |+--------------------+|                                                                                            |+----------------------+|
2864+------------------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+------------------------+
2865
2866
2867-Wctad-maybe-unsupported
2868------------------------
2869**Diagnostic text:**
2870
2871+--------------------------------------------------------------------------------------------------------------------------+
2872|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may not intend to support class template argument deduction`|
2873+--------------------------------------------------------------------------------------------------------------------------+
2874
2875
2876-Wctor-dtor-privacy
2877-------------------
2878This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
2879
2880-Wctu
2881-----
2882This diagnostic is enabled by default.
2883
2884**Diagnostic text:**
2885
2886+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2887|: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`|
2888+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2889
2890
2891-Wcuda-compat
2892-------------
2893Some of the diagnostics controlled by this flag are enabled by default.
2894
2895**Diagnostic text:**
2896
2897+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
2898|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute parameter` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is negative and will be ignored`|
2899+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
2900
2901+---------------------------------------------------------------------------------------------------------------------------------+
2902|:warning:`warning:` |nbsp| :diagtext:`nvcc does not allow '\_\_`:placeholder:`A`:diagtext:`\_\_' to appear after '()' in lambdas`|
2903+---------------------------------------------------------------------------------------------------------------------------------+
2904
2905+------------------------------------------------------------------------------------------------------------+
2906|:warning:`warning:` |nbsp| :diagtext:`ignored 'inline' attribute on kernel function` |nbsp| :placeholder:`A`|
2907+------------------------------------------------------------------------------------------------------------+
2908
2909+--------------------------------------------------------------------------------------------------------------------------------------------------------+
2910|:warning:`warning:` |nbsp| :diagtext:`kernel function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a member function; this may not be accepted by nvcc`|
2911+--------------------------------------------------------------------------------------------------------------------------------------------------------+
2912
2913+--------------------------------------------------------------------------------------------------------------+
2914|:warning:`warning:` |nbsp| :diagtext:`argument to '#pragma unroll' should not be in parentheses in CUDA C/C++`|
2915+--------------------------------------------------------------------------------------------------------------+
2916
2917
2918-Wcustom-atomic-properties
2919--------------------------
2920**Diagnostic text:**
2921
2922+---------------------------------------------------------------------------------------------------------------------------------------+--------------------+----------------------------------------------------------------------------+
2923|: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)`|
2924|                                                                                                                                       ||:diagtext:`getter`||                                                                            |
2925|                                                                                                                                       |+------------------+|                                                                            |
2926|                                                                                                                                       ||:diagtext:`setter`||                                                                            |
2927|                                                                                                                                       |+------------------+|                                                                            |
2928+---------------------------------------------------------------------------------------------------------------------------------------+--------------------+----------------------------------------------------------------------------+
2929
2930
2931-Wdangling
2932----------
2933This diagnostic is enabled by default.
2934
2935Also controls `-Wdangling-field`_, `-Wdangling-initializer-list`_, `-Wreturn-stack-address`_.
2936
2937**Diagnostic text:**
2938
2939+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------+----------------------------+---------------------------------------------------------------+
2940|:warning:`warning:` |nbsp| |+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| |nbsp| |+--------------------------+|:diagtext:`will be destroyed at the end of the full-expression`|
2941|                           ||+-----------------------------+---------------------------------------------------------+--------+------------------------------------------------------------------------+||        ||+------------------------+||                                                               |
2942|                           |||:diagtext:`temporary` |nbsp| |+-------------------------------------------------------+| |nbsp| |+----------------------------------------------------------------------+|||        |||:placeholder:`D` |nbsp| |||                                                               |
2943|                           |||                             ||:diagtext:`whose address is used as value of`          ||        ||+-------------------------------+------------------------------------+||||        ||+------------------------+||                                                               |
2944|                           |||                             |+-------------------------------------------------------+|        |||+-----------------------------+|:diagtext:`member of local variable`|||||        |+--------------------------+|                                                               |
2945|                           |||                             ||+--------------------------------+--------------------+||        ||||                             ||                                    |||||        ||                          ||                                                               |
2946|                           |||                             |||+------------------------------+|:diagtext:`bound to`|||        |||+-----------------------------+|                                    |||||        |+--------------------------+|                                                               |
2947|                           |||                             ||||                              ||                    |||        ||||:diagtext:`reference` |nbsp| ||                                    |||||        |                            |                                                               |
2948|                           |||                             |||+------------------------------+|                    |||        |||+-----------------------------+|                                    |||||        |                            |                                                               |
2949|                           |||                             ||||:diagtext:`implicitly` |nbsp| ||                    |||        ||+-------------------------------+------------------------------------+||||        |                            |                                                               |
2950|                           |||                             |||+------------------------------+|                    |||        |+----------------------------------------------------------------------+|||        |                            |                                                               |
2951|                           |||                             ||+--------------------------------+--------------------+||        ||+-------------------------+-----------------------+                   ||||        |                            |                                                               |
2952|                           |||                             |+-------------------------------------------------------+|        |||:diagtext:`local` |nbsp| |+---------------------+|                   ||||        |                            |                                                               |
2953|                           |||                             |                                                         |        |||                         ||:diagtext:`variable` ||                   ||||        |                            |                                                               |
2954|                           |||                             |                                                         |        |||                         |+---------------------+|                   ||||        |                            |                                                               |
2955|                           |||                             |                                                         |        |||                         ||:diagtext:`reference`||                   ||||        |                            |                                                               |
2956|                           |||                             |                                                         |        |||                         |+---------------------+|                   ||||        |                            |                                                               |
2957|                           |||                             |                                                         |        ||+-------------------------+-----------------------+                   ||||        |                            |                                                               |
2958|                           |||                             |                                                         |        |+----------------------------------------------------------------------+|||        |                            |                                                               |
2959|                           ||+-----------------------------+---------------------------------------------------------+--------+------------------------------------------------------------------------+||        |                            |                                                               |
2960|                           |+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|        |                            |                                                               |
2961|                           ||+---------------------------------+----------------------------------------------------------+                                                                             ||        |                            |                                                               |
2962|                           |||:diagtext:`array backing` |nbsp| |+--------------------------------------------------------+|                                                                             ||        |                            |                                                               |
2963|                           |||                                 ||:diagtext:`initializer list subobject of local variable`||                                                                             ||        |                            |                                                               |
2964|                           |||                                 |+--------------------------------------------------------+|                                                                             ||        |                            |                                                               |
2965|                           |||                                 ||:diagtext:`local initializer list`                      ||                                                                             ||        |                            |                                                               |
2966|                           |||                                 |+--------------------------------------------------------+|                                                                             ||        |                            |                                                               |
2967|                           ||+---------------------------------+----------------------------------------------------------+                                                                             ||        |                            |                                                               |
2968|                           |+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|        |                            |                                                               |
2969+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------+----------------------------+---------------------------------------------------------------+
2970
2971+---------------------------------------------------------------------------+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+---------------------------+--------------------------------------------------------------+
2972|: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`|
2973|                                                                           ||:diagtext:`temporary`                        ||                                                                                                                              ||:diagtext:`temporary`    ||                                                              |
2974|                                                                           |+---------------------------------------------+|                                                                                                                              |+-------------------------+|                                                              |
2975|                                                                           ||:diagtext:`backing array of initializer list`||                                                                                                                              ||:diagtext:`backing array`||                                                              |
2976|                                                                           |+---------------------------------------------+|                                                                                                                              |+-------------------------+|                                                              |
2977+---------------------------------------------------------------------------+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+---------------------------+--------------------------------------------------------------+
2978
2979
2980-Wdangling-else
2981---------------
2982This diagnostic is enabled by default.
2983
2984**Diagnostic text:**
2985
2986+---------------------------------------------------------------------------------+
2987|:warning:`warning:` |nbsp| :diagtext:`add explicit braces to avoid dangling else`|
2988+---------------------------------------------------------------------------------+
2989
2990
2991-Wdangling-field
2992----------------
2993This diagnostic is enabled by default.
2994
2995**Diagnostic text:**
2996
2997+-------------------------------------------------------------------------------------------------------------------------------------+-----------------------+------------------------+
2998|:warning:`warning:` |nbsp| :diagtext:`binding reference member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to stack allocated` |nbsp| |+---------------------+| |nbsp| :placeholder:`B`|
2999|                                                                                                                                     ||:diagtext:`variable` ||                        |
3000|                                                                                                                                     |+---------------------+|                        |
3001|                                                                                                                                     ||:diagtext:`parameter`||                        |
3002|                                                                                                                                     |+---------------------+|                        |
3003+-------------------------------------------------------------------------------------------------------------------------------------+-----------------------+------------------------+
3004
3005+---------------------------+--------------------------------------------------------+--------+----------------------------------+--------------------------------------------------+----------------------+------------------------------------------------------------------------------------------------------------+
3006|: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`|
3007|                           ||:diagtext:`reference`                                 ||        ||                                ||                                                  ||:diagtext:`binds to`||                                                                                                            |
3008|                           |+------------------------------------------------------+|        |+--------------------------------+|                                                  |+--------------------+|                                                                                                            |
3009|                           ||:diagtext:`backing array for 'std::initializer\_list'`||        ||:diagtext:`subobject of` |nbsp| ||                                                  ||:diagtext:`is`      ||                                                                                                            |
3010|                           |+------------------------------------------------------+|        |+--------------------------------+|                                                  |+--------------------+|                                                                                                            |
3011+---------------------------+--------------------------------------------------------+--------+----------------------------------+--------------------------------------------------+----------------------+------------------------------------------------------------------------------------------------------------+
3012
3013+-----------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+------------------------+
3014|:warning:`warning:` |nbsp| :diagtext:`initializing pointer member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with the stack address of` |nbsp| |+---------------------+| |nbsp| :placeholder:`B`|
3015|                                                                                                                                               ||:diagtext:`variable` ||                        |
3016|                                                                                                                                               |+---------------------+|                        |
3017|                                                                                                                                               ||:diagtext:`parameter`||                        |
3018|                                                                                                                                               |+---------------------+|                        |
3019+-----------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+------------------------+
3020
3021+--------------------------------------------------------------------------------------------------------------------------------------------------+
3022|:warning:`warning:` |nbsp| :diagtext:`temporary bound to reference member of allocated object will be destroyed at the end of the full-expression`|
3023+--------------------------------------------------------------------------------------------------------------------------------------------------+
3024
3025
3026-Wdangling-initializer-list
3027---------------------------
3028This diagnostic is enabled by default.
3029
3030**Diagnostic text:**
3031
3032+------------------------------------------------------------+----------------------------------------------------------------+-----------------------------------------------------------------------+
3033|:warning:`warning:` |nbsp| :diagtext:`array backing` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`will be destroyed at the end of the full-expression`|
3034|                                                            ||:diagtext:`initializer list subobject of the allocated object`||                                                                       |
3035|                                                            |+--------------------------------------------------------------+|                                                                       |
3036|                                                            ||:diagtext:`the allocated initializer list`                    ||                                                                       |
3037|                                                            |+--------------------------------------------------------------+|                                                                       |
3038+------------------------------------------------------------+----------------------------------------------------------------+-----------------------------------------------------------------------+
3039
3040
3041-Wdarwin-sdk-settings
3042---------------------
3043This diagnostic is enabled by default.
3044
3045**Diagnostic text:**
3046
3047+----------------------------------------------------------------------------------------------------------+
3048|:warning:`warning:` |nbsp| :diagtext:`SDK settings were ignored as 'SDKSettings.json' could not be parsed`|
3049+----------------------------------------------------------------------------------------------------------+
3050
3051
3052-Wdate-time
3053-----------
3054**Diagnostic text:**
3055
3056+------------------------------------------------------------------------------------------+
3057|:warning:`warning:` |nbsp| :diagtext:`expansion of date or time macro is not reproducible`|
3058+------------------------------------------------------------------------------------------+
3059
3060
3061-Wdealloc-in-category
3062---------------------
3063This diagnostic is enabled by default.
3064
3065**Diagnostic text:**
3066
3067+---------------------------------------------------------------------------------+
3068|:warning:`warning:` |nbsp| :diagtext:`-dealloc is being overridden in a category`|
3069+---------------------------------------------------------------------------------+
3070
3071
3072-Wdebug-compression-unavailable
3073-------------------------------
3074This diagnostic is enabled by default.
3075
3076**Diagnostic text:**
3077
3078+------------------------------------------------------------------------------------------+
3079|:warning:`warning:` |nbsp| :diagtext:`cannot compress debug sections (zlib not installed)`|
3080+------------------------------------------------------------------------------------------+
3081
3082
3083-Wdeclaration-after-statement
3084-----------------------------
3085**Diagnostic text:**
3086
3087+-----------------------------------------------------------------------------------+
3088|:warning:`warning:` |nbsp| :diagtext:`ISO C90 forbids mixing declarations and code`|
3089+-----------------------------------------------------------------------------------+
3090
3091
3092-Wdefaulted-function-deleted
3093----------------------------
3094This diagnostic is enabled by default.
3095
3096**Diagnostic text:**
3097
3098+-------------------------------------------------------------------+--------------------------------------+-----------------------------------------+
3099|:warning:`warning:` |nbsp| :diagtext:`explicitly defaulted` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`is implicitly deleted`|
3100|                                                                   ||:diagtext:`default constructor`     ||                                         |
3101|                                                                   |+------------------------------------+|                                         |
3102|                                                                   ||:diagtext:`copy constructor`        ||                                         |
3103|                                                                   |+------------------------------------+|                                         |
3104|                                                                   ||:diagtext:`move constructor`        ||                                         |
3105|                                                                   |+------------------------------------+|                                         |
3106|                                                                   ||:diagtext:`copy assignment operator`||                                         |
3107|                                                                   |+------------------------------------+|                                         |
3108|                                                                   ||:diagtext:`move assignment operator`||                                         |
3109|                                                                   |+------------------------------------+|                                         |
3110|                                                                   ||:diagtext:`destructor`              ||                                         |
3111|                                                                   |+------------------------------------+|                                         |
3112+-------------------------------------------------------------------+--------------------------------------+-----------------------------------------+
3113
3114
3115-Wdelegating-ctor-cycles
3116------------------------
3117This diagnostic is an error by default, but the flag ``-Wno-delegating-ctor-cycles`` can be used to disable the error.
3118
3119**Diagnostic text:**
3120
3121+------------------------------------------------------------------------------------------------------------------------+
3122|:error:`error:` |nbsp| :diagtext:`constructor for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`creates a delegation cycle`|
3123+------------------------------------------------------------------------------------------------------------------------+
3124
3125
3126-Wdelete-abstract-non-virtual-dtor
3127----------------------------------
3128This diagnostic is enabled by default.
3129
3130**Diagnostic text:**
3131
3132+---------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------+
3133|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`called on` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that is abstract but has non-virtual destructor`|
3134|                           ||:diagtext:`delete`    ||                                                                                                                        |
3135|                           |+----------------------+|                                                                                                                        |
3136|                           ||:diagtext:`destructor`||                                                                                                                        |
3137|                           |+----------------------+|                                                                                                                        |
3138+---------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------+
3139
3140
3141-Wdelete-incomplete
3142-------------------
3143This diagnostic is enabled by default.
3144
3145**Diagnostic text:**
3146
3147+-------------------------------------------------------------------------------------------------------------------+
3148|:warning:`warning:` |nbsp| :diagtext:`cannot delete expression with pointer-to-'void' type` |nbsp| :placeholder:`A`|
3149+-------------------------------------------------------------------------------------------------------------------+
3150
3151+--------------------------------------------------------------------------------------------------------------------------------------------------+
3152|:warning:`warning:` |nbsp| :diagtext:`deleting pointer to incomplete type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may cause undefined behavior`|
3153+--------------------------------------------------------------------------------------------------------------------------------------------------+
3154
3155
3156-Wdelete-non-abstract-non-virtual-dtor
3157--------------------------------------
3158**Diagnostic text:**
3159
3160+---------------------------+------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
3161|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`called on non-final` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that has virtual functions but non-virtual destructor`|
3162|                           ||:diagtext:`delete`    ||                                                                                                                                        |
3163|                           |+----------------------+|                                                                                                                                        |
3164|                           ||:diagtext:`destructor`||                                                                                                                                        |
3165|                           |+----------------------+|                                                                                                                                        |
3166+---------------------------+------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
3167
3168
3169-Wdelete-non-virtual-dtor
3170-------------------------
3171Some of the diagnostics controlled by this flag are enabled by default.
3172
3173Controls `-Wdelete-abstract-non-virtual-dtor`_, `-Wdelete-non-abstract-non-virtual-dtor`_.
3174
3175
3176-Wdeprecated
3177------------
3178Some of the diagnostics controlled by this flag are enabled by default.
3179
3180Also controls `-Wdeprecated-attributes`_, `-Wdeprecated-declarations`_, `-Wdeprecated-dynamic-exception-spec`_, `-Wdeprecated-increment-bool`_, `-Wdeprecated-register`_, `-Wdeprecated-this-capture`_, `-Wdeprecated-writable-strings`_.
3181
3182**Diagnostic text:**
3183
3184+---------------------------------------------------------------+
3185|:warning:`warning:` |nbsp| :diagtext:`-O4 is equivalent to -O3`|
3186+---------------------------------------------------------------+
3187
3188+---------------------------------------------------------------------------------------------------------+
3189|:warning:`warning:` |nbsp| :diagtext:`access declarations are deprecated; use using declarations instead`|
3190+---------------------------------------------------------------------------------------------------------+
3191
3192+--------------------------------------------------------------------------+---------------------------------+-----------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------+
3193|: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| |+------------------------------------------------------------+|
3194|                                                                          ||:diagtext:`constructor`        ||                                                                                                                       ||+------------------------+---------------------------------+||
3195|                                                                          |+-------------------------------+|                                                                                                                       |||:diagtext:`copy` |nbsp| |+-------------------------------+|||
3196|                                                                          ||:diagtext:`assignment operator`||                                                                                                                       |||                        ||:diagtext:`assignment operator`||||
3197|                                                                          |+-------------------------------+|                                                                                                                       |||                        |+-------------------------------+|||
3198|                                                                          |                                 |                                                                                                                       |||                        ||:diagtext:`constructor`        ||||
3199|                                                                          |                                 |                                                                                                                       |||                        |+-------------------------------+|||
3200|                                                                          |                                 |                                                                                                                       ||+------------------------+---------------------------------+||
3201|                                                                          |                                 |                                                                                                                       |+------------------------------------------------------------+|
3202|                                                                          |                                 |                                                                                                                       ||:diagtext:`destructor`                                      ||
3203|                                                                          |                                 |                                                                                                                       |+------------------------------------------------------------+|
3204+--------------------------------------------------------------------------+---------------------------------+-----------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------+
3205
3206+-------------------------------------------------------------------------------------------------------------------------------------+
3207|:warning:`warning:` |nbsp| :diagtext:`out-of-line definition of constexpr static data member is redundant in C++17 and is deprecated`|
3208+-------------------------------------------------------------------------------------------------------------------------------------+
3209
3210+----------------------------------------------------------------------------------------------------------------------------------------+
3211|:warning:`warning:` |nbsp| :diagtext:`argument '`:placeholder:`A`:diagtext:`' is deprecated, use '`:placeholder:`B`:diagtext:`' instead`|
3212+----------------------------------------------------------------------------------------------------------------------------------------+
3213
3214+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3215|:warning:`warning:` |nbsp| :diagtext:`treating '`:placeholder:`A`:diagtext:`' input as '`:placeholder:`B`:diagtext:`' when in C++ mode, this behavior is deprecated`|
3216+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3217
3218+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
3219|:warning:`warning:` |nbsp| :diagtext:`OpenCL version` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not support the option '`:placeholder:`B`:diagtext:`'`|
3220+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
3221
3222+------------------------------------------------------------------------------------+
3223|:warning:`warning:` |nbsp| :diagtext:`Use of 'long' with '\_\_vector' is deprecated`|
3224+------------------------------------------------------------------------------------+
3225
3226
3227-Wdeprecated-attributes
3228-----------------------
3229This diagnostic is enabled by default.
3230
3231**Diagnostic text:**
3232
3233+------------------------------------------------------------------------------------------------------------------------------------------------+
3234|:warning:`warning:` |nbsp| :diagtext:`specifying vector types with the 'mode' attribute is deprecated; use the 'vector\_size' attribute instead`|
3235+------------------------------------------------------------------------------------------------------------------------------------------------+
3236
3237
3238-Wdeprecated-declarations
3239-------------------------
3240This diagnostic is enabled by default.
3241
3242**Diagnostic text:**
3243
3244+--------------------------------------------------------------------------------------------------------------------+
3245|:warning:`warning:` |nbsp| :diagtext:`specifying 'uuid' as an ATL attribute is deprecated; use \_\_declspec instead`|
3246+--------------------------------------------------------------------------------------------------------------------+
3247
3248+-----------------------------------------------------------------------------------------------------------------+
3249|:warning:`warning:` |nbsp| :diagtext:`use of C-style parameters in Objective-C method declarations is deprecated`|
3250+-----------------------------------------------------------------------------------------------------------------+
3251
3252+----------------------------------------------------------------------------+
3253|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated`|
3254+----------------------------------------------------------------------------+
3255
3256+---------------------------------------------------------------------------------------------------------------------+
3257|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be deprecated because the receiver type is unknown`|
3258+---------------------------------------------------------------------------------------------------------------------+
3259
3260+-----------------------------------------------------------------------------------------------------+
3261|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated:` |nbsp| :placeholder:`B`|
3262+-----------------------------------------------------------------------------------------------------+
3263
3264+-------------------------------------------------------------------------------------------------------------------------------------+
3265|:warning:`warning:` |nbsp| :diagtext:`property access is using` |nbsp| :placeholder:`A` |nbsp| :diagtext:`method which is deprecated`|
3266+-------------------------------------------------------------------------------------------------------------------------------------+
3267
3268
3269-Wdeprecated-dynamic-exception-spec
3270-----------------------------------
3271**Diagnostic text:**
3272
3273+--------------------------------------------------------------------------------------+
3274|:warning:`warning:` |nbsp| :diagtext:`dynamic exception specifications are deprecated`|
3275+--------------------------------------------------------------------------------------+
3276
3277
3278-Wdeprecated-implementations
3279----------------------------
3280**Diagnostic text:**
3281
3282+----------------------------------------------------------------------+----------------------+
3283|:warning:`warning:` |nbsp| :diagtext:`implementing deprecated` |nbsp| |+--------------------+|
3284|                                                                      ||:diagtext:`method`  ||
3285|                                                                      |+--------------------+|
3286|                                                                      ||:diagtext:`class`   ||
3287|                                                                      |+--------------------+|
3288|                                                                      ||:diagtext:`category`||
3289|                                                                      |+--------------------+|
3290+----------------------------------------------------------------------+----------------------+
3291
3292+----------------------------------------------------------------------+
3293|:warning:`warning:` |nbsp| :diagtext:`implementing unavailable method`|
3294+----------------------------------------------------------------------+
3295
3296
3297-Wdeprecated-increment-bool
3298---------------------------
3299This diagnostic is enabled by default.
3300
3301**Diagnostic text:**
3302
3303+---------------------------------------------------------------------------------------------------------------------+
3304|:warning:`warning:` |nbsp| :diagtext:`incrementing expression of type bool is deprecated and incompatible with C++17`|
3305+---------------------------------------------------------------------------------------------------------------------+
3306
3307
3308-Wdeprecated-objc-isa-usage
3309---------------------------
3310This diagnostic is enabled by default.
3311
3312**Diagnostic text:**
3313
3314+-------------------------------------------------------------------------------------------------------------------+
3315|:warning:`warning:` |nbsp| :diagtext:`assignment to Objective-C's isa is deprecated in favor of object\_setClass()`|
3316+-------------------------------------------------------------------------------------------------------------------+
3317
3318+----------------------------------------------------------------------------------------------------------------------+
3319|:warning:`warning:` |nbsp| :diagtext:`direct access to Objective-C's isa is deprecated in favor of object\_getClass()`|
3320+----------------------------------------------------------------------------------------------------------------------+
3321
3322
3323-Wdeprecated-objc-pointer-introspection
3324---------------------------------------
3325This diagnostic is enabled by default.
3326
3327Also controls `-Wdeprecated-objc-pointer-introspection-performSelector`_.
3328
3329**Diagnostic text:**
3330
3331+--------------------------------------------------------------------------------------------------------------------------+
3332|:warning:`warning:` |nbsp| :diagtext:`bitmasking for introspection of Objective-C object pointers is strongly discouraged`|
3333+--------------------------------------------------------------------------------------------------------------------------+
3334
3335
3336-Wdeprecated-objc-pointer-introspection-performSelector
3337-------------------------------------------------------
3338This diagnostic is enabled by default.
3339
3340**Diagnostic text:**
3341
3342+--------------------------------------------------------------------------------------------------------------------------+
3343|:warning:`warning:` |nbsp| :diagtext:`bitmasking for introspection of Objective-C object pointers is strongly discouraged`|
3344+--------------------------------------------------------------------------------------------------------------------------+
3345
3346
3347-Wdeprecated-register
3348---------------------
3349This diagnostic is enabled by default.
3350
3351**Diagnostic text:**
3352
3353+-------------------------------------------------------------------------------------------------------------------+
3354|:warning:`warning:` |nbsp| :diagtext:`'register' storage class specifier is deprecated and incompatible with C++17`|
3355+-------------------------------------------------------------------------------------------------------------------+
3356
3357
3358-Wdeprecated-this-capture
3359-------------------------
3360**Diagnostic text:**
3361
3362+-------------------------------------------------------------------------------------------------------------+
3363|:warning:`warning:` |nbsp| :diagtext:`implicit capture of 'this' with a capture default of '=' is deprecated`|
3364+-------------------------------------------------------------------------------------------------------------+
3365
3366
3367-Wdeprecated-writable-strings
3368-----------------------------
3369Synonym for `-Wc++11-compat-deprecated-writable-strings`_.
3370
3371
3372-Wdirect-ivar-access
3373--------------------
3374**Diagnostic text:**
3375
3376+------------------------------------------------------------------------------------------------------------------------------+
3377|:warning:`warning:` |nbsp| :diagtext:`instance variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is being directly accessed`|
3378+------------------------------------------------------------------------------------------------------------------------------+
3379
3380
3381-Wdisabled-macro-expansion
3382--------------------------
3383**Diagnostic text:**
3384
3385+----------------------------------------------------------------------------+
3386|:warning:`warning:` |nbsp| :diagtext:`disabled expansion of recursive macro`|
3387+----------------------------------------------------------------------------+
3388
3389
3390-Wdisabled-optimization
3391-----------------------
3392This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
3393
3394-Wdiscard-qual
3395--------------
3396This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
3397
3398-Wdistributed-object-modifiers
3399------------------------------
3400This diagnostic is enabled by default.
3401
3402**Diagnostic text:**
3403
3404+----------------------------------------------------------------------------------------------------------------------------------------------+
3405|:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on parameter type in implementation of` |nbsp| :placeholder:`A`|
3406+----------------------------------------------------------------------------------------------------------------------------------------------+
3407
3408+-------------------------------------------------------------------------------------------------------------------------------------------+
3409|:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on return type in implementation of` |nbsp| :placeholder:`A`|
3410+-------------------------------------------------------------------------------------------------------------------------------------------+
3411
3412
3413-Wdiv-by-zero
3414-------------
3415Synonym for `-Wdivision-by-zero`_.
3416
3417
3418-Wdivision-by-zero
3419------------------
3420This diagnostic is enabled by default.
3421
3422**Diagnostic text:**
3423
3424+---------------------------+-----------------------+----------------------------------------+
3425|:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`by zero is undefined`|
3426|                           ||:diagtext:`remainder`||                                        |
3427|                           |+---------------------+|                                        |
3428|                           ||:diagtext:`division` ||                                        |
3429|                           |+---------------------+|                                        |
3430+---------------------------+-----------------------+----------------------------------------+
3431
3432
3433-Wdll-attribute-on-redeclaration
3434--------------------------------
3435This diagnostic is enabled by default.
3436
3437**Diagnostic text:**
3438
3439+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3440|:warning:`warning:` |nbsp| :diagtext:`redeclaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not add` |nbsp| :placeholder:`B` |nbsp| :diagtext:`attribute`|
3441+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3442
3443
3444-Wdllexport-explicit-instantiation-decl
3445---------------------------------------
3446This diagnostic is enabled by default.
3447
3448**Diagnostic text:**
3449
3450+---------------------------------------------------------------------------------------------------+
3451|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation declaration should not be 'dllexport'`|
3452+---------------------------------------------------------------------------------------------------+
3453
3454
3455-Wdllimport-static-field-def
3456----------------------------
3457This diagnostic is enabled by default.
3458
3459**Diagnostic text:**
3460
3461+---------------------------------------------------------------------------+
3462|:warning:`warning:` |nbsp| :diagtext:`definition of dllimport static field`|
3463+---------------------------------------------------------------------------+
3464
3465
3466-Wdocumentation
3467---------------
3468Also controls `-Wdocumentation-deprecated-sync`_, `-Wdocumentation-html`_.
3469
3470**Diagnostic text:**
3471
3472+----------------------------------------+----------------+-----------------------+------------------------------------------------------------------------+-----------------------+-------------------------------+
3473|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+---------------------+|:diagtext:`' command should not be used in a comment attached to a non-`|+---------------------+| |nbsp| :diagtext:`declaration`|
3474|                                        ||:diagtext:`\\`|||:diagtext:`class`    ||                                                                        ||:diagtext:`class`    ||                               |
3475|                                        |+--------------+|+---------------------+|                                                                        |+---------------------+|                               |
3476|                                        ||:diagtext:`@` |||:diagtext:`interface`||                                                                        ||:diagtext:`interface`||                               |
3477|                                        |+--------------+|+---------------------+|                                                                        |+---------------------+|                               |
3478|                                        |                ||:diagtext:`protocol` ||                                                                        ||:diagtext:`protocol` ||                               |
3479|                                        |                |+---------------------+|                                                                        |+---------------------+|                               |
3480|                                        |                ||:diagtext:`struct`   ||                                                                        ||:diagtext:`struct`   ||                               |
3481|                                        |                |+---------------------+|                                                                        |+---------------------+|                               |
3482|                                        |                ||:diagtext:`union`    ||                                                                        ||:diagtext:`union`    ||                               |
3483|                                        |                |+---------------------+|                                                                        |+---------------------+|                               |
3484+----------------------------------------+----------------+-----------------------+------------------------------------------------------------------------+-----------------------+-------------------------------+
3485
3486+-----------------------------------------------------------+----------------+-----------------------------+
3487|:warning:`warning:` |nbsp| :diagtext:`duplicated command '`|+--------------+|:placeholder:`B`:diagtext:`'`|
3488|                                                           ||:diagtext:`\\`||                             |
3489|                                                           |+--------------+|                             |
3490|                                                           ||:diagtext:`@` ||                             |
3491|                                                           |+--------------+|                             |
3492+-----------------------------------------------------------+----------------+-----------------------------+
3493
3494+------------------------------------------------------------------+----------------+-------------------------------------+
3495|:warning:`warning:` |nbsp| :diagtext:`empty paragraph passed to '`|+--------------+|:placeholder:`B`:diagtext:`' command`|
3496|                                                                  ||:diagtext:`\\`||                                     |
3497|                                                                  |+--------------+|                                     |
3498|                                                                  ||:diagtext:`@` ||                                     |
3499|                                                                  |+--------------+|                                     |
3500+------------------------------------------------------------------+----------------+-------------------------------------+
3501
3502+----------------------------------------+----------------+--------------------------+---------------------------------------------------------------------------------------------+
3503|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+------------------------+|:diagtext:`' command should not be used in a comment attached to a non-container declaration`|
3504|                                        ||:diagtext:`\\`|||:diagtext:`classdesign` ||                                                                                             |
3505|                                        |+--------------+|+------------------------+|                                                                                             |
3506|                                        ||:diagtext:`@` |||:diagtext:`coclass`     ||                                                                                             |
3507|                                        |+--------------+|+------------------------+|                                                                                             |
3508|                                        |                ||:diagtext:`dependency`  ||                                                                                             |
3509|                                        |                |+------------------------+|                                                                                             |
3510|                                        |                ||:diagtext:`helper`      ||                                                                                             |
3511|                                        |                |+------------------------+|                                                                                             |
3512|                                        |                ||:diagtext:`helperclass` ||                                                                                             |
3513|                                        |                |+------------------------+|                                                                                             |
3514|                                        |                ||:diagtext:`helps`       ||                                                                                             |
3515|                                        |                |+------------------------+|                                                                                             |
3516|                                        |                ||:diagtext:`instancesize`||                                                                                             |
3517|                                        |                |+------------------------+|                                                                                             |
3518|                                        |                ||:diagtext:`ownership`   ||                                                                                             |
3519|                                        |                |+------------------------+|                                                                                             |
3520|                                        |                ||:diagtext:`performance` ||                                                                                             |
3521|                                        |                |+------------------------+|                                                                                             |
3522|                                        |                ||:diagtext:`security`    ||                                                                                             |
3523|                                        |                |+------------------------+|                                                                                             |
3524|                                        |                ||:diagtext:`superclass`  ||                                                                                             |
3525|                                        |                |+------------------------+|                                                                                             |
3526+----------------------------------------+----------------+--------------------------+---------------------------------------------------------------------------------------------+
3527
3528+----------------------------------------+----------------+---------------------------+---------------------------------------------------------------------+-----------------------------------+-------------------------------+
3529|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+-------------------------+|:diagtext:`' command should be used in a comment attached to` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`declaration`|
3530|                                        ||:diagtext:`\\`|||:diagtext:`function`     ||                                                                     ||:diagtext:`a function`           ||                               |
3531|                                        |+--------------+|+-------------------------+|                                                                     |+---------------------------------+|                               |
3532|                                        ||:diagtext:`@` |||:diagtext:`functiongroup`||                                                                     ||:diagtext:`a function`           ||                               |
3533|                                        |+--------------+|+-------------------------+|                                                                     |+---------------------------------+|                               |
3534|                                        |                ||:diagtext:`method`       ||                                                                     ||:diagtext:`an Objective-C method`||                               |
3535|                                        |                |+-------------------------+|                                                                     |+---------------------------------+|                               |
3536|                                        |                ||:diagtext:`methodgroup`  ||                                                                     ||:diagtext:`an Objective-C method`||                               |
3537|                                        |                |+-------------------------+|                                                                     |+---------------------------------+|                               |
3538|                                        |                ||:diagtext:`callback`     ||                                                                     ||:diagtext:`a pointer to function`||                               |
3539|                                        |                |+-------------------------+|                                                                     |+---------------------------------+|                               |
3540+----------------------------------------+----------------+---------------------------+---------------------------------------------------------------------+-----------------------------------+-------------------------------+
3541
3542+-------------------------------------------------------------------------------------------------------+
3543|:warning:`warning:` |nbsp| :diagtext:`HTML start tag prematurely ended, expected attribute name or '>'`|
3544+-------------------------------------------------------------------------------------------------------+
3545
3546+-------------------------------------------------------------------------------+
3547|:warning:`warning:` |nbsp| :diagtext:`expected quoted string after equals sign`|
3548+-------------------------------------------------------------------------------+
3549
3550+-----------------------------------------------------------------------------------------------------+
3551|:warning:`warning:` |nbsp| :diagtext:`parameter '`:placeholder:`A`:diagtext:`' is already documented`|
3552+-----------------------------------------------------------------------------------------------------+
3553
3554+------------------------------------------------------------------------------------------------------------------------------------------+
3555|:warning:`warning:` |nbsp| :diagtext:`unrecognized parameter passing direction, valid directions are '\[in\]', '\[out\]' and '\[in,out\]'`|
3556+------------------------------------------------------------------------------------------------------------------------------------------+
3557
3558+----------------------------------------+----------------+-------------------------------------------------------------------------------------------+
3559|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:diagtext:`param' command used in a comment that is not attached to a function declaration`|
3560|                                        ||:diagtext:`\\`||                                                                                           |
3561|                                        |+--------------+|                                                                                           |
3562|                                        ||:diagtext:`@` ||                                                                                           |
3563|                                        |+--------------+|                                                                                           |
3564+----------------------------------------+----------------+-------------------------------------------------------------------------------------------+
3565
3566+---------------------------------------------------------------------------------------------------------------------+
3567|:warning:`warning:` |nbsp| :diagtext:`parameter '`:placeholder:`A`:diagtext:`' not found in the function declaration`|
3568+---------------------------------------------------------------------------------------------------------------------+
3569
3570+----------------------------------------+----------------+-------------------------------------------------------------------------------------+-------------------------------------+
3571|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command used in a comment that is attached to a` |nbsp| |+-----------------------------------+|
3572|                                        ||:diagtext:`\\`||                                                                                     ||:diagtext:`function returning void`||
3573|                                        |+--------------+|                                                                                     |+-----------------------------------+|
3574|                                        ||:diagtext:`@` ||                                                                                     ||:diagtext:`constructor`            ||
3575|                                        |+--------------+|                                                                                     |+-----------------------------------+|
3576|                                        |                |                                                                                     ||:diagtext:`destructor`             ||
3577|                                        |                |                                                                                     |+-----------------------------------+|
3578|                                        |                |                                                                                     ||:diagtext:`method returning void`  ||
3579|                                        |                |                                                                                     |+-----------------------------------+|
3580+----------------------------------------+----------------+-------------------------------------------------------------------------------------+-------------------------------------+
3581
3582+----------------------------------------+----------------+----------------------------------------------------------------------------------------------------------------+
3583|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command used in a comment that is not attached to a function or method declaration`|
3584|                                        ||:diagtext:`\\`||                                                                                                                |
3585|                                        |+--------------+|                                                                                                                |
3586|                                        ||:diagtext:`@` ||                                                                                                                |
3587|                                        |+--------------+|                                                                                                                |
3588+----------------------------------------+----------------+----------------------------------------------------------------------------------------------------------------+
3589
3590+--------------------------------------------------------------------------------------------------------------+
3591|:warning:`warning:` |nbsp| :diagtext:`template parameter '`:placeholder:`A`:diagtext:`' is already documented`|
3592+--------------------------------------------------------------------------------------------------------------+
3593
3594+----------------------------------------+----------------+--------------------------------------------------------------------------------------------+
3595|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:diagtext:`tparam' command used in a comment that is not attached to a template declaration`|
3596|                                        ||:diagtext:`\\`||                                                                                            |
3597|                                        |+--------------+|                                                                                            |
3598|                                        ||:diagtext:`@` ||                                                                                            |
3599|                                        |+--------------+|                                                                                            |
3600+----------------------------------------+----------------+--------------------------------------------------------------------------------------------+
3601
3602+------------------------------------------------------------------------------------------------------------------------------+
3603|:warning:`warning:` |nbsp| :diagtext:`template parameter '`:placeholder:`A`:diagtext:`' not found in the template declaration`|
3604+------------------------------------------------------------------------------------------------------------------------------+
3605
3606+---------------------------------------------------------------------+
3607|:warning:`warning:` |nbsp| :diagtext:`not a Doxygen trailing comment`|
3608+---------------------------------------------------------------------+
3609
3610+----------------------------------------+----------------+------------------------------------------------------------------------------+
3611|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command does not terminate a verbatim text block`|
3612|                                        ||:diagtext:`\\`||                                                                              |
3613|                                        |+--------------+|                                                                              |
3614|                                        ||:diagtext:`@` ||                                                                              |
3615|                                        |+--------------+|                                                                              |
3616+----------------------------------------+----------------+------------------------------------------------------------------------------+
3617
3618
3619-Wdocumentation-deprecated-sync
3620-------------------------------
3621**Diagnostic text:**
3622
3623+----------------------------------------------------------------------------------------------------------------------------------+
3624|:warning:`warning:` |nbsp| :diagtext:`declaration is marked with '\\deprecated' command but does not have a deprecation attribute`|
3625+----------------------------------------------------------------------------------------------------------------------------------+
3626
3627
3628-Wdocumentation-html
3629--------------------
3630**Diagnostic text:**
3631
3632+-----------------------------------------------------------------------------------------------+
3633|:warning:`warning:` |nbsp| :diagtext:`HTML end tag '`:placeholder:`A`:diagtext:`' is forbidden`|
3634+-----------------------------------------------------------------------------------------------+
3635
3636+--------------------------------------------------------------------------------+
3637|:warning:`warning:` |nbsp| :diagtext:`HTML end tag does not match any start tag`|
3638+--------------------------------------------------------------------------------+
3639
3640+--------------------------------------------------------------------------------------------------+
3641|:warning:`warning:` |nbsp| :diagtext:`HTML tag '`:placeholder:`A`:diagtext:`' requires an end tag`|
3642+--------------------------------------------------------------------------------------------------+
3643
3644+-----------------------------------------------------------------------------------------------------------------------------+
3645|:warning:`warning:` |nbsp| :diagtext:`HTML start tag '`:placeholder:`A`:diagtext:`' closed by '`:placeholder:`B`:diagtext:`'`|
3646+-----------------------------------------------------------------------------------------------------------------------------+
3647
3648
3649-Wdocumentation-pedantic
3650------------------------
3651Also controls `-Wdocumentation-unknown-command`_.
3652
3653**Diagnostic text:**
3654
3655+-----------------------------------------------------------------------------------------------+
3656|:warning:`warning:` |nbsp| :diagtext:`whitespace is not allowed in parameter passing direction`|
3657+-----------------------------------------------------------------------------------------------+
3658
3659
3660-Wdocumentation-unknown-command
3661-------------------------------
3662**Diagnostic text:**
3663
3664+--------------------------------------------------------------------------------------------------------------------------------------------+
3665|:warning:`warning:` |nbsp| :diagtext:`unknown command tag name '`:placeholder:`A`:diagtext:`'; did you mean '`:placeholder:`B`:diagtext:`'?`|
3666+--------------------------------------------------------------------------------------------------------------------------------------------+
3667
3668+---------------------------------------------------------------+
3669|:warning:`warning:` |nbsp| :diagtext:`unknown command tag name`|
3670+---------------------------------------------------------------+
3671
3672
3673-Wdollar-in-identifier-extension
3674--------------------------------
3675**Diagnostic text:**
3676
3677+--------------------------------------------------------+
3678|:warning:`warning:` |nbsp| :diagtext:`'$' in identifier`|
3679+--------------------------------------------------------+
3680
3681
3682-Wdouble-promotion
3683------------------
3684**Diagnostic text:**
3685
3686+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3687|:warning:`warning:` |nbsp| :diagtext:`implicit conversion increases floating-point precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
3688+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3689
3690
3691-Wduplicate-decl-specifier
3692--------------------------
3693Some of the diagnostics controlled by this flag are enabled by default.
3694
3695**Diagnostic text:**
3696
3697+-----------------------------------------------------------------------------------------------------+
3698|:warning:`warning:` |nbsp| :diagtext:`duplicate '`:placeholder:`A`:diagtext:`' declaration specifier`|
3699+-----------------------------------------------------------------------------------------------------+
3700
3701+-----------------------------------------------------------------------------------------------------+
3702|:warning:`warning:` |nbsp| :diagtext:`duplicate '`:placeholder:`A`:diagtext:`' declaration specifier`|
3703+-----------------------------------------------------------------------------------------------------+
3704
3705+-------------------------------------------------------------------------------------------+
3706|:warning:`warning:` |nbsp| :diagtext:`multiple identical address spaces specified for type`|
3707+-------------------------------------------------------------------------------------------+
3708
3709+-----------------------------------------------------------------------------------------------------+
3710|:warning:`warning:` |nbsp| :diagtext:`duplicate '`:placeholder:`A`:diagtext:`' declaration specifier`|
3711+-----------------------------------------------------------------------------------------------------+
3712
3713
3714-Wduplicate-enum
3715----------------
3716**Diagnostic text:**
3717
3718+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3719|: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`|
3720+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3721
3722
3723-Wduplicate-method-arg
3724----------------------
3725**Diagnostic text:**
3726
3727+------------------------------------------------------------------------------------------------+
3728|:warning:`warning:` |nbsp| :diagtext:`redeclaration of method parameter` |nbsp| :placeholder:`A`|
3729+------------------------------------------------------------------------------------------------+
3730
3731
3732-Wduplicate-method-match
3733------------------------
3734**Diagnostic text:**
3735
3736+-----------------------------------------------------------------------------------------------------------------------------------+
3737|:warning:`warning:` |nbsp| :diagtext:`multiple declarations of method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found and ignored`|
3738+-----------------------------------------------------------------------------------------------------------------------------------+
3739
3740
3741-Wduplicate-protocol
3742--------------------
3743This diagnostic is enabled by default.
3744
3745**Diagnostic text:**
3746
3747+-----------------------------------------------------------------------------------------------------------------------------+
3748|:warning:`warning:` |nbsp| :diagtext:`duplicate protocol definition of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is ignored`|
3749+-----------------------------------------------------------------------------------------------------------------------------+
3750
3751
3752-Wdynamic-class-memaccess
3753-------------------------
3754This diagnostic is enabled by default.
3755
3756**Diagnostic text:**
3757
3758+---------------------------+-------------------------------+------------------------------------------------------------------------------------------------+----------------------------------------+---------------------------------------------------------------------------------------------+-------------------------+
3759|: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| |+-----------------------+|
3760|                           ||:diagtext:`destination for`  ||                                                                                                ||                                      ||                                                                                             ||:diagtext:`overwritten`||
3761|                           |+-----------------------------+|                                                                                                |+--------------------------------------+|                                                                                             |+-----------------------+|
3762|                           ||:diagtext:`source of`        ||                                                                                                ||:diagtext:`class containing a` |nbsp| ||                                                                                             ||:diagtext:`copied`     ||
3763|                           |+-----------------------------+|                                                                                                |+--------------------------------------+|                                                                                             |+-----------------------+|
3764|                           ||:diagtext:`first operand of` ||                                                                                                |                                        |                                                                                             ||:diagtext:`moved`      ||
3765|                           |+-----------------------------+|                                                                                                |                                        |                                                                                             |+-----------------------+|
3766|                           ||:diagtext:`second operand of`||                                                                                                |                                        |                                                                                             ||:diagtext:`compared`   ||
3767|                           |+-----------------------------+|                                                                                                |                                        |                                                                                             |+-----------------------+|
3768+---------------------------+-------------------------------+------------------------------------------------------------------------------------------------+----------------------------------------+---------------------------------------------------------------------------------------------+-------------------------+
3769
3770
3771-Wdynamic-exception-spec
3772------------------------
3773Some of the diagnostics controlled by this flag are enabled by default.
3774
3775Also controls `-Wdeprecated-dynamic-exception-spec`_.
3776
3777**Diagnostic text:**
3778
3779+--------------------------------------------------------------------------------------------+
3780|:error:`error:` |nbsp| :diagtext:`ISO C++17 does not allow dynamic exception specifications`|
3781+--------------------------------------------------------------------------------------------+
3782
3783
3784-Weffc++
3785--------
3786Synonym for `-Wnon-virtual-dtor`_.
3787
3788
3789-Wembedded-directive
3790--------------------
3791**Diagnostic text:**
3792
3793+----------------------------------------------------------------------------------------------------------+
3794|:warning:`warning:` |nbsp| :diagtext:`embedding a directive within macro arguments has undefined behavior`|
3795+----------------------------------------------------------------------------------------------------------+
3796
3797
3798-Wempty-body
3799------------
3800This diagnostic is enabled by default.
3801
3802**Diagnostic text:**
3803
3804+--------------------------------------------------------------+
3805|:warning:`warning:` |nbsp| :diagtext:`for loop has empty body`|
3806+--------------------------------------------------------------+
3807
3808+------------------------------------------------------------------+
3809|:warning:`warning:` |nbsp| :diagtext:`if statement has empty body`|
3810+------------------------------------------------------------------+
3811
3812+--------------------------------------------------------------------------+
3813|:warning:`warning:` |nbsp| :diagtext:`range-based for loop has empty body`|
3814+--------------------------------------------------------------------------+
3815
3816+----------------------------------------------------------------------+
3817|:warning:`warning:` |nbsp| :diagtext:`switch statement has empty body`|
3818+----------------------------------------------------------------------+
3819
3820+----------------------------------------------------------------+
3821|:warning:`warning:` |nbsp| :diagtext:`while loop has empty body`|
3822+----------------------------------------------------------------+
3823
3824
3825-Wempty-decomposition
3826---------------------
3827This diagnostic is enabled by default.
3828
3829**Diagnostic text:**
3830
3831+-------------------------------------------------------------------------------------------------+
3832|:warning:`warning:` |nbsp| :diagtext:`ISO C++17 does not allow a decomposition group to be empty`|
3833+-------------------------------------------------------------------------------------------------+
3834
3835
3836-Wempty-init-stmt
3837-----------------
3838**Diagnostic text:**
3839
3840+--------------------------------------------------------------------------+-----------------------------+---------------------------+
3841|:warning:`warning:` |nbsp| :diagtext:`empty initialization statement of '`|+---------------------------+|:diagtext:`' has no effect`|
3842|                                                                          ||:diagtext:`if`             ||                           |
3843|                                                                          |+---------------------------+|                           |
3844|                                                                          ||:diagtext:`switch`         ||                           |
3845|                                                                          |+---------------------------+|                           |
3846|                                                                          ||:diagtext:`range-based for`||                           |
3847|                                                                          |+---------------------------+|                           |
3848+--------------------------------------------------------------------------+-----------------------------+---------------------------+
3849
3850
3851-Wempty-translation-unit
3852------------------------
3853**Diagnostic text:**
3854
3855+------------------------------------------------------------------------------------------------------------+
3856|:warning:`warning:` |nbsp| :diagtext:`ISO C requires a translation unit to contain at least one declaration`|
3857+------------------------------------------------------------------------------------------------------------+
3858
3859
3860-Wencode-type
3861-------------
3862This diagnostic is enabled by default.
3863
3864**Diagnostic text:**
3865
3866+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3867|:warning:`warning:` |nbsp| :diagtext:`encoding of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`type is incomplete because` |nbsp| :placeholder:`B` |nbsp| :diagtext:`component has unknown encoding`|
3868+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3869
3870
3871-Wendif-labels
3872--------------
3873Synonym for `-Wextra-tokens`_.
3874
3875
3876-Wenum-compare
3877--------------
3878This diagnostic is enabled by default.
3879
3880Also controls `-Wenum-compare-switch`_.
3881
3882**Diagnostic text:**
3883
3884+------------------------------------------------------------------------------------------------+
3885|:warning:`warning:` |nbsp| :diagtext:`comparison of two values with different enumeration types`|
3886+------------------------------------------------------------------------------------------------+
3887
3888
3889-Wenum-compare-switch
3890---------------------
3891This diagnostic is enabled by default.
3892
3893**Diagnostic text:**
3894
3895+--------------------------------------------------------------------------------------------------------------------+
3896|:warning:`warning:` |nbsp| :diagtext:`comparison of two values with different enumeration types in switch statement`|
3897+--------------------------------------------------------------------------------------------------------------------+
3898
3899
3900-Wenum-conversion
3901-----------------
3902This diagnostic is enabled by default.
3903
3904**Diagnostic text:**
3905
3906+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3907|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from enumeration type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to different enumeration type` |nbsp| :placeholder:`B`|
3908+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3909
3910
3911-Wenum-too-large
3912----------------
3913This diagnostic is enabled by default.
3914
3915**Diagnostic text:**
3916
3917+-----------------------------------------------------------------------------------------+
3918|:warning:`warning:` |nbsp| :diagtext:`enumeration values exceed range of largest integer`|
3919+-----------------------------------------------------------------------------------------+
3920
3921+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
3922|:warning:`warning:` |nbsp| :diagtext:`incremented enumerator value` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not representable in the largest integer type`|
3923+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
3924
3925
3926-Wexceptions
3927------------
3928This diagnostic is enabled by default.
3929
3930**Diagnostic text:**
3931
3932+--------------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------+
3933|:warning:`warning:` |nbsp| :diagtext:`cannot refer to a non-static member from the handler of a` |nbsp| |+-----------------------+| |nbsp| :diagtext:`function try block`|
3934|                                                                                                        ||:diagtext:`constructor`||                                      |
3935|                                                                                                        |+-----------------------+|                                      |
3936|                                                                                                        ||:diagtext:`destructor` ||                                      |
3937|                                                                                                        |+-----------------------+|                                      |
3938+--------------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------+
3939
3940+-------------------------------------------------------------------------------------------------------------------------------------+
3941|:warning:`warning:` |nbsp| :diagtext:`exception of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will be caught by earlier handler`|
3942+-------------------------------------------------------------------------------------------------------------------------------------+
3943
3944+-----------------------------------------------------------------------------------------------------------------------------+
3945|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has a non-throwing exception specification but can still throw`|
3946+-----------------------------------------------------------------------------------------------------------------------------+
3947
3948
3949-Wexit-time-destructors
3950-----------------------
3951**Diagnostic text:**
3952
3953+-----------------------------------------------------------------------------------+
3954|:warning:`warning:` |nbsp| :diagtext:`declaration requires an exit-time destructor`|
3955+-----------------------------------------------------------------------------------+
3956
3957
3958-Wexpansion-to-defined
3959----------------------
3960Some of the diagnostics controlled by this flag are enabled by default.
3961
3962**Diagnostic text:**
3963
3964+-------------------------------------------------------------------------------------------------+
3965|:warning:`warning:` |nbsp| :diagtext:`macro expansion producing 'defined' has undefined behavior`|
3966+-------------------------------------------------------------------------------------------------+
3967
3968+-------------------------------------------------------------------------------------------------+
3969|:warning:`warning:` |nbsp| :diagtext:`macro expansion producing 'defined' has undefined behavior`|
3970+-------------------------------------------------------------------------------------------------+
3971
3972
3973-Wexperimental-isel
3974-------------------
3975This diagnostic is enabled by default.
3976
3977**Diagnostic text:**
3978
3979+------------------------------------------------------------------------------------------------------------------------------------+
3980|:warning:`warning:` |nbsp| :diagtext:`-fexperimental-isel support for the '`:placeholder:`A`:diagtext:`' architecture is incomplete`|
3981+------------------------------------------------------------------------------------------------------------------------------------+
3982
3983+----------------------------------------------------------------------------------------------------------------------------------------+
3984|:warning:`warning:` |nbsp| :diagtext:`-fexperimental-isel support is incomplete for this architecture at the current optimization level`|
3985+----------------------------------------------------------------------------------------------------------------------------------------+
3986
3987
3988-Wexplicit-initialize-call
3989--------------------------
3990This diagnostic is enabled by default.
3991
3992**Diagnostic text:**
3993
3994+------------------------------------------------------------------------------------------------------------+
3995|:warning:`warning:` |nbsp| :diagtext:`explicit call to +initialize results in duplicate call to +initialize`|
3996+------------------------------------------------------------------------------------------------------------+
3997
3998+----------------------------------------------------------------------------------------------------------------------------+
3999|:warning:`warning:` |nbsp| :diagtext:`explicit call to \[super initialize\] should only be in implementation of +initialize`|
4000+----------------------------------------------------------------------------------------------------------------------------+
4001
4002
4003-Wexplicit-ownership-type
4004-------------------------
4005**Diagnostic text:**
4006
4007+-------------------------------------------------------------------------------------------------------------------------------------+
4008|:warning:`warning:` |nbsp| :diagtext:`method parameter of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with no explicit ownership`|
4009+-------------------------------------------------------------------------------------------------------------------------------------+
4010
4011
4012-Wexport-unnamed
4013----------------
4014This diagnostic is enabled by default.
4015
4016**Diagnostic text:**
4017
4018+------------------------------------------------------------------------+------------------------------+------------------------------------------------------------+
4019|:warning:`warning:` |nbsp| :diagtext:`ISO C++20 does not permit` |nbsp| |+----------------------------+| |nbsp| :diagtext:`declaration to appear in an export block`|
4020|                                                                        ||:diagtext:`an empty`        ||                                                            |
4021|                                                                        |+----------------------------+|                                                            |
4022|                                                                        ||:diagtext:`a static\_assert`||                                                            |
4023|                                                                        |+----------------------------+|                                                            |
4024+------------------------------------------------------------------------+------------------------------+------------------------------------------------------------+
4025
4026+-------------------------------------------------------------------------------------------------------------------------------+
4027|:warning:`warning:` |nbsp| :diagtext:`ISO C++20 does not permit a declaration that does not introduce any names to be exported`|
4028+-------------------------------------------------------------------------------------------------------------------------------+
4029
4030
4031-Wexport-using-directive
4032------------------------
4033This diagnostic is enabled by default.
4034
4035**Diagnostic text:**
4036
4037+-----------------------------------------------------------------------------------------------+
4038|:warning:`warning:` |nbsp| :diagtext:`ISO C++20 does not permit using directive to be exported`|
4039+-----------------------------------------------------------------------------------------------+
4040
4041
4042-Wextern-c-compat
4043-----------------
4044This diagnostic is enabled by default.
4045
4046**Diagnostic text:**
4047
4048+---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+
4049|:warning:`warning:` |nbsp| |+-------------------------+|+------------------+| |nbsp| :diagtext:`has size 0 in C,` |nbsp| |+-------------------------+| |nbsp| :diagtext:`in C++`|
4050|                           ||                         |||:diagtext:`struct`||                                            ||:diagtext:`size 1`       ||                          |
4051|                           |+-------------------------+|+------------------+|                                            |+-------------------------+|                          |
4052|                           ||:diagtext:`empty` |nbsp| |||:diagtext:`union` ||                                            ||:diagtext:`non-zero size`||                          |
4053|                           |+-------------------------+|+------------------+|                                            |+-------------------------+|                          |
4054+---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+
4055
4056
4057-Wextern-initializer
4058--------------------
4059This diagnostic is enabled by default.
4060
4061**Diagnostic text:**
4062
4063+---------------------------------------------------------------------------+
4064|:warning:`warning:` |nbsp| :diagtext:`'extern' variable has an initializer`|
4065+---------------------------------------------------------------------------+
4066
4067
4068-Wextra
4069-------
4070Some of the diagnostics controlled by this flag are enabled by default.
4071
4072Also 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`_.
4073
4074**Diagnostic text:**
4075
4076+-----------------------------------------------------------------------------------------------------------------------------+
4077|:warning:`warning:` |nbsp| :diagtext:`call to function without interrupt attribute could clobber interruptee's VFP registers`|
4078+-----------------------------------------------------------------------------------------------------------------------------+
4079
4080
4081-Wextra-qualification
4082---------------------
4083This diagnostic is enabled by default.
4084
4085**Diagnostic text:**
4086
4087+--------------------------------------------------------------------------------------------+
4088|:warning:`warning:` |nbsp| :diagtext:`extra qualification on member` |nbsp| :placeholder:`A`|
4089+--------------------------------------------------------------------------------------------+
4090
4091
4092-Wextra-semi
4093------------
4094Also controls `-Wc++11-extra-semi`_, `-Wc++98-compat-extra-semi`_.
4095
4096**Diagnostic text:**
4097
4098+--------------------------------------------------------+------------------------------------------------+
4099|:warning:`warning:` |nbsp| :diagtext:`extra ';'` |nbsp| |+----------------------------------------------+|
4100|                                                        ||:diagtext:`outside of a function`             ||
4101|                                                        |+----------------------------------------------+|
4102|                                                        ||+--------------------------------------------+||
4103|                                                        |||:diagtext:`inside a` |nbsp| :placeholder:`B`|||
4104|                                                        ||+--------------------------------------------+||
4105|                                                        |+----------------------------------------------+|
4106|                                                        ||:diagtext:`inside instance variable list`     ||
4107|                                                        |+----------------------------------------------+|
4108|                                                        ||:diagtext:`after member function definition`  ||
4109|                                                        |+----------------------------------------------+|
4110+--------------------------------------------------------+------------------------------------------------+
4111
4112+---------------------------------------------------------------------------------+
4113|:warning:`warning:` |nbsp| :diagtext:`extra ';' after member function definition`|
4114+---------------------------------------------------------------------------------+
4115
4116
4117-Wextra-semi-stmt
4118-----------------
4119Also controls `-Wempty-init-stmt`_.
4120
4121**Diagnostic text:**
4122
4123+-------------------------------------------------------------------------------------------------------------------------------+
4124|:warning:`warning:` |nbsp| :diagtext:`empty expression statement has no effect; remove unnecessary ';' to silence this warning`|
4125+-------------------------------------------------------------------------------------------------------------------------------+
4126
4127
4128-Wextra-tokens
4129--------------
4130This diagnostic is enabled by default.
4131
4132**Diagnostic text:**
4133
4134+------------------------------------------------------------------------------------------------------------+
4135|:warning:`warning:` |nbsp| :diagtext:`extra tokens at end of #`:placeholder:`A` |nbsp| :diagtext:`directive`|
4136+------------------------------------------------------------------------------------------------------------+
4137
4138+-------------------------------------------------------------------------------------------------------------------------------+
4139|:warning:`warning:` |nbsp| :diagtext:`extra tokens at the end of '#pragma omp` |nbsp| :placeholder:`A`:diagtext:`' are ignored`|
4140+-------------------------------------------------------------------------------------------------------------------------------+
4141
4142
4143-Wfallback
4144----------
4145This diagnostic is enabled by default.
4146
4147**Diagnostic text:**
4148
4149+------------------------------------------------------------------------------+
4150|:warning:`warning:` |nbsp| :diagtext:`falling back to` |nbsp| :placeholder:`A`|
4151+------------------------------------------------------------------------------+
4152
4153
4154-Wfixed-enum-extension
4155----------------------
4156**Diagnostic text:**
4157
4158+-----------------------------------------------------------------------------------------------------------+
4159|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a Clang extension`|
4160+-----------------------------------------------------------------------------------------------------------+
4161
4162
4163-Wflag-enum
4164-----------
4165This diagnostic is enabled by default.
4166
4167**Diagnostic text:**
4168
4169+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4170|:warning:`warning:` |nbsp| :diagtext:`enumeration value` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is out of range of flags in enumeration type` |nbsp| :placeholder:`B`|
4171+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4172
4173
4174-Wflexible-array-extensions
4175---------------------------
4176**Diagnostic text:**
4177
4178+-------------------------------------------------------------------------------------------------------------------------------+
4179|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may not be used as an array element due to flexible array member`|
4180+-------------------------------------------------------------------------------------------------------------------------------+
4181
4182+-------------------------------------------------------------------------------------------------------------------------+
4183|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may not be nested in a struct due to flexible array member`|
4184+-------------------------------------------------------------------------------------------------------------------------+
4185
4186
4187-Wfloat-conversion
4188------------------
4189Also controls `-Wfloat-overflow-conversion`_, `-Wfloat-zero-conversion`_.
4190
4191**Diagnostic text:**
4192
4193+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4194|:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns floating-point number into integer:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
4195+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4196
4197
4198-Wfloat-equal
4199-------------
4200**Diagnostic text:**
4201
4202+---------------------------------------------------------------------------------------+
4203|:warning:`warning:` |nbsp| :diagtext:`comparing floating point with == or != is unsafe`|
4204+---------------------------------------------------------------------------------------+
4205
4206
4207-Wfloat-overflow-conversion
4208---------------------------
4209**Diagnostic text:**
4210
4211+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4212|: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`|
4213+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4214
4215+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4216|: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`|
4217+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4218
4219
4220-Wfloat-zero-conversion
4221-----------------------
4222**Diagnostic text:**
4223
4224+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4225|: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`|
4226+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4227
4228
4229-Wfor-loop-analysis
4230-------------------
4231**Diagnostic text:**
4232
4233+-----------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------+
4234|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is` |nbsp| |+-----------------------+| |nbsp| :diagtext:`both in the loop header and in the loop body`|
4235|                                                                                                     ||:diagtext:`decremented`||                                                                |
4236|                                                                                                     |+-----------------------+|                                                                |
4237|                                                                                                     ||:diagtext:`incremented`||                                                                |
4238|                                                                                                     |+-----------------------+|                                                                |
4239+-----------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------+
4240
4241+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+
4242|:warning:`warning:` |nbsp| :diagtext:`variable`|+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |nbsp| :diagtext:`used in loop condition not modified in loop body`|
4243|                                               ||:diagtext:`s`                                                                                                                                             ||                                                                    |
4244|                                               |+----------------------------------------------------------------------------------------------------------------------------------------------------------+|                                                                    |
4245|                                               ||+------------------------+                                                                                                                                ||                                                                    |
4246|                                               ||| |nbsp| :placeholder:`B`|                                                                                                                                ||                                                                    |
4247|                                               ||+------------------------+                                                                                                                                ||                                                                    |
4248|                                               |+----------------------------------------------------------------------------------------------------------------------------------------------------------+|                                                                    |
4249|                                               ||+------------------------------------------------------------------------------------+                                                                    ||                                                                    |
4250|                                               |||:diagtext:`s` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C`|                                                                    ||                                                                    |
4251|                                               ||+------------------------------------------------------------------------------------+                                                                    ||                                                                    |
4252|                                               |+----------------------------------------------------------------------------------------------------------------------------------------------------------+|                                                                    |
4253|                                               ||+-------------------------------------------------------------------------------------------------------------------+                                     ||                                                                    |
4254|                                               |||:diagtext:`s` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D`|                                     ||                                                                    |
4255|                                               ||+-------------------------------------------------------------------------------------------------------------------+                                     ||                                                                    |
4256|                                               |+----------------------------------------------------------------------------------------------------------------------------------------------------------+|                                                                    |
4257|                                               ||+--------------------------------------------------------------------------------------------------------------------------------------------------------+||                                                                    |
4258|                                               |||:diagtext:`s` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`, and` |nbsp| :placeholder:`E`|||                                                                    |
4259|                                               ||+--------------------------------------------------------------------------------------------------------------------------------------------------------+||                                                                    |
4260|                                               |+----------------------------------------------------------------------------------------------------------------------------------------------------------+|                                                                    |
4261+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+
4262
4263
4264-Wformat
4265--------
4266This diagnostic is enabled by default.
4267
4268Also controls `-Wformat-extra-args`_, `-Wformat-invalid-specifier`_, `-Wformat-security`_, `-Wformat-y2k`_, `-Wformat-zero-length`_, `-Wnonnull`_.
4269
4270**Diagnostic text:**
4271
4272+-------------------------------------------------------------------------------------+
4273|:warning:`warning:` |nbsp| :diagtext:`using '%%P' format specifier without precision`|
4274+-------------------------------------------------------------------------------------+
4275
4276+---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4277|: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`|
4278|                           ||:diagtext:`values of type`                  ||                                                                                                                                                                     |
4279|                           |+--------------------------------------------+|                                                                                                                                                                     |
4280|                           ||:diagtext:`enum values with underlying type`||                                                                                                                                                                     |
4281|                           |+--------------------------------------------+|                                                                                                                                                                     |
4282+---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4283
4284+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
4285|:warning:`warning:` |nbsp| :diagtext:`format specifies type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`but the argument has` |nbsp| |+---------------------------+| |nbsp| :placeholder:`B`|
4286|                                                                                                                                    ||:diagtext:`type`           ||                        |
4287|                                                                                                                                    |+---------------------------+|                        |
4288|                                                                                                                                    ||:diagtext:`underlying type`||                        |
4289|                                                                                                                                    |+---------------------------+|                        |
4290+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
4291
4292+----------------------------------------------------------------------------------------------------------------------------------------+
4293|:warning:`warning:` |nbsp| :diagtext:`using '`:placeholder:`A`:diagtext:`' format specifier annotation outside of os\_log()/os\_trace()`|
4294+----------------------------------------------------------------------------------------------------------------------------------------+
4295
4296+-----------------------------------------------------------------------------+-----------------------------+
4297|:warning:`warning:` |nbsp| :diagtext:`invalid position specified for` |nbsp| |+---------------------------+|
4298|                                                                             ||:diagtext:`field width`    ||
4299|                                                                             |+---------------------------+|
4300|                                                                             ||:diagtext:`field precision`||
4301|                                                                             |+---------------------------+|
4302+-----------------------------------------------------------------------------+-----------------------------+
4303
4304+----------------------------------------------------------------------------------------------------------+
4305|:warning:`warning:` |nbsp| :diagtext:`cannot mix positional and non-positional arguments in format string`|
4306+----------------------------------------------------------------------------------------------------------+
4307
4308+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4309|:warning:`warning:` |nbsp| :diagtext:`length modifier '`:placeholder:`A`:diagtext:`' results in undefined behavior or no effect with '`:placeholder:`B`:diagtext:`' conversion specifier`|
4310+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4311
4312+--------------------------------------------------------------------------------+
4313|:warning:`warning:` |nbsp| :diagtext:`format string should not be a wide string`|
4314+--------------------------------------------------------------------------------+
4315
4316+-------------------------------------------------------------------------------------------------------+
4317|:warning:`warning:` |nbsp| :diagtext:`position arguments in format strings start counting at 1 (not 0)`|
4318+-------------------------------------------------------------------------------------------------------+
4319
4320+------------------------------------------------------------+
4321|:warning:`warning:` |nbsp| :diagtext:`format string missing`|
4322+------------------------------------------------------------+
4323
4324+----------------------------------------------------------------------------------------------------------------------------------+
4325|:warning:`warning:` |nbsp| :diagtext:`object format flags cannot be used with '`:placeholder:`A`:diagtext:`' conversion specifier`|
4326+----------------------------------------------------------------------------------------------------------------------------------+
4327
4328+----------------------------------------+-----------------+-------------------------------------+-----------------------+--------------------------------------------------------+
4329|:warning:`warning:` |nbsp| :diagtext:`'`|+---------------+|:diagtext:`' specified field` |nbsp| |+---------------------+| |nbsp| :diagtext:`is missing a matching 'int' argument`|
4330|                                        ||:diagtext:`\*` ||                                     ||:diagtext:`width`    ||                                                        |
4331|                                        |+---------------+|                                     |+---------------------+|                                                        |
4332|                                        ||:diagtext:`.\*`||                                     ||:diagtext:`precision`||                                                        |
4333|                                        |+---------------+|                                     |+---------------------+|                                                        |
4334+----------------------------------------+-----------------+-------------------------------------+-----------------------+--------------------------------------------------------+
4335
4336+----------------------------------------------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------+
4337|:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| |+---------------------+| |nbsp| :diagtext:`should have type` |nbsp| :placeholder:`B`:diagtext:`, but argument has type` |nbsp| :placeholder:`C`|
4338|                                                    ||:diagtext:`width`    ||                                                                                                                       |
4339|                                                    |+---------------------+|                                                                                                                       |
4340|                                                    ||:diagtext:`precision`||                                                                                                                       |
4341|                                                    |+---------------------+|                                                                                                                       |
4342+----------------------------------------------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------+
4343
4344+-----------------------------------------------------------------+
4345|:warning:`warning:` |nbsp| :diagtext:`missing object format flag`|
4346+-----------------------------------------------------------------+
4347
4348+------------------------------------------------------------------------------------------+
4349|:warning:`warning:` |nbsp| :diagtext:`format string contains '\\0' within the string body`|
4350+------------------------------------------------------------------------------------------+
4351
4352+---------------------------------------------------------------------------+
4353|:warning:`warning:` |nbsp| :diagtext:`format string is not null-terminated`|
4354+---------------------------------------------------------------------------+
4355
4356+-----------------------------------------------------------------------------------------------------------------------------------------+
4357|:warning:`warning:` |nbsp| :diagtext:`flag '`:placeholder:`A`:diagtext:`' is ignored when flag '`:placeholder:`B`:diagtext:`' is present`|
4358+-----------------------------------------------------------------------------------------------------------------------------------------+
4359
4360+------------------------------------------------------------------+
4361|:warning:`warning:` |nbsp| :diagtext:`incomplete format specifier`|
4362+------------------------------------------------------------------+
4363
4364+--------------------------------------------------------------------------------+
4365|:warning:`warning:` |nbsp| :diagtext:`more '%%' conversions than data arguments`|
4366+--------------------------------------------------------------------------------+
4367
4368+-------------------------------------------------------------------------------------------------------+
4369|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is not a valid object format flag`|
4370+-------------------------------------------------------------------------------------------------------+
4371
4372+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
4373|:warning:`warning:` |nbsp| :diagtext:`flag '`:placeholder:`A`:diagtext:`' results in undefined behavior with '`:placeholder:`B`:diagtext:`' conversion specifier`|
4374+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
4375
4376+---------------------------+-------------------------+------------------------------------------------------------------------------------------------------------------+
4377|:warning:`warning:` |nbsp| |+-----------------------+| |nbsp| :diagtext:`used with '`:placeholder:`B`:diagtext:`' conversion specifier, resulting in undefined behavior`|
4378|                           ||:diagtext:`field width`||                                                                                                                  |
4379|                           |+-----------------------+|                                                                                                                  |
4380|                           ||:diagtext:`precision`  ||                                                                                                                  |
4381|                           |+-----------------------+|                                                                                                                  |
4382+---------------------------+-------------------------+------------------------------------------------------------------------------------------------------------------+
4383
4384+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
4385|:warning:`warning:` |nbsp| :diagtext:`data argument position '`:placeholder:`A`:diagtext:`' exceeds the number of data arguments (`:placeholder:`B`:diagtext:`)`|
4386+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
4387
4388+----------------------------------------------------------------------------------------+
4389|:warning:`warning:` |nbsp| :diagtext:`zero field width in scanf format string is unused`|
4390+----------------------------------------------------------------------------------------+
4391
4392+----------------------------------------------------------------------------------------+
4393|:warning:`warning:` |nbsp| :diagtext:`no closing '\]' for '%%\[' in scanf format string`|
4394+----------------------------------------------------------------------------------------+
4395
4396
4397-Wformat-extra-args
4398-------------------
4399This diagnostic is enabled by default.
4400
4401**Diagnostic text:**
4402
4403+------------------------------------------------------------------------------+
4404|:warning:`warning:` |nbsp| :diagtext:`data argument not used by format string`|
4405+------------------------------------------------------------------------------+
4406
4407
4408-Wformat-invalid-specifier
4409--------------------------
4410This diagnostic is enabled by default.
4411
4412**Diagnostic text:**
4413
4414+--------------------------------------------------------------------------------------------------+
4415|:warning:`warning:` |nbsp| :diagtext:`invalid conversion specifier '`:placeholder:`A`:diagtext:`'`|
4416+--------------------------------------------------------------------------------------------------+
4417
4418
4419-Wformat-non-iso
4420----------------
4421**Diagnostic text:**
4422
4423+-----------------------------------------------------------------------------+----------------------------------+---------------------------------------------+
4424|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`'` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`is not supported by ISO C`|
4425|                                                                             ||:diagtext:`length modifier`     ||                                             |
4426|                                                                             |+--------------------------------+|                                             |
4427|                                                                             ||:diagtext:`conversion specifier`||                                             |
4428|                                                                             |+--------------------------------+|                                             |
4429+-----------------------------------------------------------------------------+----------------------------------+---------------------------------------------+
4430
4431+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4432|:warning:`warning:` |nbsp| :diagtext:`using length modifier '`:placeholder:`A`:diagtext:`' with conversion specifier '`:placeholder:`B`:diagtext:`' is not supported by ISO C`|
4433+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4434
4435+--------------------------------------------------------------------------------------+
4436|:warning:`warning:` |nbsp| :diagtext:`positional arguments are not supported by ISO C`|
4437+--------------------------------------------------------------------------------------+
4438
4439
4440-Wformat-nonliteral
4441-------------------
4442**Diagnostic text:**
4443
4444+----------------------------------------------------------------------------+
4445|:warning:`warning:` |nbsp| :diagtext:`format string is not a string literal`|
4446+----------------------------------------------------------------------------+
4447
4448
4449-Wformat-pedantic
4450-----------------
4451**Diagnostic text:**
4452
4453+---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4454|: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`|
4455|                           ||:diagtext:`values of type`                  ||                                                                                                                                                                     |
4456|                           |+--------------------------------------------+|                                                                                                                                                                     |
4457|                           ||:diagtext:`enum values with underlying type`||                                                                                                                                                                     |
4458|                           |+--------------------------------------------+|                                                                                                                                                                     |
4459+---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4460
4461+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
4462|:warning:`warning:` |nbsp| :diagtext:`format specifies type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`but the argument has` |nbsp| |+---------------------------+| |nbsp| :placeholder:`B`|
4463|                                                                                                                                    ||:diagtext:`type`           ||                        |
4464|                                                                                                                                    |+---------------------------+|                        |
4465|                                                                                                                                    ||:diagtext:`underlying type`||                        |
4466|                                                                                                                                    |+---------------------------+|                        |
4467+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
4468
4469
4470-Wformat-security
4471-----------------
4472This diagnostic is enabled by default.
4473
4474**Diagnostic text:**
4475
4476+---------------------------------------------------------------------------------------------------+
4477|:warning:`warning:` |nbsp| :diagtext:`format string is not a string literal (potentially insecure)`|
4478+---------------------------------------------------------------------------------------------------+
4479
4480
4481-Wformat-y2k
4482------------
4483This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
4484
4485-Wformat-zero-length
4486--------------------
4487This diagnostic is enabled by default.
4488
4489**Diagnostic text:**
4490
4491+-------------------------------------------------------------+
4492|:warning:`warning:` |nbsp| :diagtext:`format string is empty`|
4493+-------------------------------------------------------------+
4494
4495
4496-Wformat=2
4497----------
4498Some of the diagnostics controlled by this flag are enabled by default.
4499
4500Controls `-Wformat-nonliteral`_, `-Wformat-security`_, `-Wformat-y2k`_.
4501
4502
4503-Wfortify-source
4504----------------
4505This diagnostic is enabled by default.
4506
4507**Diagnostic text:**
4508
4509+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4510|: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`|
4511+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4512
4513+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4514|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' size argument is too large; destination buffer has size` |nbsp| :placeholder:`B`:diagtext:`, but size argument is` |nbsp| :placeholder:`C`|
4515+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4516
4517
4518-Wfour-char-constants
4519---------------------
4520**Diagnostic text:**
4521
4522+-------------------------------------------------------------------------+
4523|:warning:`warning:` |nbsp| :diagtext:`multi-character character constant`|
4524+-------------------------------------------------------------------------+
4525
4526
4527-Wframe-larger-than=
4528--------------------
4529This diagnostic is enabled by default.
4530
4531**Diagnostic text:**
4532
4533The text of this diagnostic is not controlled by Clang.
4534
4535+--------------------------------------------------------------------------------------------------------------------------------------+
4536|:warning:`warning:` |nbsp| :diagtext:`stack frame size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bytes in` |nbsp| :placeholder:`B`|
4537+--------------------------------------------------------------------------------------------------------------------------------------+
4538
4539
4540-Wframework-include-private-from-public
4541---------------------------------------
4542This diagnostic is enabled by default.
4543
4544**Diagnostic text:**
4545
4546+-------------------------------------------------------------------------------------------------------------------------------+
4547|:warning:`warning:` |nbsp| :diagtext:`public framework header includes private framework header '`:placeholder:`A`:diagtext:`'`|
4548+-------------------------------------------------------------------------------------------------------------------------------+
4549
4550
4551-Wfunction-def-in-objc-container
4552--------------------------------
4553This diagnostic is enabled by default.
4554
4555**Diagnostic text:**
4556
4557+--------------------------------------------------------------------------------------------------------+
4558|:warning:`warning:` |nbsp| :diagtext:`function definition inside an Objective-C container is deprecated`|
4559+--------------------------------------------------------------------------------------------------------+
4560
4561
4562-Wfunction-multiversion
4563-----------------------
4564This diagnostic is enabled by default.
4565
4566**Diagnostic text:**
4567
4568+-------------------------------------------------------------------------------------+
4569|:warning:`warning:` |nbsp| :diagtext:`body of cpu\_dispatch function will be ignored`|
4570+-------------------------------------------------------------------------------------+
4571
4572+---------------------------------------------------------------------------------------------+
4573|:warning:`warning:` |nbsp| :diagtext:`CPU list contains duplicate entries; attribute ignored`|
4574+---------------------------------------------------------------------------------------------+
4575
4576
4577-Wfuture-compat
4578---------------
4579This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
4580
4581-Wgcc-compat
4582------------
4583Some of the diagnostics controlled by this flag are enabled by default.
4584
4585**Diagnostic text:**
4586
4587+--------------------------------------------------------------------------+
4588|:warning:`warning:` |nbsp| :diagtext:`'diagnose\_if' is a clang extension`|
4589+--------------------------------------------------------------------------+
4590
4591+------------------------------------------------------------------------+
4592|:warning:`warning:` |nbsp| :diagtext:`'enable\_if' is a clang extension`|
4593+------------------------------------------------------------------------+
4594
4595+-----------------------------------------------------------------------------------------------+
4596|:warning:`warning:` |nbsp| :diagtext:`\_\_final is a GNU extension, consider using C++11 final`|
4597+-----------------------------------------------------------------------------------------------+
4598
4599+--------------------------------------------------------------------------------------------------------------------------------------------------------+
4600|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute in this position on a function definition`|
4601+--------------------------------------------------------------------------------------------------------------------------------------------------------+
4602
4603+---------------------------------------------------------------------------------------+
4604|:warning:`warning:` |nbsp| :diagtext:`'break' is bound to loop, GCC binds it to switch`|
4605+---------------------------------------------------------------------------------------+
4606
4607+----------------------------------------------------------------------------------------------------------------------------------------+
4608|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow the 'cleanup' attribute argument to be anything other than a simple identifier`|
4609+----------------------------------------------------------------------------------------------------------------------------------------+
4610
4611+-----------------------------------------------------------------------------------------------------------------+
4612|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow an attribute in this position on a function declaration`|
4613+-----------------------------------------------------------------------------------------------------------------+
4614
4615+------------------------------------------------------------------------------------------------------------------------------------------+
4616|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute to be written on a type`|
4617+------------------------------------------------------------------------------------------------------------------------------------------+
4618
4619+-------------------------------------------------------------------------------------------------------------------+
4620|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow variable declarations in for loop initializers before C99`|
4621+-------------------------------------------------------------------------------------------------------------------+
4622
4623+----------------------------------------------------------------------------------------------------------------------------------+
4624|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is bound to current loop, GCC binds it to the enclosing loop`|
4625+----------------------------------------------------------------------------------------------------------------------------------+
4626
4627
4628-Wglobal-constructors
4629---------------------
4630**Diagnostic text:**
4631
4632+--------------------------------------------------------------------------------+
4633|:warning:`warning:` |nbsp| :diagtext:`declaration requires a global constructor`|
4634+--------------------------------------------------------------------------------+
4635
4636+-------------------------------------------------------------------------------+
4637|:warning:`warning:` |nbsp| :diagtext:`declaration requires a global destructor`|
4638+-------------------------------------------------------------------------------+
4639
4640
4641-Wgnu
4642-----
4643Some of the diagnostics controlled by this flag are enabled by default.
4644
4645Controls `-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`_.
4646
4647
4648-Wgnu-alignof-expression
4649------------------------
4650This diagnostic is enabled by default.
4651
4652**Diagnostic text:**
4653
4654+----------------------------------------------------------------------------------------------------------+
4655|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`applied to an expression is a GNU extension`|
4656+----------------------------------------------------------------------------------------------------------+
4657
4658
4659-Wgnu-anonymous-struct
4660----------------------
4661**Diagnostic text:**
4662
4663+----------------------------------------------------------------------------+
4664|:warning:`warning:` |nbsp| :diagtext:`anonymous structs are a GNU extension`|
4665+----------------------------------------------------------------------------+
4666
4667
4668-Wgnu-array-member-paren-init
4669-----------------------------
4670This diagnostic is an error by default, but the flag ``-Wno-gnu-array-member-paren-init`` can be used to disable the error.
4671
4672**Diagnostic text:**
4673
4674+----------------------------------------------------------------------------------------------------+
4675|:error:`error:` |nbsp| :diagtext:`parenthesized initialization of a member array is a GNU extension`|
4676+----------------------------------------------------------------------------------------------------+
4677
4678
4679-Wgnu-auto-type
4680---------------
4681**Diagnostic text:**
4682
4683+--------------------------------------------------------------------------+
4684|:warning:`warning:` |nbsp| :diagtext:`'\_\_auto\_type' is a GNU extension`|
4685+--------------------------------------------------------------------------+
4686
4687
4688-Wgnu-binary-literal
4689--------------------
4690**Diagnostic text:**
4691
4692+----------------------------------------------------------------------------------+
4693|:warning:`warning:` |nbsp| :diagtext:`binary integer literals are a GNU extension`|
4694+----------------------------------------------------------------------------------+
4695
4696
4697-Wgnu-case-range
4698----------------
4699**Diagnostic text:**
4700
4701+----------------------------------------------------------------------+
4702|:warning:`warning:` |nbsp| :diagtext:`use of GNU case range extension`|
4703+----------------------------------------------------------------------+
4704
4705
4706-Wgnu-complex-integer
4707---------------------
4708**Diagnostic text:**
4709
4710+--------------------------------------------------------------------------------+
4711|:warning:`warning:` |nbsp| :diagtext:`complex integer types are a GNU extension`|
4712+--------------------------------------------------------------------------------+
4713
4714
4715-Wgnu-compound-literal-initializer
4716----------------------------------
4717**Diagnostic text:**
4718
4719+--------------------------------------------------------------------------------------------------------------------------------------------------+
4720|:warning:`warning:` |nbsp| :diagtext:`initialization of an array` |nbsp| :diagtext:`from a compound literal` |nbsp| :diagtext:`is a GNU extension`|
4721+--------------------------------------------------------------------------------------------------------------------------------------------------+
4722
4723
4724-Wgnu-conditional-omitted-operand
4725---------------------------------
4726**Diagnostic text:**
4727
4728+--------------------------------------------------------------------------------------------------------------+
4729|:warning:`warning:` |nbsp| :diagtext:`use of GNU ?: conditional expression extension, omitting middle operand`|
4730+--------------------------------------------------------------------------------------------------------------+
4731
4732
4733-Wgnu-designator
4734----------------
4735Some of the diagnostics controlled by this flag are enabled by default.
4736
4737**Diagnostic text:**
4738
4739+-----------------------------------------------------------------------+
4740|:warning:`warning:` |nbsp| :diagtext:`use of GNU array range extension`|
4741+-----------------------------------------------------------------------+
4742
4743+-------------------------------------------------------------------------------------+
4744|:warning:`warning:` |nbsp| :diagtext:`use of GNU 'missing =' extension in designator`|
4745+-------------------------------------------------------------------------------------+
4746
4747+--------------------------------------------------------------------------------------+
4748|:warning:`warning:` |nbsp| :diagtext:`use of GNU old-style field designator extension`|
4749+--------------------------------------------------------------------------------------+
4750
4751
4752-Wgnu-empty-initializer
4753-----------------------
4754**Diagnostic text:**
4755
4756+-----------------------------------------------------------------------------+
4757|:warning:`warning:` |nbsp| :diagtext:`use of GNU empty initializer extension`|
4758+-----------------------------------------------------------------------------+
4759
4760
4761-Wgnu-empty-struct
4762------------------
4763**Diagnostic text:**
4764
4765+----------------------------------------------------+--------------------+--------------------------------------+
4766|:warning:`warning:` |nbsp| :diagtext:`empty` |nbsp| |+------------------+| |nbsp| :diagtext:`is a GNU extension`|
4767|                                                    ||:diagtext:`struct`||                                      |
4768|                                                    |+------------------+|                                      |
4769|                                                    ||:diagtext:`union` ||                                      |
4770|                                                    |+------------------+|                                      |
4771+----------------------------------------------------+--------------------+--------------------------------------+
4772
4773+----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------+
4774|:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in otherwise empty` |nbsp| |+---------------------+| |nbsp| :diagtext:`is a GNU extension`|
4775|                                                                                                                                  ||:diagtext:`struct`   ||                                      |
4776|                                                                                                                                  |+---------------------+|                                      |
4777|                                                                                                                                  ||:diagtext:`interface`||                                      |
4778|                                                                                                                                  |+---------------------+|                                      |
4779|                                                                                                                                  ||:diagtext:`union`    ||                                      |
4780|                                                                                                                                  |+---------------------+|                                      |
4781|                                                                                                                                  ||:diagtext:`class`    ||                                      |
4782|                                                                                                                                  |+---------------------+|                                      |
4783|                                                                                                                                  ||:diagtext:`enum`     ||                                      |
4784|                                                                                                                                  |+---------------------+|                                      |
4785+----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------+
4786
4787+---------------------------+--------------------+------------------------------------------------------------+
4788|:warning:`warning:` |nbsp| |+------------------+| |nbsp| :diagtext:`without named members is a GNU extension`|
4789|                           ||:diagtext:`struct`||                                                            |
4790|                           |+------------------+|                                                            |
4791|                           ||:diagtext:`union` ||                                                            |
4792|                           |+------------------+|                                                            |
4793+---------------------------+--------------------+------------------------------------------------------------+
4794
4795
4796-Wgnu-flexible-array-initializer
4797--------------------------------
4798**Diagnostic text:**
4799
4800+---------------------------------------------------------------------------------------+
4801|:warning:`warning:` |nbsp| :diagtext:`flexible array initialization is a GNU extension`|
4802+---------------------------------------------------------------------------------------+
4803
4804
4805-Wgnu-flexible-array-union-member
4806---------------------------------
4807**Diagnostic text:**
4808
4809+-------------------------------------------------------------------------------------------------------------------------------------+
4810|:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in a union is a GNU extension`|
4811+-------------------------------------------------------------------------------------------------------------------------------------+
4812
4813
4814-Wgnu-folding-constant
4815----------------------
4816**Diagnostic text:**
4817
4818+-------------------------------------------------------------------+----------------------+------------------------------------------------------------------------------------+
4819|:warning:`warning:` |nbsp| :diagtext:`expression is not an` |nbsp| |+--------------------+| |nbsp| :diagtext:`constant expression; folding it to a constant is a GNU extension`|
4820|                                                                   ||:diagtext:`integer` ||                                                                                    |
4821|                                                                   |+--------------------+|                                                                                    |
4822|                                                                   ||:diagtext:`integral`||                                                                                    |
4823|                                                                   |+--------------------+|                                                                                    |
4824+-------------------------------------------------------------------+----------------------+------------------------------------------------------------------------------------+
4825
4826+------------------------------------------------------------------------------------------------------------------------------------------------------------+
4827|: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`|
4828+------------------------------------------------------------------------------------------------------------------------------------------------------------+
4829
4830+-----------------------------------------------------------------------------------------------------+
4831|:warning:`warning:` |nbsp| :diagtext:`variable length array folded to constant array as an extension`|
4832+-----------------------------------------------------------------------------------------------------+
4833
4834
4835-Wgnu-imaginary-constant
4836------------------------
4837**Diagnostic text:**
4838
4839+------------------------------------------------------------------------------+
4840|:warning:`warning:` |nbsp| :diagtext:`imaginary constants are a GNU extension`|
4841+------------------------------------------------------------------------------+
4842
4843
4844-Wgnu-include-next
4845------------------
4846**Diagnostic text:**
4847
4848+-----------------------------------------------------------------------------+
4849|:warning:`warning:` |nbsp| :diagtext:`#include\_next is a language extension`|
4850+-----------------------------------------------------------------------------+
4851
4852
4853-Wgnu-label-as-value
4854--------------------
4855**Diagnostic text:**
4856
4857+----------------------------------------------------------------------------+
4858|:warning:`warning:` |nbsp| :diagtext:`use of GNU address-of-label extension`|
4859+----------------------------------------------------------------------------+
4860
4861+-------------------------------------------------------------------------+
4862|:warning:`warning:` |nbsp| :diagtext:`use of GNU indirect-goto extension`|
4863+-------------------------------------------------------------------------+
4864
4865
4866-Wgnu-redeclared-enum
4867---------------------
4868**Diagnostic text:**
4869
4870+------------------------------------------------------------------------------------------------------------------------------------------+
4871|:warning:`warning:` |nbsp| :diagtext:`redeclaration of already-defined enum` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a GNU extension`|
4872+------------------------------------------------------------------------------------------------------------------------------------------+
4873
4874
4875-Wgnu-statement-expression
4876--------------------------
4877**Diagnostic text:**
4878
4879+--------------------------------------------------------------------------------+
4880|:warning:`warning:` |nbsp| :diagtext:`use of GNU statement expression extension`|
4881+--------------------------------------------------------------------------------+
4882
4883
4884-Wgnu-static-float-init
4885-----------------------
4886This diagnostic is enabled by default.
4887
4888**Diagnostic text:**
4889
4890+--------------------------------------------------------------------------------------------------------------------------------------------------------+
4891|:warning:`warning:` |nbsp| :diagtext:`in-class initializer for static data member of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a GNU extension`|
4892+--------------------------------------------------------------------------------------------------------------------------------------------------------+
4893
4894
4895-Wgnu-string-literal-operator-template
4896--------------------------------------
4897This diagnostic is enabled by default.
4898
4899**Diagnostic text:**
4900
4901+--------------------------------------------------------------------------------------------+
4902|:warning:`warning:` |nbsp| :diagtext:`string literal operator templates are a GNU extension`|
4903+--------------------------------------------------------------------------------------------+
4904
4905
4906-Wgnu-union-cast
4907----------------
4908**Diagnostic text:**
4909
4910+----------------------------------------------------------------------------+
4911|:warning:`warning:` |nbsp| :diagtext:`cast to union type is a GNU extension`|
4912+----------------------------------------------------------------------------+
4913
4914
4915-Wgnu-variable-sized-type-not-at-end
4916------------------------------------
4917This diagnostic is enabled by default.
4918
4919**Diagnostic text:**
4920
4921+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4922|: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`|
4923+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4924
4925
4926-Wgnu-zero-line-directive
4927-------------------------
4928**Diagnostic text:**
4929
4930+--------------------------------------------------------------------------------------------+
4931|:warning:`warning:` |nbsp| :diagtext:`#line directive with zero argument is a GNU extension`|
4932+--------------------------------------------------------------------------------------------+
4933
4934
4935-Wgnu-zero-variadic-macro-arguments
4936-----------------------------------
4937**Diagnostic text:**
4938
4939+---------------------------------------------------------------------------------------------------------------+
4940|:warning:`warning:` |nbsp| :diagtext:`must specify at least one argument for '...' parameter of variadic macro`|
4941+---------------------------------------------------------------------------------------------------------------+
4942
4943+---------------------------------------------------------------------------------------------------+
4944|:warning:`warning:` |nbsp| :diagtext:`token pasting of ',' and \_\_VA\_ARGS\_\_ is a GNU extension`|
4945+---------------------------------------------------------------------------------------------------+
4946
4947
4948-Wheader-guard
4949--------------
4950This diagnostic is enabled by default.
4951
4952**Diagnostic text:**
4953
4954+---------------------------------------------------------------------------------------------------------------------------------------+
4955|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is used as a header guard here, followed by #define of a different macro`|
4956+---------------------------------------------------------------------------------------------------------------------------------------+
4957
4958
4959-Wheader-hygiene
4960----------------
4961**Diagnostic text:**
4962
4963+--------------------------------------------------------------------------------------------+
4964|:warning:`warning:` |nbsp| :diagtext:`using namespace directive in global context in header`|
4965+--------------------------------------------------------------------------------------------+
4966
4967
4968-Widiomatic-parentheses
4969-----------------------
4970**Diagnostic text:**
4971
4972+-----------------------------------------------------------------------------------------------------------+
4973|:warning:`warning:` |nbsp| :diagtext:`using the result of an assignment as a condition without parentheses`|
4974+-----------------------------------------------------------------------------------------------------------+
4975
4976
4977-Wignored-attributes
4978--------------------
4979This diagnostic is enabled by default.
4980
4981**Diagnostic text:**
4982
4983+--------------------------------------------------------------------------------------------------+
4984|:warning:`warning:` |nbsp| :diagtext:`'trivial\_abi' cannot be applied to` |nbsp| :placeholder:`A`|
4985+--------------------------------------------------------------------------------------------------+
4986
4987+---------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4988|: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`|
4989|                           ||:diagtext:`alias`||                                                                                                                                                                         |
4990|                           |+-----------------+|                                                                                                                                                                         |
4991|                           ||:diagtext:`ifunc`||                                                                                                                                                                         |
4992|                           |+-----------------+|                                                                                                                                                                         |
4993+---------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4994
4995+---------------------------+-------------------+----------------------------------------------------------------------------------------------------------------+----------------------+
4996|:warning:`warning:` |nbsp| |+-----------------+| |nbsp| :diagtext:`will not be in section '`:placeholder:`A`:diagtext:`' but in the same section as the` |nbsp| |+--------------------+|
4997|                           ||:diagtext:`alias`||                                                                                                                ||:diagtext:`aliasee` ||
4998|                           |+-----------------+|                                                                                                                |+--------------------+|
4999|                           ||:diagtext:`ifunc`||                                                                                                                ||:diagtext:`resolver`||
5000|                           |+-----------------+|                                                                                                                |+--------------------+|
5001+---------------------------+-------------------+----------------------------------------------------------------------------------------------------------------+----------------------+
5002
5003+----------------------------------------------------------------------+------------------------+-------------------------------------+
5004|:warning:`warning:` |nbsp| :diagtext:`'abi\_tag' attribute on` |nbsp| |+----------------------+| |nbsp| :diagtext:`namespace ignored`|
5005|                                                                      ||:diagtext:`non-inline`||                                     |
5006|                                                                      |+----------------------+|                                     |
5007|                                                                      ||:diagtext:`anonymous` ||                                     |
5008|                                                                      |+----------------------+|                                     |
5009+----------------------------------------------------------------------+------------------------+-------------------------------------+
5010
5011+-----------------------------------------------------------------------------------------------------------------------+
5012|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`after definition is ignored`|
5013+-----------------------------------------------------------------------------------------------------------------------+
5014
5015+---------------------------------------------------------------------------------------------------------+
5016|:warning:`warning:` |nbsp| :diagtext:`'dllexport' attribute ignored on explicit instantiation definition`|
5017+---------------------------------------------------------------------------------------------------------+
5018
5019+--------------------------------------------------------------------------------------------------------------------------------+
5020|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute can only be applied to instance variables or properties`|
5021+--------------------------------------------------------------------------------------------------------------------------------+
5022
5023+--------------------------------------------------------------------------------+
5024|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored`|
5025+--------------------------------------------------------------------------------+
5026
5027+--------------------------------------------------------------------------------------------------------------------------+
5028|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored for field of type` |nbsp| :placeholder:`B`|
5029+--------------------------------------------------------------------------------------------------------------------------+
5030
5031+---------------------------------------------------------------------------------------------------+
5032|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored on inline function`|
5033+---------------------------------------------------------------------------------------------------+
5034
5035+-------------------------------------------------------------------------------------------------------------------+
5036|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' attribute cannot be specified on a definition`|
5037+-------------------------------------------------------------------------------------------------------------------+
5038
5039+------------------------------------------------------------------------------------------------------------------------------------------------+
5040|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it is not attached to a declaration`|
5041+------------------------------------------------------------------------------------------------------------------------------------------------+
5042
5043+--------------------------------------------------------------------------------------------------------+
5044|:warning:`warning:` |nbsp| :diagtext:`'nonnull' attribute applied to function with no pointer arguments`|
5045+--------------------------------------------------------------------------------------------------------+
5046
5047+-----------------------------------------------------------------------------------------------------+
5048|:warning:`warning:` |nbsp| :diagtext:`'nonnull' attribute when used on parameters takes no arguments`|
5049+-----------------------------------------------------------------------------------------------------+
5050
5051+--------------------------------------------------------------------------------------------------+
5052|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored when parsing type`|
5053+--------------------------------------------------------------------------------------------------+
5054
5055+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
5056|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to a pointer or reference (`:placeholder:`B` |nbsp| :diagtext:`is invalid)`|
5057+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
5058
5059+----------------------------------------------------------------------------------------+------------------------------+-------------------------------------+
5060|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to`|+----------------------------+| |nbsp| :diagtext:`pointer arguments`|
5061|                                                                                        ||                            ||                                     |
5062|                                                                                        |+----------------------------+|                                     |
5063|                                                                                        || |nbsp| :diagtext:`constant`||                                     |
5064|                                                                                        |+----------------------------+|                                     |
5065+----------------------------------------------------------------------------------------+------------------------------+-------------------------------------+
5066
5067+------------------------------------------------------------------------------------+
5068|:warning:`warning:` |nbsp| :diagtext:`attribute declaration must precede definition`|
5069+------------------------------------------------------------------------------------+
5070
5071+------------------------------------------------------------------------------------------------------------------------+
5072|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to return values that are pointers`|
5073+------------------------------------------------------------------------------------------------------------------------+
5074
5075+--------------------------------------------------------------------------------------------------------------------------------------+
5076|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to return values that are pointers or references`|
5077+--------------------------------------------------------------------------------------------------------------------------------------+
5078
5079+------------------------------------------------------------------------------------+
5080|:warning:`warning:` |nbsp| :diagtext:`'sentinel' attribute requires named arguments`|
5081+------------------------------------------------------------------------------------+
5082
5083+-----------------------------------------------------------------------------------------------+-----------------------+
5084|:warning:`warning:` |nbsp| :diagtext:`'sentinel' attribute only supported for variadic` |nbsp| |+---------------------+|
5085|                                                                                               ||:diagtext:`functions`||
5086|                                                                                               |+---------------------+|
5087|                                                                                               ||:diagtext:`blocks`   ||
5088|                                                                                               |+---------------------+|
5089+-----------------------------------------------------------------------------------------------+-----------------------+
5090
5091+------------------------------------------------------------------------------------------------------------------------+
5092|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute argument not supported:` |nbsp| :placeholder:`B`|
5093+------------------------------------------------------------------------------------------------------------------------+
5094
5095+---------------------------------------------------------------------------------+
5096|:warning:`warning:` |nbsp| :diagtext:`unknown visibility` |nbsp| :placeholder:`A`|
5097+---------------------------------------------------------------------------------+
5098
5099+------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------+
5100|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be applied to` |nbsp| |+------------------------------+| |nbsp| :diagtext:`without return value`|
5101|                                                                                                                        ||:diagtext:`functions`         ||                                        |
5102|                                                                                                                        |+------------------------------+|                                        |
5103|                                                                                                                        ||:diagtext:`Objective-C method`||                                        |
5104|                                                                                                                        |+------------------------------+|                                        |
5105+------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------+
5106
5107+----------------------------------------------------------------------------------------------------+
5108|:warning:`warning:` |nbsp| :diagtext:`\_\_weak attribute cannot be specified on a field declaration`|
5109+----------------------------------------------------------------------------------------------------+
5110
5111+------------------------------------------------------------------------------------------------------------------------------+
5112|:warning:`warning:` |nbsp| :diagtext:`\_\_weak attribute cannot be specified on an automatic variable when ARC is not enabled`|
5113+------------------------------------------------------------------------------------------------------------------------------+
5114
5115+------------------------------------------------------------------------------------------------+---------------------------------------------------+
5116|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+-------------------------------------------------+|
5117|                                                                                                ||:diagtext:`functions`                            ||
5118|                                                                                                |+-------------------------------------------------+|
5119|                                                                                                ||:diagtext:`unions`                               ||
5120|                                                                                                |+-------------------------------------------------+|
5121|                                                                                                ||:diagtext:`variables and functions`              ||
5122|                                                                                                |+-------------------------------------------------+|
5123|                                                                                                ||:diagtext:`functions and methods`                ||
5124|                                                                                                |+-------------------------------------------------+|
5125|                                                                                                ||:diagtext:`functions, methods and blocks`        ||
5126|                                                                                                |+-------------------------------------------------+|
5127|                                                                                                ||:diagtext:`functions, methods, and parameters`   ||
5128|                                                                                                |+-------------------------------------------------+|
5129|                                                                                                ||:diagtext:`variables`                            ||
5130|                                                                                                |+-------------------------------------------------+|
5131|                                                                                                ||:diagtext:`variables and fields`                 ||
5132|                                                                                                |+-------------------------------------------------+|
5133|                                                                                                ||:diagtext:`variables, data members and tag types`||
5134|                                                                                                |+-------------------------------------------------+|
5135|                                                                                                ||:diagtext:`types and namespaces`                 ||
5136|                                                                                                |+-------------------------------------------------+|
5137|                                                                                                ||:diagtext:`variables, functions and classes`     ||
5138|                                                                                                |+-------------------------------------------------+|
5139|                                                                                                ||:diagtext:`kernel functions`                     ||
5140|                                                                                                |+-------------------------------------------------+|
5141|                                                                                                ||:diagtext:`non-K&R-style functions`              ||
5142|                                                                                                |+-------------------------------------------------+|
5143+------------------------------------------------------------------------------------------------+---------------------------------------------------+
5144
5145+----------------------------------------------------------------------------------------------------------------+
5146|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| :placeholder:`B`|
5147+----------------------------------------------------------------------------------------------------------------+
5148
5149+--------------------------------------------------------------------------------------------------------------------------------------------------------+
5150|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it cannot be applied to omitted return type`|
5151+--------------------------------------------------------------------------------------------------------------------------------------------------------+
5152
5153+----------------------------------------------------------------------------------------------------------+---------------------------------------+
5154|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`calling convention is not supported` |nbsp| |+-------------------------------------+|
5155|                                                                                                          ||:diagtext:`for this target`          ||
5156|                                                                                                          |+-------------------------------------+|
5157|                                                                                                          ||:diagtext:`on variadic function`     ||
5158|                                                                                                          |+-------------------------------------+|
5159|                                                                                                          ||:diagtext:`on constructor/destructor`||
5160|                                                                                                          |+-------------------------------------+|
5161|                                                                                                          ||:diagtext:`on builtin function`      ||
5162|                                                                                                          |+-------------------------------------+|
5163+----------------------------------------------------------------------------------------------------------+---------------------------------------+
5164
5165+-------------------------------------------------------------------------------------------------------------------------------------------+
5166|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it cannot be applied to a type`|
5167+-------------------------------------------------------------------------------------------------------------------------------------------+
5168
5169+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5170|:warning:`warning:` |nbsp| :diagtext:`ignoring \_\_declspec(allocator) because the function return type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not a pointer or reference type`|
5171+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5172
5173+------------------------------------------------------------------------------------------------------------------------+-----------------------+----------------------------------------------------+
5174|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is ignored, place it after "`|+---------------------+|:diagtext:`" to apply attribute to type declaration`|
5175|                                                                                                                        ||:diagtext:`class`    ||                                                    |
5176|                                                                                                                        |+---------------------+|                                                    |
5177|                                                                                                                        ||:diagtext:`struct`   ||                                                    |
5178|                                                                                                                        |+---------------------+|                                                    |
5179|                                                                                                                        ||:diagtext:`interface`||                                                    |
5180|                                                                                                                        |+---------------------+|                                                    |
5181|                                                                                                                        ||:diagtext:`union`    ||                                                    |
5182|                                                                                                                        |+---------------------+|                                                    |
5183|                                                                                                                        ||:diagtext:`enum`     ||                                                    |
5184|                                                                                                                        |+---------------------+|                                                    |
5185+------------------------------------------------------------------------------------------------------------------------+-----------------------+----------------------------------------------------+
5186
5187+--------------------------------------------------------------------------------------------+
5188|:warning:`warning:` |nbsp| :diagtext:`'deprecated' attribute on anonymous namespace ignored`|
5189+--------------------------------------------------------------------------------------------+
5190
5191+----------------------------------------------------------------------------------------------------------------------------------------------+
5192|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`redeclared inline;` |nbsp| :placeholder:`B` |nbsp| :diagtext:`attribute ignored`|
5193+----------------------------------------------------------------------------------------------------------------------------------------------+
5194
5195+----------------------------------------------------------------------------------------------------------------------------------------+
5196|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is already applied with different parameters`|
5197+----------------------------------------------------------------------------------------------------------------------------------------+
5198
5199+--------------------------------------------------------------------------------------------------------------+
5200|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is already applied`|
5201+--------------------------------------------------------------------------------------------------------------+
5202
5203+------------------------------------------------------------------------------------------------+
5204|:warning:`warning:` |nbsp| :diagtext:`Objective-C GC does not allow weak variables on the stack`|
5205+------------------------------------------------------------------------------------------------+
5206
5207+-------------------------------------------------------------------------------------------------------------------------+
5208|:warning:`warning:` |nbsp| :diagtext:`'gnu\_inline' attribute requires function to be marked 'inline', attribute ignored`|
5209+-------------------------------------------------------------------------------------------------------------------------+
5210
5211+---------------------------------------------------------------------------+------------------------------------+
5212|:warning:`warning:` |nbsp| :diagtext:`inheritance model ignored on` |nbsp| |+----------------------------------+|
5213|                                                                           ||:diagtext:`primary template`      ||
5214|                                                                           |+----------------------------------+|
5215|                                                                           ||:diagtext:`partial specialization`||
5216|                                                                           |+----------------------------------+|
5217+---------------------------------------------------------------------------+------------------------------------+
5218
5219+------------------------------------------------------------------------------------------------------------------+-----------------------------------+
5220|:warning:`warning:` |nbsp| :diagtext:`'objc\_externally\_retained' can only be applied to local variables` |nbsp| |+---------------------------------+|
5221|                                                                                                                  ||:diagtext:`of retainable type`   ||
5222|                                                                                                                  |+---------------------------------+|
5223|                                                                                                                  ||:diagtext:`with strong ownership`||
5224|                                                                                                                  |+---------------------------------+|
5225+------------------------------------------------------------------------------------------------------------------+-----------------------------------+
5226
5227+--------------------------------------------------------------------------------------------------------------+
5228|:warning:`warning:` |nbsp| :diagtext:`'internal\_linkage' attribute on a non-static local variable is ignored`|
5229+--------------------------------------------------------------------------------------------------------------+
5230
5231+---------------------------+--------------------+-------------------------------------------------------------------------------------+----------------------------------+
5232|:warning:`warning:` |nbsp| |+------------------+| |nbsp| :diagtext:`'interrupt' attribute only applies to functions that have` |nbsp| |+--------------------------------+|
5233|                           ||:diagtext:`MIPS`  ||                                                                                     ||:diagtext:`no parameters`       ||
5234|                           |+------------------+|                                                                                     |+--------------------------------+|
5235|                           ||:diagtext:`MSP430`||                                                                                     ||:diagtext:`a 'void' return type`||
5236|                           |+------------------+|                                                                                     |+--------------------------------+|
5237|                           ||:diagtext:`RISC-V`||                                                                                     |                                  |
5238|                           |+------------------+|                                                                                     |                                  |
5239+---------------------------+--------------------+-------------------------------------------------------------------------------------+----------------------------------+
5240
5241+--------------------------------------------------------------------------------------------+
5242|:warning:`warning:` |nbsp| :diagtext:`qualifiers after comma in declarator list are ignored`|
5243+--------------------------------------------------------------------------------------------+
5244
5245+------------------------------------------------------------------------------------------------------------------------------+
5246|:warning:`warning:` |nbsp| :diagtext:`'mig\_server\_routine' attribute only applies to routines that return a kern\_return\_t`|
5247+------------------------------------------------------------------------------------------------------------------------------+
5248
5249+---------------------------------------------------------------------------------------+
5250|:warning:`warning:` |nbsp| :diagtext:`unknown attribute '`:placeholder:`A`:diagtext:`'`|
5251+---------------------------------------------------------------------------------------+
5252
5253+-------------------------------------------------------------------------------------------------------------------+
5254|:warning:`warning:` |nbsp| :diagtext:`'nocf\_check' attribute ignored; use -fcf-protection to enable the attribute`|
5255+-------------------------------------------------------------------------------------------------------------------+
5256
5257+---------------------------------------------------------------------------------------------+
5258|:warning:`warning:` |nbsp| :diagtext:`'noderef' can only be used on an array or pointer type`|
5259+---------------------------------------------------------------------------------------------+
5260
5261+--------------------------------------------------------------------------------------------------------------------+
5262|:warning:`warning:` |nbsp| :diagtext:`'nothrow' attribute conflicts with exception specification; attribute ignored`|
5263+--------------------------------------------------------------------------------------------------------------------+
5264
5265+------------------------------------------------------------------------------------------------+---------------------------------------------------+------------------------------+
5266|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+-------------------------------------------------+| |nbsp| :diagtext:`parameters`|
5267|                                                                                                ||:diagtext:`Objective-C object`                   ||                              |
5268|                                                                                                |+-------------------------------------------------+|                              |
5269|                                                                                                ||:diagtext:`pointer`                              ||                              |
5270|                                                                                                |+-------------------------------------------------+|                              |
5271|                                                                                                ||:diagtext:`pointer-to-CF-pointer`                ||                              |
5272|                                                                                                |+-------------------------------------------------+|                              |
5273|                                                                                                ||:diagtext:`pointer/reference-to-OSObject-pointer`||                              |
5274|                                                                                                |+-------------------------------------------------+|                              |
5275+------------------------------------------------------------------------------------------------+---------------------------------------------------+------------------------------+
5276
5277+------------------------------------------------------------------------------------------------+------------------------+---------------------------------------+--------------------------------------+
5278|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+----------------------+| |nbsp| :diagtext:`that return` |nbsp| |+------------------------------------+|
5279|                                                                                                ||:diagtext:`functions` ||                                       ||:diagtext:`an Objective-C object`   ||
5280|                                                                                                |+----------------------+|                                       |+------------------------------------+|
5281|                                                                                                ||:diagtext:`methods`   ||                                       ||:diagtext:`a pointer`               ||
5282|                                                                                                |+----------------------+|                                       |+------------------------------------+|
5283|                                                                                                ||:diagtext:`properties`||                                       ||:diagtext:`a non-retainable pointer`||
5284|                                                                                                |+----------------------+|                                       |+------------------------------------+|
5285+------------------------------------------------------------------------------------------------+------------------------+---------------------------------------+--------------------------------------+
5286
5287+--------------------------------------------------------------------------------------------------------------------------------------------+
5288|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is deprecated and ignored in OpenCL version` |nbsp| :placeholder:`B`|
5289+--------------------------------------------------------------------------------------------------------------------------------------------+
5290
5291+----------------------------------------------------------------------------+
5292|:warning:`warning:` |nbsp| :diagtext:`repeated RISC-V 'interrupt' attribute`|
5293+----------------------------------------------------------------------------+
5294
5295+---------------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------------------------------------------------------+
5296|: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`|
5297|                           ||:diagtext:`alignment`||                                                                                                                                             ||:diagtext:`alignment`||                                                                                                 |
5298|                           |+---------------------+|                                                                                                                                             |+---------------------+|                                                                                                 |
5299|                           ||:diagtext:`size`     ||                                                                                                                                             ||:diagtext:`size`     ||                                                                                                 |
5300|                           |+---------------------+|                                                                                                                                             |+---------------------+|                                                                                                 |
5301+---------------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------------------------------------------------------+
5302
5303+---------------------------------------------------------------------------------------------+----------------------------+--------------------------------------------------------------------------------------------------+
5304|:warning:`warning:` |nbsp| :diagtext:`first field of a transparent union cannot have` |nbsp| |+--------------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`B`:diagtext:`; transparent\_union attribute ignored`|
5305|                                                                                             ||:diagtext:`floating point`||                                                                                                  |
5306|                                                                                             |+--------------------------+|                                                                                                  |
5307|                                                                                             ||:diagtext:`vector`        ||                                                                                                  |
5308|                                                                                             |+--------------------------+|                                                                                                  |
5309+---------------------------------------------------------------------------------------------+----------------------------+--------------------------------------------------------------------------------------------------+
5310
5311+--------------------------------------------------------------------------------------------------------------------------------+
5312|:warning:`warning:` |nbsp| :diagtext:`transparent\_union attribute can only be applied to a union definition; attribute ignored`|
5313+--------------------------------------------------------------------------------------------------------------------------------+
5314
5315+-----------------------------------------------------------------------------------------------------------------------------------------+
5316|:warning:`warning:` |nbsp| :diagtext:`transparent union definition must contain at least one field; transparent\_union attribute ignored`|
5317+-----------------------------------------------------------------------------------------------------------------------------------------+
5318
5319+---------------------------------------------------------------------------------------------+-------------------------------------------------+---------------------------------------------------------------+
5320|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' only applies to` |nbsp| |+-----------------------------------------------+| |nbsp| :diagtext:`types; type here is` |nbsp| :placeholder:`C`|
5321|                                                                                             ||:diagtext:`function`                           ||                                                               |
5322|                                                                                             |+-----------------------------------------------+|                                                               |
5323|                                                                                             ||:diagtext:`pointer`                            ||                                                               |
5324|                                                                                             |+-----------------------------------------------+|                                                               |
5325|                                                                                             ||:diagtext:`Objective-C object or block pointer`||                                                               |
5326|                                                                                             |+-----------------------------------------------+|                                                               |
5327+---------------------------------------------------------------------------------------------+-------------------------------------------------+---------------------------------------------------------------+
5328
5329+-------------------------------------------------------------------------------------------------------------------------+
5330|:warning:`warning:` |nbsp| :diagtext:`\_\_declspec attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not supported`|
5331+-------------------------------------------------------------------------------------------------------------------------+
5332
5333+---------------------------+-------------------------+----------------------------------+---------------------------------------------------------------------------------------------------------------+
5334|:warning:`warning:` |nbsp| |+-----------------------+|+--------------------------------+| |nbsp| :diagtext:`'`:placeholder:`C`:diagtext:`' in the 'target' attribute string; 'target' attribute ignored`|
5335|                           ||:diagtext:`unsupported`|||                                ||                                                                                                               |
5336|                           |+-----------------------+|+--------------------------------+|                                                                                                               |
5337|                           ||:diagtext:`duplicate`  ||| |nbsp| :diagtext:`architecture`||                                                                                                               |
5338|                           |+-----------------------+|+--------------------------------+|                                                                                                               |
5339+---------------------------+-------------------------+----------------------------------+---------------------------------------------------------------------------------------------------------------+
5340
5341+----------------------------------------------------------------------------------------------------------------------------------------------------+
5342|:warning:`warning:` |nbsp| :diagtext:`'\_\_clang\_\_' is a predefined macro name, not an attribute scope specifier; did you mean '\_Clang' instead?`|
5343+----------------------------------------------------------------------------------------------------------------------------------------------------+
5344
5345
5346-Wignored-optimization-argument
5347-------------------------------
5348This diagnostic is enabled by default.
5349
5350**Diagnostic text:**
5351
5352+--------------------------------------------------------------------------------------------------------------------------------------------------+
5353|:warning:`warning:` |nbsp| :diagtext:`optimization flag '`:placeholder:`A`:diagtext:`' is not supported for target '`:placeholder:`B`:diagtext:`'`|
5354+--------------------------------------------------------------------------------------------------------------------------------------------------+
5355
5356+--------------------------------------------------------------------------------------------------------+
5357|:warning:`warning:` |nbsp| :diagtext:`optimization flag '`:placeholder:`A`:diagtext:`' is not supported`|
5358+--------------------------------------------------------------------------------------------------------+
5359
5360
5361-Wignored-pragma-intrinsic
5362--------------------------
5363This diagnostic is enabled by default.
5364
5365**Diagnostic text:**
5366
5367+------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+
5368|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not a recognized builtin`|+----------------------------------------------------------------------------+|
5369|                                                                                          ||                                                                            ||
5370|                                                                                          |+----------------------------------------------------------------------------+|
5371|                                                                                          ||:diagtext:`; consider including <intrin.h> to access non-builtin intrinsics`||
5372|                                                                                          |+----------------------------------------------------------------------------+|
5373+------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+
5374
5375
5376-Wignored-pragma-optimize
5377-------------------------
5378This diagnostic is enabled by default.
5379
5380**Diagnostic text:**
5381
5382+--------------------------------------------------------------------------+
5383|:warning:`warning:` |nbsp| :diagtext:`'#pragma optimize' is not supported`|
5384+--------------------------------------------------------------------------+
5385
5386
5387-Wignored-pragmas
5388-----------------
5389This diagnostic is enabled by default.
5390
5391Also controls `-Wignored-pragma-intrinsic`_, `-Wignored-pragma-optimize`_.
5392
5393**Diagnostic text:**
5394
5395+------------------------------------------------------------------------------+---------------------------+-----------------------+
5396|:warning:`warning:` |nbsp| :diagtext:`expected '=' following '#pragma` |nbsp| |+-------------------------+|:diagtext:`' - ignored`|
5397|                                                                              ||:diagtext:`align`        ||                       |
5398|                                                                              |+-------------------------+|                       |
5399|                                                                              ||:diagtext:`options align`||                       |
5400|                                                                              |+-------------------------+|                       |
5401+------------------------------------------------------------------------------+---------------------------+-----------------------+
5402
5403+-----------------------------------------------------------------------------------+---------------------------+-----------------------+
5404|:warning:`warning:` |nbsp| :diagtext:`invalid alignment option in '#pragma` |nbsp| |+-------------------------+|:diagtext:`' - ignored`|
5405|                                                                                   ||:diagtext:`align`        ||                       |
5406|                                                                                   |+-------------------------+|                       |
5407|                                                                                   ||:diagtext:`options align`||                       |
5408|                                                                                   |+-------------------------+|                       |
5409+-----------------------------------------------------------------------------------+---------------------------+-----------------------+
5410
5411+-----------------------------------------------------------------------------------------------------------+
5412|:warning:`warning:` |nbsp| :diagtext:`OpenCL extension end directive mismatches begin directive - ignoring`|
5413+-----------------------------------------------------------------------------------------------------------+
5414
5415+----------------------------------------------------------------------------------------------------+
5416|:warning:`warning:` |nbsp| :diagtext:`'#pragma comment` |nbsp| :placeholder:`A`:diagtext:`' ignored`|
5417+----------------------------------------------------------------------------------------------------+
5418
5419+-------------------------------------------------------------------------------------------------------+
5420|:warning:`warning:` |nbsp| :diagtext:`missing argument to debug command '`:placeholder:`A`:diagtext:`'`|
5421+-------------------------------------------------------------------------------------------------------+
5422
5423+----------------------------------------------------------------------------------------------+
5424|:warning:`warning:` |nbsp| :diagtext:`unexpected debug command '`:placeholder:`A`:diagtext:`'`|
5425+----------------------------------------------------------------------------------------------+
5426
5427+------------------------------------------------------------------------------------+
5428|:warning:`warning:` |nbsp| :diagtext:`unknown module '`:placeholder:`A`:diagtext:`'`|
5429+------------------------------------------------------------------------------------+
5430
5431+------------------------------------------------------------------------------------------------------------------------+
5432|:warning:`warning:` |nbsp| :diagtext:`expected action or ')' in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
5433+------------------------------------------------------------------------------------------------------------------------+
5434
5435+--------------------------------------------------------------------------------------------------------------+
5436|:warning:`warning:` |nbsp| :diagtext:`missing ':' after` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`|
5437+--------------------------------------------------------------------------------------------------------------+
5438
5439+---------------------------------------------------------------------------------------------------------------------+
5440|:warning:`warning:` |nbsp| :diagtext:`missing ':' or ')' after` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`|
5441+---------------------------------------------------------------------------------------------------------------------+
5442
5443+----------------------------------------------------------------------------------------------------+
5444|:warning:`warning:` |nbsp| :diagtext:`expected ',' in '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`|
5445+----------------------------------------------------------------------------------------------------+
5446
5447+---------------------------------------------------------------------------------------------------------------------+
5448|:warning:`warning:` |nbsp| :diagtext:`expected identifier in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
5449+---------------------------------------------------------------------------------------------------------------------+
5450
5451+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5452|:warning:`warning:` |nbsp| :diagtext:`expected 'compiler', 'lib', 'user', or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
5453+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5454
5455+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5456|: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`|
5457+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5458
5459+-----------------------------------------------------------------------------------------------------------------+
5460|:warning:`warning:` |nbsp| :diagtext:`missing '(' after '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignoring`|
5461+-----------------------------------------------------------------------------------------------------------------+
5462
5463+------------------------------------------------------------------------------------------------------------------------+
5464|:warning:`warning:` |nbsp| :diagtext:`expected non-wide string literal in '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`|
5465+------------------------------------------------------------------------------------------------------------------------+
5466
5467+-------------------------------------------------------+---------------------------------------------------+------------------------------+
5468|:warning:`warning:` |nbsp| :diagtext:`expected` |nbsp| |+-------------------------------------------------+| |nbsp| :diagtext:`- ignoring`|
5469|                                                       ||:diagtext:`'enable', 'disable', 'begin' or 'end'`||                              |
5470|                                                       |+-------------------------------------------------+|                              |
5471|                                                       ||:diagtext:`'disable'`                            ||                              |
5472|                                                       |+-------------------------------------------------+|                              |
5473+-------------------------------------------------------+---------------------------------------------------+------------------------------+
5474
5475+-----------------------------------------------------------------------------------------------------------+
5476|:warning:`warning:` |nbsp| :diagtext:`expected ')' or ',' in '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`|
5477+-----------------------------------------------------------------------------------------------------------+
5478
5479+-----------------------------------------------------------------------------------------------------------------+
5480|:warning:`warning:` |nbsp| :diagtext:`missing ')' after '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignoring`|
5481+-----------------------------------------------------------------------------------------------------------------+
5482
5483+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
5484|:warning:`warning:` |nbsp| :diagtext:`expected a stack label or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
5485+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
5486
5487+------------------------------------------------------------------------------------------------------------------------------------------------+
5488|:warning:`warning:` |nbsp| :diagtext:`expected a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
5489+------------------------------------------------------------------------------------------------------------------------------------------------+
5490
5491+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
5492|:warning:`warning:` |nbsp| :diagtext:`expected push, pop or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
5493+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
5494
5495+--------------------------------------------------------------------------------------------------------------------------+
5496|:warning:`warning:` |nbsp| :diagtext:`expected string literal in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignoring`|
5497+--------------------------------------------------------------------------------------------------------------------------+
5498
5499+---------------------------------------------------------------------------------------------------------------------+
5500|:warning:`warning:` |nbsp| :diagtext:`extra tokens at end of '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
5501+---------------------------------------------------------------------------------------------------------------------+
5502
5503+----------------------------------------------------------------------------------------------------------+
5504|:warning:`warning:` |nbsp| :diagtext:`incorrect use of #pragma clang force\_cuda\_host\_device begin\|end`|
5505+----------------------------------------------------------------------------------------------------------+
5506
5507+-------------------------------------------------------------------------------------------------------------------+
5508|:warning:`warning:` |nbsp| :diagtext:`'#pragma init\_seg' is only supported when targeting a Microsoft environment`|
5509+-------------------------------------------------------------------------------------------------------------------+
5510
5511+-----------------------------------------------------------------------------------------------------------------+
5512|:warning:`warning:` |nbsp| :diagtext:`unknown action for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
5513+-----------------------------------------------------------------------------------------------------------------+
5514
5515+------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+
5516|:warning:`warning:` |nbsp| :diagtext:`unexpected argument '`:placeholder:`A`:diagtext:`' to '#pragma` |nbsp| :placeholder:`B`:diagtext:`'`|+------------------------------------------------+|
5517|                                                                                                                                          ||                                                ||
5518|                                                                                                                                          |+------------------------------------------------+|
5519|                                                                                                                                          ||+----------------------------------------------+||
5520|                                                                                                                                          |||:diagtext:`; expected` |nbsp| :placeholder:`D`|||
5521|                                                                                                                                          ||+----------------------------------------------+||
5522|                                                                                                                                          |+------------------------------------------------+|
5523+------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+
5524
5525+------------------------------------------------------------------------------------------------------------------------------------------------+
5526|:warning:`warning:` |nbsp| :diagtext:`unknown action '`:placeholder:`B`:diagtext:`' for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
5527+------------------------------------------------------------------------------------------------------------------------------------------------+
5528
5529+--------------------------------------------------------------------------------------------------------+--------------------------------------------------+
5530|:warning:`warning:` |nbsp| :diagtext:`missing argument to '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`|+------------------------------------------------+|
5531|                                                                                                        ||                                                ||
5532|                                                                                                        |+------------------------------------------------+|
5533|                                                                                                        ||+----------------------------------------------+||
5534|                                                                                                        |||:diagtext:`; expected` |nbsp| :placeholder:`C`|||
5535|                                                                                                        ||+----------------------------------------------+||
5536|                                                                                                        |+------------------------------------------------+|
5537+--------------------------------------------------------------------------------------------------------+--------------------------------------------------+
5538
5539+----------------------------------------------------------------------------------------------+
5540|:warning:`warning:` |nbsp| :diagtext:`incorrect use of '#pragma ms\_struct on\|off' - ignored`|
5541+----------------------------------------------------------------------------------------------+
5542
5543+--------------------------------------------------------------------------------------------------+
5544|:warning:`warning:` |nbsp| :diagtext:`#pragma options align=reset failed:` |nbsp| :placeholder:`A`|
5545+--------------------------------------------------------------------------------------------------+
5546
5547+---------------------------------------------------------------------------------------------+
5548|:warning:`warning:` |nbsp| :diagtext:`expected 'align' following '#pragma options' - ignored`|
5549+---------------------------------------------------------------------------------------------+
5550
5551+--------------------------------------------------------------------------------------------------------+
5552|:warning:`warning:` |nbsp| :diagtext:`expected #pragma pack parameter to be '1', '2', '4', '8', or '16'`|
5553+--------------------------------------------------------------------------------------------------------+
5554
5555+-------------------------------------------------------------------------------------------------+
5556|:warning:`warning:` |nbsp| :diagtext:`expected integer or identifier in '#pragma pack' - ignored`|
5557+-------------------------------------------------------------------------------------------------+
5558
5559+----------------------------------------------------------------------------------------------------------------------------+
5560|:warning:`warning:` |nbsp| :diagtext:`#pragma` |nbsp| :placeholder:`A`:diagtext:`(pop, ...) failed:` |nbsp| :placeholder:`B`|
5561+----------------------------------------------------------------------------------------------------------------------------+
5562
5563+------------------------------------------------------------------------------------------------------------------------------+
5564|:warning:`warning:` |nbsp| :diagtext:`pragma pop\_macro could not pop '`:placeholder:`A`:diagtext:`', no matching push\_macro`|
5565+------------------------------------------------------------------------------------------------------------------------------+
5566
5567+---------------------------------------------------------------------------------------------------------------------+
5568|:warning:`warning:` |nbsp| :diagtext:`unknown OpenCL extension` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`|
5569+---------------------------------------------------------------------------------------------------------------------+
5570
5571+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
5572|:warning:`warning:` |nbsp| :diagtext:`known but unsupported action '`:placeholder:`B`:diagtext:`' for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
5573+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
5574
5575+-------------------------------------------------------------------------------------------------------------------------+
5576|:warning:`warning:` |nbsp| :diagtext:`unsupported OpenCL extension` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`|
5577+-------------------------------------------------------------------------------------------------------------------------+
5578
5579+-----------------------------------------------------------------------------------------------+
5580|:warning:`warning:` |nbsp| :diagtext:`expected '#pragma unused' argument to be a variable name`|
5581+-----------------------------------------------------------------------------------------------+
5582
5583+------------------------------------------------------------------------------------------+
5584|:warning:`warning:` |nbsp| :diagtext:`only variables can be arguments to '#pragma unused'`|
5585+------------------------------------------------------------------------------------------+
5586
5587+----------------------------------------------------------------------------------------------------------------------------------------------+
5588|:warning:`warning:` |nbsp| :diagtext:`undeclared variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`used as an argument for '#pragma unused'`|
5589+----------------------------------------------------------------------------------------------------------------------------------------------+
5590
5591
5592-Wignored-qualifiers
5593--------------------
5594Some of the diagnostics controlled by this flag are enabled by default.
5595
5596**Diagnostic text:**
5597
5598+--------------------------------------------------+------------------------------------+----------------------------------------------------------------+
5599|:warning:`warning:` |nbsp| :diagtext:`ARC` |nbsp| |+----------------------------------+| |nbsp| :diagtext:`lifetime qualifier on return type is ignored`|
5600|                                                  ||:diagtext:`unused`                ||                                                                |
5601|                                                  |+----------------------------------+|                                                                |
5602|                                                  ||:diagtext:`\_\_unsafe\_unretained`||                                                                |
5603|                                                  |+----------------------------------+|                                                                |
5604|                                                  ||:diagtext:`\_\_strong`            ||                                                                |
5605|                                                  |+----------------------------------+|                                                                |
5606|                                                  ||:diagtext:`\_\_weak`              ||                                                                |
5607|                                                  |+----------------------------------+|                                                                |
5608|                                                  ||:diagtext:`\_\_autoreleasing`     ||                                                                |
5609|                                                  |+----------------------------------+|                                                                |
5610+--------------------------------------------------+------------------------------------+----------------------------------------------------------------+
5611
5612+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
5613|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on omitted return type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`|
5614+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
5615
5616+------------------------------------------------------------------------------------+---------------+------------------------------------------+------------------+-----------------------------+
5617|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' type qualifier`|+-------------+| |nbsp| :diagtext:`on return type` |nbsp| |+----------------+| |nbsp| :diagtext:`no effect`|
5618|                                                                                    ||             ||                                          ||:diagtext:`has` ||                             |
5619|                                                                                    |+-------------+|                                          |+----------------+|                             |
5620|                                                                                    ||:diagtext:`s`||                                          ||:diagtext:`have`||                             |
5621|                                                                                    |+-------------+|                                          |+----------------+|                             |
5622+------------------------------------------------------------------------------------+---------------+------------------------------------------+------------------+-----------------------------+
5623
5624+---------------------------------------------------------------------------------------------------------------------------------------------------------+
5625|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on function type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`|
5626+---------------------------------------------------------------------------------------------------------------------------------------------------------+
5627
5628+----------------------------------------------------------------------------------------------------------------------------------------------------------+
5629|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on reference type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`|
5630+----------------------------------------------------------------------------------------------------------------------------------------------------------+
5631
5632
5633-Wimplicit
5634----------
5635Some of the diagnostics controlled by this flag are enabled by default.
5636
5637Controls `-Wimplicit-function-declaration`_, `-Wimplicit-int`_.
5638
5639
5640-Wimplicit-atomic-properties
5641----------------------------
5642**Diagnostic text:**
5643
5644+-----------------------------------------------------------------------------------------------------+
5645|:warning:`warning:` |nbsp| :diagtext:`property is assumed atomic when auto-synthesizing the property`|
5646+-----------------------------------------------------------------------------------------------------+
5647
5648+----------------------------------------------------------------------------+
5649|:warning:`warning:` |nbsp| :diagtext:`property is assumed atomic by default`|
5650+----------------------------------------------------------------------------+
5651
5652
5653-Wimplicit-conversion-floating-point-to-bool
5654--------------------------------------------
5655This diagnostic is enabled by default.
5656
5657**Diagnostic text:**
5658
5659+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5660|:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns floating-point number into bool:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
5661+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5662
5663
5664-Wimplicit-exception-spec-mismatch
5665----------------------------------
5666This diagnostic is enabled by default.
5667
5668**Diagnostic text:**
5669
5670+-----------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------+----------------------+-------------------------------------------+
5671|:warning:`warning:` |nbsp| :diagtext:`function previously declared with an` |nbsp| |+--------------------+| |nbsp| :diagtext:`exception specification redeclared with an` |nbsp| |+--------------------+| |nbsp| :diagtext:`exception specification`|
5672|                                                                                   ||:diagtext:`explicit`||                                                                      ||:diagtext:`implicit`||                                           |
5673|                                                                                   |+--------------------+|                                                                      |+--------------------+|                                           |
5674|                                                                                   ||:diagtext:`implicit`||                                                                      ||:diagtext:`explicit`||                                           |
5675|                                                                                   |+--------------------+|                                                                      |+--------------------+|                                           |
5676+-----------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------+----------------------+-------------------------------------------+
5677
5678
5679-Wimplicit-fallthrough
5680----------------------
5681Also controls `-Wimplicit-fallthrough-per-function`_.
5682
5683**Diagnostic text:**
5684
5685+---------------------------------------------------------------------------------+
5686|:warning:`warning:` |nbsp| :diagtext:`fallthrough annotation in unreachable code`|
5687+---------------------------------------------------------------------------------+
5688
5689+-------------------------------------------------------------------------------------+
5690|:warning:`warning:` |nbsp| :diagtext:`unannotated fall-through between switch labels`|
5691+-------------------------------------------------------------------------------------+
5692
5693
5694-Wimplicit-fallthrough-per-function
5695-----------------------------------
5696**Diagnostic text:**
5697
5698+------------------------------------------------------------------------------------------------------------------+
5699|:warning:`warning:` |nbsp| :diagtext:`unannotated fall-through between switch labels in partly-annotated function`|
5700+------------------------------------------------------------------------------------------------------------------+
5701
5702
5703-Wimplicit-fixed-point-conversion
5704---------------------------------
5705This diagnostic is enabled by default.
5706
5707**Diagnostic text:**
5708
5709+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5710|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot fit within the range of values for` |nbsp| :placeholder:`B`|
5711+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5712
5713
5714-Wimplicit-float-conversion
5715---------------------------
5716**Diagnostic text:**
5717
5718+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
5719|:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses floating-point precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
5720+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
5721
5722+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5723|:warning:`warning:` |nbsp| :diagtext:`implicit conversion when assigning computation result loses floating-point precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
5724+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5725
5726
5727-Wimplicit-function-declaration
5728-------------------------------
5729Some of the diagnostics controlled by this flag are enabled by default.
5730
5731**Diagnostic text:**
5732
5733+------------------------------------------------------------------------------------------------------------------------------------+
5734|:warning:`warning:` |nbsp| :diagtext:`implicit declaration of function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is invalid in C99`|
5735+------------------------------------------------------------------------------------------------------------------------------------+
5736
5737+---------------------------------------------------------------------------------------------------------------------------------------------+
5738|:warning:`warning:` |nbsp| :diagtext:`implicitly declaring library function '`:placeholder:`A`:diagtext:`' with type` |nbsp| :placeholder:`B`|
5739+---------------------------------------------------------------------------------------------------------------------------------------------+
5740
5741+---------------------------------------------------------------------------------+
5742|:error:`error:` |nbsp| :diagtext:`use of unknown builtin` |nbsp| :placeholder:`A`|
5743+---------------------------------------------------------------------------------+
5744
5745+-----------------------------------------------------------------------------------------------+
5746|:warning:`warning:` |nbsp| :diagtext:`implicit declaration of function` |nbsp| :placeholder:`A`|
5747+-----------------------------------------------------------------------------------------------+
5748
5749
5750-Wimplicit-int
5751--------------
5752This diagnostic is enabled by default.
5753
5754**Diagnostic text:**
5755
5756+--------------------------------------------------------------------------------+
5757|:warning:`warning:` |nbsp| :diagtext:`type specifier missing, defaults to 'int'`|
5758+--------------------------------------------------------------------------------+
5759
5760
5761-Wimplicit-int-conversion
5762-------------------------
5763**Diagnostic text:**
5764
5765+---------------------------------------------------------------------------------------------+
5766|:warning:`warning:` |nbsp| :diagtext:`higher order bits are zeroes after implicit conversion`|
5767+---------------------------------------------------------------------------------------------+
5768
5769+---------------------------------------------------------------------------------------------------------------------------------------------------------+
5770|:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses integer precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
5771+---------------------------------------------------------------------------------------------------------------------------------------------------------+
5772
5773
5774-Wimplicit-retain-self
5775----------------------
5776**Diagnostic text:**
5777
5778+---------------------------------------------------------------------------------------------------------------------------------------+
5779|:warning:`warning:` |nbsp| :diagtext:`block implicitly retains 'self'; explicitly mention 'self' to indicate this is intended behavior`|
5780+---------------------------------------------------------------------------------------------------------------------------------------+
5781
5782
5783-Wimplicitly-unsigned-literal
5784-----------------------------
5785This diagnostic is enabled by default.
5786
5787**Diagnostic text:**
5788
5789+----------------------------------------------------------------------------------------------------------------------------------------+
5790|:warning:`warning:` |nbsp| :diagtext:`integer literal is too large to be represented in a signed integer type, interpreting as unsigned`|
5791+----------------------------------------------------------------------------------------------------------------------------------------+
5792
5793
5794-Wimport
5795--------
5796This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
5797
5798-Wimport-preprocessor-directive-pedantic
5799----------------------------------------
5800**Diagnostic text:**
5801
5802+----------------------------------------------------------------------+
5803|:warning:`warning:` |nbsp| :diagtext:`#import is a language extension`|
5804+----------------------------------------------------------------------+
5805
5806
5807-Winaccessible-base
5808-------------------
5809This diagnostic is enabled by default.
5810
5811**Diagnostic text:**
5812
5813+-----------------------------------------------------------------------------------------------------------------------------------------------+
5814|:warning:`warning:` |nbsp| :diagtext:`direct base` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is inaccessible due to ambiguity:`:placeholder:`B`|
5815+-----------------------------------------------------------------------------------------------------------------------------------------------+
5816
5817
5818-Winclude-next-absolute-path
5819----------------------------
5820This diagnostic is enabled by default.
5821
5822**Diagnostic text:**
5823
5824+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5825|:warning:`warning:` |nbsp| :diagtext:`#include\_next in file found relative to primary source file or found by absolute path; will search from start of include path`|
5826+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5827
5828
5829-Winclude-next-outside-header
5830-----------------------------
5831This diagnostic is enabled by default.
5832
5833**Diagnostic text:**
5834
5835+--------------------------------------------------------------------------------------------------------------------+
5836|:warning:`warning:` |nbsp| :diagtext:`#include\_next in primary source file; will search from start of include path`|
5837+--------------------------------------------------------------------------------------------------------------------+
5838
5839
5840-Wincompatible-exception-spec
5841-----------------------------
5842This diagnostic is enabled by default.
5843
5844**Diagnostic text:**
5845
5846+--------------------------------------------------------------------------+----------------------+--------------------------------+
5847|:warning:`warning:` |nbsp| :diagtext:`exception specifications of` |nbsp| |+--------------------+| |nbsp| :diagtext:`types differ`|
5848|                                                                          ||:diagtext:`return`  ||                                |
5849|                                                                          |+--------------------+|                                |
5850|                                                                          ||:diagtext:`argument`||                                |
5851|                                                                          |+--------------------+|                                |
5852+--------------------------------------------------------------------------+----------------------+--------------------------------+
5853
5854+-----------------------------------------------------------------------------------------------+
5855|:warning:`warning:` |nbsp| :diagtext:`target exception specification is not superset of source`|
5856+-----------------------------------------------------------------------------------------------+
5857
5858
5859-Wincompatible-function-pointer-types
5860-------------------------------------
5861This diagnostic is enabled by default.
5862
5863**Diagnostic text:**
5864
5865+----------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
5866|:warning:`warning:` |nbsp| :diagtext:`incompatible function pointer types` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+|
5867|                                                                                  ||:diagtext:`assigning to different types`                      |||                                     ||
5868|                                                                                  |+--------------------------------------------------------------+|+-------------------------------------+|
5869|                                                                                  ||:diagtext:`passing to parameter of different type`            |||:diagtext:`; dereference with \*`    ||
5870|                                                                                  |+--------------------------------------------------------------+|+-------------------------------------+|
5871|                                                                                  ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`||
5872|                                                                                  |+--------------------------------------------------------------+|+-------------------------------------+|
5873|                                                                                  ||:diagtext:`converting between types`                          |||:diagtext:`; remove \*`              ||
5874|                                                                                  |+--------------------------------------------------------------+|+-------------------------------------+|
5875|                                                                                  ||:diagtext:`initializing with expression of different type`    |||:diagtext:`; remove &`               ||
5876|                                                                                  |+--------------------------------------------------------------+|+-------------------------------------+|
5877|                                                                                  ||:diagtext:`sending to parameter of different type`            ||                                       |
5878|                                                                                  |+--------------------------------------------------------------+|                                       |
5879|                                                                                  ||:diagtext:`casting between types`                             ||                                       |
5880|                                                                                  |+--------------------------------------------------------------+|                                       |
5881+----------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
5882
5883
5884-Wincompatible-library-redeclaration
5885------------------------------------
5886This diagnostic is enabled by default.
5887
5888**Diagnostic text:**
5889
5890+-------------------------------------------------------------------------------------------------------------+
5891|:warning:`warning:` |nbsp| :diagtext:`incompatible redeclaration of library function` |nbsp| :placeholder:`A`|
5892+-------------------------------------------------------------------------------------------------------------+
5893
5894
5895-Wincompatible-ms-struct
5896------------------------
5897This diagnostic is an error by default, but the flag ``-Wno-incompatible-ms-struct`` can be used to disable the error.
5898
5899**Diagnostic text:**
5900
5901+---------------------------------------------------------------------------------------------------------------------------------------------+
5902|:error:`error:` |nbsp| :diagtext:`ms\_struct may not produce Microsoft-compatible layouts for classes with base classes or virtual functions`|
5903+---------------------------------------------------------------------------------------------------------------------------------------------+
5904
5905+------------------------------------------------------------------------------------------------------------------------------------------------------------+
5906|: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`|
5907+------------------------------------------------------------------------------------------------------------------------------------------------------------+
5908
5909
5910-Wincompatible-pointer-types
5911----------------------------
5912This diagnostic is enabled by default.
5913
5914Also controls `-Wincompatible-function-pointer-types`_, `-Wincompatible-pointer-types-discards-qualifiers`_.
5915
5916**Diagnostic text:**
5917
5918+-------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
5919|:warning:`warning:` |nbsp| :diagtext:`incompatible pointer types` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+|
5920|                                                                         ||:diagtext:`assigning to different types`                      |||                                     ||
5921|                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
5922|                                                                         ||:diagtext:`passing to parameter of different type`            |||:diagtext:`; dereference with \*`    ||
5923|                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
5924|                                                                         ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`||
5925|                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
5926|                                                                         ||:diagtext:`converting between types`                          |||:diagtext:`; remove \*`              ||
5927|                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
5928|                                                                         ||:diagtext:`initializing with expression of different type`    |||:diagtext:`; remove &`               ||
5929|                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
5930|                                                                         ||:diagtext:`sending to parameter of different type`            ||                                       |
5931|                                                                         |+--------------------------------------------------------------+|                                       |
5932|                                                                         ||:diagtext:`casting between types`                             ||                                       |
5933|                                                                         |+--------------------------------------------------------------+|                                       |
5934+-------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
5935
5936
5937-Wincompatible-pointer-types-discards-qualifiers
5938------------------------------------------------
5939This diagnostic is enabled by default.
5940
5941**Diagnostic text:**
5942
5943+---------------------------+----------------------------------------------------------------+---------------------------------------------------------------+
5944|:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`discards qualifiers in nested pointer types`|
5945|                           ||:diagtext:`assigning to different types`                      ||                                                               |
5946|                           |+--------------------------------------------------------------+|                                                               |
5947|                           ||:diagtext:`passing to parameter of different type`            ||                                                               |
5948|                           |+--------------------------------------------------------------+|                                                               |
5949|                           ||:diagtext:`returning from function with different return type`||                                                               |
5950|                           |+--------------------------------------------------------------+|                                                               |
5951|                           ||:diagtext:`converting between types`                          ||                                                               |
5952|                           |+--------------------------------------------------------------+|                                                               |
5953|                           ||:diagtext:`initializing with expression of different type`    ||                                                               |
5954|                           |+--------------------------------------------------------------+|                                                               |
5955|                           ||:diagtext:`sending to parameter of different type`            ||                                                               |
5956|                           |+--------------------------------------------------------------+|                                                               |
5957|                           ||:diagtext:`casting between types`                             ||                                                               |
5958|                           |+--------------------------------------------------------------+|                                                               |
5959+---------------------------+----------------------------------------------------------------+---------------------------------------------------------------+
5960
5961+---------------------------+----------------------------------------------------------------+---------------------------------------+
5962|:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`discards qualifiers`|
5963|                           ||:diagtext:`assigning to different types`                      ||                                       |
5964|                           |+--------------------------------------------------------------+|                                       |
5965|                           ||:diagtext:`passing to parameter of different type`            ||                                       |
5966|                           |+--------------------------------------------------------------+|                                       |
5967|                           ||:diagtext:`returning from function with different return type`||                                       |
5968|                           |+--------------------------------------------------------------+|                                       |
5969|                           ||:diagtext:`converting between types`                          ||                                       |
5970|                           |+--------------------------------------------------------------+|                                       |
5971|                           ||:diagtext:`initializing with expression of different type`    ||                                       |
5972|                           |+--------------------------------------------------------------+|                                       |
5973|                           ||:diagtext:`sending to parameter of different type`            ||                                       |
5974|                           |+--------------------------------------------------------------+|                                       |
5975|                           ||:diagtext:`casting between types`                             ||                                       |
5976|                           |+--------------------------------------------------------------+|                                       |
5977+---------------------------+----------------------------------------------------------------+---------------------------------------+
5978
5979
5980-Wincompatible-property-type
5981----------------------------
5982This diagnostic is enabled by default.
5983
5984**Diagnostic text:**
5985
5986+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5987|: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`|
5988+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5989
5990
5991-Wincompatible-sysroot
5992----------------------
5993This diagnostic is enabled by default.
5994
5995**Diagnostic text:**
5996
5997+------------------------------------------------------------------------------------------------------------------------------------+
5998|:warning:`warning:` |nbsp| :diagtext:`using sysroot for '`:placeholder:`A`:diagtext:`' but targeting '`:placeholder:`B`:diagtext:`'`|
5999+------------------------------------------------------------------------------------------------------------------------------------+
6000
6001
6002-Wincomplete-framework-module-declaration
6003-----------------------------------------
6004This diagnostic is enabled by default.
6005
6006**Diagnostic text:**
6007
6008+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6009|:warning:`warning:` |nbsp| :diagtext:`skipping '`:placeholder:`A`:diagtext:`' because module declaration of '`:placeholder:`B`:diagtext:`' lacks the 'framework' qualifier`|
6010+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6011
6012
6013-Wincomplete-implementation
6014---------------------------
6015This diagnostic is enabled by default.
6016
6017**Diagnostic text:**
6018
6019+-----------------------------------------------------------------------------------------------------------------+
6020|:warning:`warning:` |nbsp| :diagtext:`method definition for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found`|
6021+-----------------------------------------------------------------------------------------------------------------+
6022
6023
6024-Wincomplete-module
6025-------------------
6026Some of the diagnostics controlled by this flag are enabled by default.
6027
6028Controls `-Wincomplete-umbrella`_, `-Wnon-modular-include-in-module`_.
6029
6030
6031-Wincomplete-setjmp-declaration
6032-------------------------------
6033This diagnostic is enabled by default.
6034
6035**Diagnostic text:**
6036
6037+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6038|:warning:`warning:` |nbsp| :diagtext:`declaration of built-in function '`:placeholder:`A`:diagtext:`' requires the declaration of the 'jmp\_buf' type, commonly provided in the header <setjmp.h>.`|
6039+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6040
6041
6042-Wincomplete-umbrella
6043---------------------
6044This diagnostic is enabled by default.
6045
6046**Diagnostic text:**
6047
6048+---------------------------------------------------------------------------------------+
6049|:warning:`warning:` |nbsp| :diagtext:`missing submodule '`:placeholder:`A`:diagtext:`'`|
6050+---------------------------------------------------------------------------------------+
6051
6052+--------------------------------------------------------------------------------------------------+
6053|:warning:`warning:` |nbsp| :diagtext:`umbrella directory '`:placeholder:`A`:diagtext:`' not found`|
6054+--------------------------------------------------------------------------------------------------+
6055
6056+-------------------------------------------------------------------------------------------------------------------------------------------------------+
6057|:warning:`warning:` |nbsp| :diagtext:`umbrella header for module '`:placeholder:`A`:diagtext:`' does not include header '`:placeholder:`B`:diagtext:`'`|
6058+-------------------------------------------------------------------------------------------------------------------------------------------------------+
6059
6060
6061-Winconsistent-dllimport
6062------------------------
6063This diagnostic is enabled by default.
6064
6065**Diagnostic text:**
6066
6067+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6068|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`redeclared without` |nbsp| :placeholder:`B` |nbsp| :diagtext:`attribute: previous` |nbsp| :placeholder:`B` |nbsp| :diagtext:`ignored`|
6069+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6070
6071+------------------------------------------------------------------------------------------------------------------------------------+
6072|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`redeclared without 'dllimport' attribute: 'dllexport' attribute added`|
6073+------------------------------------------------------------------------------------------------------------------------------------+
6074
6075
6076-Winconsistent-missing-destructor-override
6077------------------------------------------
6078**Diagnostic text:**
6079
6080+------------------------------------------------------------------------------------------------------------------+
6081|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`overrides a destructor but is not marked 'override'`|
6082+------------------------------------------------------------------------------------------------------------------+
6083
6084
6085-Winconsistent-missing-override
6086-------------------------------
6087This diagnostic is enabled by default.
6088
6089**Diagnostic text:**
6090
6091+-----------------------------------------------------------------------------------------------------------------------+
6092|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`overrides a member function but is not marked 'override'`|
6093+-----------------------------------------------------------------------------------------------------------------------+
6094
6095
6096-Wincrement-bool
6097----------------
6098This diagnostic is enabled by default.
6099
6100Also controls `-Wdeprecated-increment-bool`_.
6101
6102**Diagnostic text:**
6103
6104+------------------------------------------------------------------------------------------------+
6105|:error:`error:` |nbsp| :diagtext:`ISO C++17 does not allow incrementing expression of type bool`|
6106+------------------------------------------------------------------------------------------------+
6107
6108
6109-Winfinite-recursion
6110--------------------
6111**Diagnostic text:**
6112
6113+---------------------------------------------------------------------------------------+
6114|:warning:`warning:` |nbsp| :diagtext:`all paths through this function will call itself`|
6115+---------------------------------------------------------------------------------------+
6116
6117
6118-Winit-self
6119-----------
6120This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
6121
6122-Winitializer-overrides
6123-----------------------
6124This diagnostic is enabled by default.
6125
6126**Diagnostic text:**
6127
6128+---------------------------------------------------------------------------------------------------+
6129|:warning:`warning:` |nbsp| :diagtext:`initializer overrides prior initialization of this subobject`|
6130+---------------------------------------------------------------------------------------------------+
6131
6132+---------------------------------------------------------------------------------------------------------------------------------------+
6133|:warning:`warning:` |nbsp| :diagtext:`subobject initialization overrides initialization of other fields within its enclosing subobject`|
6134+---------------------------------------------------------------------------------------------------------------------------------------+
6135
6136
6137-Winjected-class-name
6138---------------------
6139This diagnostic is enabled by default.
6140
6141**Diagnostic text:**
6142
6143+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------+--------------------------------------------------------------+------------------------+---------------------------+
6144|: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`|
6145|                                                                                                                                                                           ||:diagtext:`template name`||                                                              ||:diagtext:`'typename'`||                           |
6146|                                                                                                                                                                           |+-------------------------+|                                                              |+----------------------+|                           |
6147|                                                                                                                                                                           ||:diagtext:`type`         ||                                                              ||:diagtext:`'template'`||                           |
6148|                                                                                                                                                                           |+-------------------------+|                                                              |+----------------------+|                           |
6149+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------+--------------------------------------------------------------+------------------------+---------------------------+
6150
6151
6152-Winline
6153--------
6154This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
6155
6156-Winline-asm
6157------------
6158This diagnostic is enabled by default.
6159
6160**Diagnostic text:**
6161
6162The text of this diagnostic is not controlled by Clang.
6163
6164
6165-Winline-new-delete
6166-------------------
6167This diagnostic is enabled by default.
6168
6169**Diagnostic text:**
6170
6171+----------------------------------------------------------------------------------------------------------------------------------+
6172|:warning:`warning:` |nbsp| :diagtext:`replacement function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be declared 'inline'`|
6173+----------------------------------------------------------------------------------------------------------------------------------+
6174
6175
6176-Winstantiation-after-specialization
6177------------------------------------
6178This diagnostic is enabled by default.
6179
6180**Diagnostic text:**
6181
6182+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6183|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`that occurs after an explicit specialization has no effect`|
6184+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6185
6186
6187-Wint-conversion
6188----------------
6189This diagnostic is enabled by default.
6190
6191**Diagnostic text:**
6192
6193+-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
6194|:warning:`warning:` |nbsp| :diagtext:`incompatible integer to pointer conversion` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+|
6195|                                                                                         ||:diagtext:`assigning to different types`                      |||                                     ||
6196|                                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
6197|                                                                                         ||:diagtext:`passing to parameter of different type`            |||:diagtext:`; dereference with \*`    ||
6198|                                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
6199|                                                                                         ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`||
6200|                                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
6201|                                                                                         ||:diagtext:`converting between types`                          |||:diagtext:`; remove \*`              ||
6202|                                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
6203|                                                                                         ||:diagtext:`initializing with expression of different type`    |||:diagtext:`; remove &`               ||
6204|                                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
6205|                                                                                         ||:diagtext:`sending to parameter of different type`            ||                                       |
6206|                                                                                         |+--------------------------------------------------------------+|                                       |
6207|                                                                                         ||:diagtext:`casting between types`                             ||                                       |
6208|                                                                                         |+--------------------------------------------------------------+|                                       |
6209+-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
6210
6211+-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
6212|:warning:`warning:` |nbsp| :diagtext:`incompatible pointer to integer conversion` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+|
6213|                                                                                         ||:diagtext:`assigning to different types`                      |||                                     ||
6214|                                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
6215|                                                                                         ||:diagtext:`passing to parameter of different type`            |||:diagtext:`; dereference with \*`    ||
6216|                                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
6217|                                                                                         ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`||
6218|                                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
6219|                                                                                         ||:diagtext:`converting between types`                          |||:diagtext:`; remove \*`              ||
6220|                                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
6221|                                                                                         ||:diagtext:`initializing with expression of different type`    |||:diagtext:`; remove &`               ||
6222|                                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
6223|                                                                                         ||:diagtext:`sending to parameter of different type`            ||                                       |
6224|                                                                                         |+--------------------------------------------------------------+|                                       |
6225|                                                                                         ||:diagtext:`casting between types`                             ||                                       |
6226|                                                                                         |+--------------------------------------------------------------+|                                       |
6227+-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
6228
6229
6230-Wint-conversions
6231-----------------
6232Synonym for `-Wint-conversion`_.
6233
6234
6235-Wint-to-pointer-cast
6236---------------------
6237This diagnostic is enabled by default.
6238
6239Also controls `-Wint-to-void-pointer-cast`_.
6240
6241**Diagnostic text:**
6242
6243+-------------------------------------------------------------------------------------------------------------------------------------------+
6244|:warning:`warning:` |nbsp| :diagtext:`cast to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from smaller integer type` |nbsp| :placeholder:`A`|
6245+-------------------------------------------------------------------------------------------------------------------------------------------+
6246
6247
6248-Wint-to-void-pointer-cast
6249--------------------------
6250This diagnostic is enabled by default.
6251
6252**Diagnostic text:**
6253
6254+-------------------------------------------------------------------------------------------------------------------------------------------+
6255|:warning:`warning:` |nbsp| :diagtext:`cast to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from smaller integer type` |nbsp| :placeholder:`A`|
6256+-------------------------------------------------------------------------------------------------------------------------------------------+
6257
6258
6259-Winteger-overflow
6260------------------
6261This diagnostic is enabled by default.
6262
6263**Diagnostic text:**
6264
6265+-----------------------------------------------------------------------------------------------------------------------------------------------------+
6266|:warning:`warning:` |nbsp| :diagtext:`overflow in expression; result is` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with type` |nbsp| :placeholder:`B`|
6267+-----------------------------------------------------------------------------------------------------------------------------------------------------+
6268
6269
6270-Winvalid-command-line-argument
6271-------------------------------
6272This diagnostic is enabled by default.
6273
6274Also controls `-Wignored-optimization-argument`_.
6275
6276**Diagnostic text:**
6277
6278+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6279|:warning:`warning:` |nbsp| :diagtext:`the given MCU supports` |nbsp| :placeholder:`A` |nbsp| :diagtext:`hardware multiply, but -mhwmult is set to` |nbsp| :placeholder:`B`:diagtext:`.`|
6280+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6281
6282+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6283|: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.`|
6284+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6285
6286+----------------------------------------------------------------------------------------------------------------------------------------------------+
6287|:warning:`warning:` |nbsp| :diagtext:`the given MCU does not support hardware multiply, but -mhwmult is set to` |nbsp| :placeholder:`A`:diagtext:`.`|
6288+----------------------------------------------------------------------------------------------------------------------------------------------------+
6289
6290+-----------------------------------------------------------------------------------------------------------------------------------------+
6291|:warning:`warning:` |nbsp| :diagtext:`the object size sanitizer has no effect at -O0, but is explicitly enabled:` |nbsp| :placeholder:`A`|
6292+-----------------------------------------------------------------------------------------------------------------------------------------+
6293
6294+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6295|:warning:`warning:` |nbsp| :diagtext:`optimization level '`:placeholder:`A`:diagtext:`' is not supported; using '`:placeholder:`B`:placeholder:`C`:diagtext:`' instead`|
6296+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6297
6298
6299-Winvalid-constexpr
6300-------------------
6301This diagnostic is an error by default, but the flag ``-Wno-invalid-constexpr`` can be used to disable the error.
6302
6303**Diagnostic text:**
6304
6305+----------------------------------------------------+-------------------------+--------------------------------------------------------+
6306|:error:`error:` |nbsp| :diagtext:`constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`never produces a constant expression`|
6307|                                                    ||:diagtext:`function`   ||                                                        |
6308|                                                    |+-----------------------+|                                                        |
6309|                                                    ||:diagtext:`constructor`||                                                        |
6310|                                                    |+-----------------------+|                                                        |
6311+----------------------------------------------------+-------------------------+--------------------------------------------------------+
6312
6313
6314-Winvalid-iboutlet
6315------------------
6316This diagnostic is enabled by default.
6317
6318**Diagnostic text:**
6319
6320+---------------------------+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
6321|:warning:`warning:` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute must be an object type (invalid` |nbsp| :placeholder:`B`:diagtext:`)`|
6322|                           ||:diagtext:`instance variable`||                                                                                                                                                  |
6323|                           |+-----------------------------+|                                                                                                                                                  |
6324|                           ||:diagtext:`property`         ||                                                                                                                                                  |
6325|                           |+-----------------------------+|                                                                                                                                                  |
6326+---------------------------+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
6327
6328+---------------------------------------------------------------------------------------------------------+
6329|:warning:`warning:` |nbsp| :diagtext:`IBOutletCollection properties should be copy/strong and not assign`|
6330+---------------------------------------------------------------------------------------------------------+
6331
6332
6333-Winvalid-initializer-from-system-header
6334----------------------------------------
6335This diagnostic is enabled by default.
6336
6337**Diagnostic text:**
6338
6339+--------------------------------------------------------------------------------------------------------------+
6340|:warning:`warning:` |nbsp| :diagtext:`invalid constructor form class in system header, should not be explicit`|
6341+--------------------------------------------------------------------------------------------------------------+
6342
6343
6344-Winvalid-ios-deployment-target
6345-------------------------------
6346This diagnostic is an error by default, but the flag ``-Wno-invalid-ios-deployment-target`` can be used to disable the error.
6347
6348**Diagnostic text:**
6349
6350+------------------------------------------------------------------------------------------------------------------------------------------------------------+
6351|:error:`error:` |nbsp| :diagtext:`invalid iOS deployment version '`:placeholder:`A`:diagtext:`', iOS 10 is the maximum deployment target for 32-bit targets`|
6352+------------------------------------------------------------------------------------------------------------------------------------------------------------+
6353
6354
6355-Winvalid-noreturn
6356------------------
6357This diagnostic is enabled by default.
6358
6359**Diagnostic text:**
6360
6361+-------------------------------------------------------------------------------------+
6362|:warning:`warning:` |nbsp| :diagtext:`function declared 'noreturn' should not return`|
6363+-------------------------------------------------------------------------------------+
6364
6365+--------------------------------------------------------------------------------------------------------------------------------+
6366|:warning:`warning:` |nbsp| :diagtext:`function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared 'noreturn' should not return`|
6367+--------------------------------------------------------------------------------------------------------------------------------+
6368
6369
6370-Winvalid-offsetof
6371------------------
6372This diagnostic is enabled by default.
6373
6374**Diagnostic text:**
6375
6376+----------------------------------------------------------------------------------------+
6377|:warning:`warning:` |nbsp| :diagtext:`offset of on non-POD type` |nbsp| :placeholder:`A`|
6378+----------------------------------------------------------------------------------------+
6379
6380+----------------------------------------------------------------------------------------------------+
6381|:warning:`warning:` |nbsp| :diagtext:`offset of on non-standard-layout type` |nbsp| :placeholder:`A`|
6382+----------------------------------------------------------------------------------------------------+
6383
6384
6385-Winvalid-or-nonexistent-directory
6386----------------------------------
6387Some of the diagnostics controlled by this flag are enabled by default.
6388
6389**Diagnostic text:**
6390
6391+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6392|:warning:`warning:` |nbsp| :diagtext:`environment variable SCE\_ORBIS\_SDK\_DIR is set, but points to invalid or nonexistent directory '`:placeholder:`A`:diagtext:`'`|
6393+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6394
6395+------------------------------------------------------------------------------------------------------------------------------------------------------------+
6396|:warning:`warning:` |nbsp| :diagtext:`unable to find` |nbsp| :placeholder:`A` |nbsp| :diagtext:`directory, expected to be in '`:placeholder:`B`:diagtext:`'`|
6397+------------------------------------------------------------------------------------------------------------------------------------------------------------+
6398
6399
6400-Winvalid-partial-specialization
6401--------------------------------
6402This diagnostic is an error by default, but the flag ``-Wno-invalid-partial-specialization`` can be used to disable the error.
6403
6404**Diagnostic text:**
6405
6406+-----------------------+----------------------+-----------------------------------------------------------------------------------------------------+
6407|:error:`error:` |nbsp| |+--------------------+| |nbsp| :diagtext:`template partial specialization is not more specialized than the primary template`|
6408|                       ||:diagtext:`class`   ||                                                                                                     |
6409|                       |+--------------------+|                                                                                                     |
6410|                       ||:diagtext:`variable`||                                                                                                     |
6411|                       |+--------------------+|                                                                                                     |
6412+-----------------------+----------------------+-----------------------------------------------------------------------------------------------------+
6413
6414
6415-Winvalid-pch
6416-------------
6417This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
6418
6419-Winvalid-pp-token
6420------------------
6421This diagnostic is enabled by default.
6422
6423**Diagnostic text:**
6424
6425+---------------------------------------------------------------+
6426|:warning:`warning:` |nbsp| :diagtext:`empty character constant`|
6427+---------------------------------------------------------------+
6428
6429+------------------------------------------------------------------+-----------------+-----------------------------+
6430|:warning:`warning:` |nbsp| :diagtext:`missing terminating` |nbsp| |+---------------+| |nbsp| :diagtext:`character`|
6431|                                                                  ||:diagtext:`'`  ||                             |
6432|                                                                  |+---------------+|                             |
6433|                                                                  ||:diagtext:`'"'`||                             |
6434|                                                                  |+---------------+|                             |
6435+------------------------------------------------------------------+-----------------+-----------------------------+
6436
6437
6438-Winvalid-source-encoding
6439-------------------------
6440This diagnostic is enabled by default.
6441
6442**Diagnostic text:**
6443
6444+--------------------------------------------------------------------------------------+
6445|:warning:`warning:` |nbsp| :diagtext:`illegal character encoding in character literal`|
6446+--------------------------------------------------------------------------------------+
6447
6448+-----------------------------------------------------------------------------------+
6449|:warning:`warning:` |nbsp| :diagtext:`illegal character encoding in string literal`|
6450+-----------------------------------------------------------------------------------+
6451
6452
6453-Winvalid-token-paste
6454---------------------
6455This diagnostic is an error by default, but the flag ``-Wno-invalid-token-paste`` can be used to disable the error.
6456
6457**Diagnostic text:**
6458
6459+----------------------------------------------------------------------------------------------------------------+
6460|:error:`error:` |nbsp| :diagtext:`pasting formed '`:placeholder:`A`:diagtext:`', an invalid preprocessing token`|
6461+----------------------------------------------------------------------------------------------------------------+
6462
6463
6464-Wjump-seh-finally
6465------------------
6466This diagnostic is enabled by default.
6467
6468**Diagnostic text:**
6469
6470+-------------------------------------------------------------------------------------------+
6471|:warning:`warning:` |nbsp| :diagtext:`jump out of \_\_finally block has undefined behavior`|
6472+-------------------------------------------------------------------------------------------+
6473
6474
6475-Wkeyword-compat
6476----------------
6477This diagnostic is enabled by default.
6478
6479**Diagnostic text:**
6480
6481+-----------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+
6482|:warning:`warning:` |nbsp| :diagtext:`keyword '`:placeholder:`A`:diagtext:`' will be made available as an identifier` |nbsp| |+-----------------------------------------------------+|
6483|                                                                                                                             ||:diagtext:`here`                                     ||
6484|                                                                                                                             |+-----------------------------------------------------+|
6485|                                                                                                                             ||:diagtext:`for the remainder of the translation unit`||
6486|                                                                                                                             |+-----------------------------------------------------+|
6487+-----------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+
6488
6489
6490-Wkeyword-macro
6491---------------
6492**Diagnostic text:**
6493
6494+----------------------------------------------------------------------------+
6495|:warning:`warning:` |nbsp| :diagtext:`keyword is hidden by macro definition`|
6496+----------------------------------------------------------------------------+
6497
6498
6499-Wknr-promoted-parameter
6500------------------------
6501This diagnostic is enabled by default.
6502
6503**Diagnostic text:**
6504
6505+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6506|:warning:`warning:` |nbsp| :diagtext:`promoted type of K&R function parameter is not compatible with parameter type` |nbsp| :diagtext:`declared in a previous prototype`|
6507+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6508
6509
6510-Wlanguage-extension-token
6511--------------------------
6512**Diagnostic text:**
6513
6514+-----------------------------------------------------+
6515|:warning:`warning:` |nbsp| :diagtext:`extension used`|
6516+-----------------------------------------------------+
6517
6518
6519-Wlarge-by-value-copy
6520---------------------
6521This diagnostic is enabled by default.
6522
6523**Diagnostic text:**
6524
6525+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6526|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a large (`:placeholder:`B` |nbsp| :diagtext:`bytes) pass-by-value argument; pass it by reference instead ?`|
6527+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6528
6529+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6530|: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 ?`|
6531+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6532
6533
6534-Wliblto
6535--------
6536This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
6537
6538-Wliteral-conversion
6539--------------------
6540This diagnostic is enabled by default.
6541
6542**Diagnostic text:**
6543
6544+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6545|: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`|
6546+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6547
6548+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6549|: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`|
6550+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6551
6552
6553-Wliteral-range
6554---------------
6555This diagnostic is enabled by default.
6556
6557**Diagnostic text:**
6558
6559+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6560|:warning:`warning:` |nbsp| :diagtext:`magnitude of floating-point constant too large for type` |nbsp| :placeholder:`A`:diagtext:`; maximum is` |nbsp| :placeholder:`B`|
6561+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6562
6563+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6564|:warning:`warning:` |nbsp| :diagtext:`magnitude of floating-point constant too small for type` |nbsp| :placeholder:`A`:diagtext:`; minimum is` |nbsp| :placeholder:`B`|
6565+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6566
6567
6568-Wlocal-type-template-args
6569--------------------------
6570Some of the diagnostics controlled by this flag are enabled by default.
6571
6572Also controls `-Wc++98-compat-local-type-template-args`_.
6573
6574**Diagnostic text:**
6575
6576+------------------------------------------------------------------------------------------------+
6577|:warning:`warning:` |nbsp| :diagtext:`template argument uses local type` |nbsp| :placeholder:`A`|
6578+------------------------------------------------------------------------------------------------+
6579
6580
6581-Wlogical-not-parentheses
6582-------------------------
6583This diagnostic is enabled by default.
6584
6585**Diagnostic text:**
6586
6587+--------------------------------------------------------------------------------------------------------+------------------------------+
6588|:warning:`warning:` |nbsp| :diagtext:`logical not is only applied to the left hand side of this` |nbsp| |+----------------------------+|
6589|                                                                                                        ||:diagtext:`comparison`      ||
6590|                                                                                                        |+----------------------------+|
6591|                                                                                                        ||:diagtext:`bitwise operator`||
6592|                                                                                                        |+----------------------------+|
6593+--------------------------------------------------------------------------------------------------------+------------------------------+
6594
6595
6596-Wlogical-op-parentheses
6597------------------------
6598This diagnostic is enabled by default.
6599
6600**Diagnostic text:**
6601
6602+---------------------------------------------------------+
6603|:warning:`warning:` |nbsp| :diagtext:`'&&' within '\|\|'`|
6604+---------------------------------------------------------+
6605
6606
6607-Wlong-long
6608-----------
6609Also controls `-Wc++11-long-long`_.
6610
6611**Diagnostic text:**
6612
6613+-----------------------------------------------------------------------------------------------+
6614|:warning:`warning:` |nbsp| :diagtext:`'long long' is an extension when C99 mode is not enabled`|
6615+-----------------------------------------------------------------------------------------------+
6616
6617
6618-Wloop-analysis
6619---------------
6620Controls `-Wfor-loop-analysis`_, `-Wrange-loop-analysis`_.
6621
6622
6623-Wmacro-redefined
6624-----------------
6625This diagnostic is enabled by default.
6626
6627**Diagnostic text:**
6628
6629+------------------------------------------------------------------------------+
6630|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`macro redefined`|
6631+------------------------------------------------------------------------------+
6632
6633
6634-Wmain
6635------
6636Some of the diagnostics controlled by this flag are enabled by default.
6637
6638**Diagnostic text:**
6639
6640+--------------------------------------------------------------------------------------------+
6641|:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow 'main' to be used by a program`|
6642+--------------------------------------------------------------------------------------------+
6643
6644+--------------------------------------------------------------------------------------+
6645|:warning:`warning:` |nbsp| :diagtext:`'main' is not allowed to be declared \_Noreturn`|
6646+--------------------------------------------------------------------------------------+
6647
6648+------------------------------------------------------------------------------------+
6649|:warning:`warning:` |nbsp| :diagtext:`'main' is not allowed to be declared variadic`|
6650+------------------------------------------------------------------------------------+
6651
6652+-------------------------------------------------------------------------------+
6653|:warning:`warning:` |nbsp| :diagtext:`only one parameter on 'main' declaration`|
6654+-------------------------------------------------------------------------------+
6655
6656+---------------------------------------------------------------------------------------------------------+
6657|:warning:`warning:` |nbsp| :diagtext:`variable named 'main' with external linkage has undefined behavior`|
6658+---------------------------------------------------------------------------------------------------------+
6659
6660+------------------------------------------------------------------------+
6661|:warning:`warning:` |nbsp| :diagtext:`bool literal returned from 'main'`|
6662+------------------------------------------------------------------------+
6663
6664+---------------------------------------------------------------------------+
6665|:warning:`warning:` |nbsp| :diagtext:`'main' should not be declared static`|
6666+---------------------------------------------------------------------------+
6667
6668
6669-Wmain-return-type
6670------------------
6671This diagnostic is enabled by default.
6672
6673**Diagnostic text:**
6674
6675+-------------------------------------------------------------------------+
6676|:warning:`warning:` |nbsp| :diagtext:`return type of 'main' is not 'int'`|
6677+-------------------------------------------------------------------------+
6678
6679
6680-Wmalformed-warning-check
6681-------------------------
6682This diagnostic is enabled by default.
6683
6684**Diagnostic text:**
6685
6686+---------------------------------------------------------------------------------------------+
6687|:warning:`warning:` |nbsp| :diagtext:`\_\_has\_warning expected option name (e.g. "-Wundef")`|
6688+---------------------------------------------------------------------------------------------+
6689
6690
6691-Wmany-braces-around-scalar-init
6692--------------------------------
6693This diagnostic is enabled by default.
6694
6695**Diagnostic text:**
6696
6697+--------------------------------------------------------------------------------+
6698|:warning:`warning:` |nbsp| :diagtext:`too many braces around scalar initializer`|
6699+--------------------------------------------------------------------------------+
6700
6701
6702-Wmax-unsigned-zero
6703-------------------
6704This diagnostic is enabled by default.
6705
6706**Diagnostic text:**
6707
6708+----------------------------------------------------------------+---------------------------------------+------------------------------------------------------+
6709|:warning:`warning:` |nbsp| :diagtext:`taking the max of` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`is always equal to the other value`|
6710|                                                                ||:diagtext:`a value and unsigned zero`||                                                      |
6711|                                                                |+-------------------------------------+|                                                      |
6712|                                                                ||:diagtext:`unsigned zero and a value`||                                                      |
6713|                                                                |+-------------------------------------+|                                                      |
6714+----------------------------------------------------------------+---------------------------------------+------------------------------------------------------+
6715
6716
6717-Wmemset-transposed-args
6718------------------------
6719This diagnostic is enabled by default.
6720
6721**Diagnostic text:**
6722
6723+---------------------------+-----------------------------------------------------+---------------------------------------------------------------+
6724|:warning:`warning:` |nbsp| |+---------------------------------------------------+|:diagtext:`; did you mean to transpose the last two arguments?`|
6725|                           ||:diagtext:`'size' argument to memset is '0'`       ||                                                               |
6726|                           |+---------------------------------------------------+|                                                               |
6727|                           ||:diagtext:`setting buffer to a 'sizeof' expression`||                                                               |
6728|                           |+---------------------------------------------------+|                                                               |
6729+---------------------------+-----------------------------------------------------+---------------------------------------------------------------+
6730
6731
6732-Wmemsize-comparison
6733--------------------
6734This diagnostic is enabled by default.
6735
6736**Diagnostic text:**
6737
6738+-----------------------------------------------------------------------------------------------------------------------+
6739|:warning:`warning:` |nbsp| :diagtext:`size argument in` |nbsp| :placeholder:`A` |nbsp| :diagtext:`call is a comparison`|
6740+-----------------------------------------------------------------------------------------------------------------------+
6741
6742
6743-Wmethod-signatures
6744-------------------
6745**Diagnostic text:**
6746
6747+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6748|:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in implementation of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
6749+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6750
6751+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6752|:warning:`warning:` |nbsp| :diagtext:`conflicting return type in implementation of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
6753+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6754
6755
6756-Wmicrosoft
6757-----------
6758Some of the diagnostics controlled by this flag are enabled by default.
6759
6760Controls `-Winconsistent-dllimport`_, `-Wmicrosoft-anon-tag`_, `-Wmicrosoft-cast`_, `-Wmicrosoft-charize`_, `-Wmicrosoft-comment-paste`_, `-Wmicrosoft-const-init`_, `-Wmicrosoft-cpp-macro`_, `-Wmicrosoft-default-arg-redefinition`_, `-Wmicrosoft-drectve-section`_, `-Wmicrosoft-end-of-file`_, `-Wmicrosoft-enum-forward-reference`_, `-Wmicrosoft-enum-value`_, `-Wmicrosoft-exception-spec`_, `-Wmicrosoft-explicit-constructor-call`_, `-Wmicrosoft-extra-qualification`_, `-Wmicrosoft-fixed-enum`_, `-Wmicrosoft-flexible-array`_, `-Wmicrosoft-goto`_, `-Wmicrosoft-include`_, `-Wmicrosoft-mutable-reference`_, `-Wmicrosoft-pure-definition`_, `-Wmicrosoft-redeclare-static`_, `-Wmicrosoft-sealed`_, `-Wmicrosoft-template`_, `-Wmicrosoft-union-member-reference`_, `-Wmicrosoft-unqualified-friend`_, `-Wmicrosoft-using-decl`_, `-Wmicrosoft-void-pseudo-dtor`_.
6761
6762
6763-Wmicrosoft-anon-tag
6764--------------------
6765Some of the diagnostics controlled by this flag are enabled by default.
6766
6767**Diagnostic text:**
6768
6769+-----------------------------------------------------------------------------+--------------------+---------------------------------------------+
6770|:warning:`warning:` |nbsp| :diagtext:`types declared in an anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`are a Microsoft extension`|
6771|                                                                             ||:diagtext:`struct`||                                             |
6772|                                                                             |+------------------+|                                             |
6773|                                                                             ||:diagtext:`union` ||                                             |
6774|                                                                             |+------------------+|                                             |
6775+-----------------------------------------------------------------------------+--------------------+---------------------------------------------+
6776
6777+--------------------------------------------------------+---------------------+---------------------------------------------+
6778|:warning:`warning:` |nbsp| :diagtext:`anonymous` |nbsp| |+-------------------+| |nbsp| :diagtext:`are a Microsoft extension`|
6779|                                                        ||:diagtext:`structs`||                                             |
6780|                                                        |+-------------------+|                                             |
6781|                                                        ||:diagtext:`unions` ||                                             |
6782|                                                        |+-------------------+|                                             |
6783+--------------------------------------------------------+---------------------+---------------------------------------------+
6784
6785
6786-Wmicrosoft-cast
6787----------------
6788This diagnostic is enabled by default.
6789
6790**Diagnostic text:**
6791
6792+------------------------------------------------------------------------------------------------------------------------------+
6793|:warning:`warning:` |nbsp| :diagtext:`static\_cast between pointer-to-function and pointer-to-object is a Microsoft extension`|
6794+------------------------------------------------------------------------------------------------------------------------------+
6795
6796+-------------------------------------------------------------------------------------------------------------------------------------+
6797|:warning:`warning:` |nbsp| :diagtext:`implicit conversion between pointer-to-function and pointer-to-object is a Microsoft extension`|
6798+-------------------------------------------------------------------------------------------------------------------------------------+
6799
6800
6801-Wmicrosoft-charize
6802-------------------
6803**Diagnostic text:**
6804
6805+-------------------------------------------------------------------------------------+
6806|:warning:`warning:` |nbsp| :diagtext:`charizing operator #@ is a Microsoft extension`|
6807+-------------------------------------------------------------------------------------+
6808
6809
6810-Wmicrosoft-comment-paste
6811-------------------------
6812**Diagnostic text:**
6813
6814+----------------------------------------------------------------------------------------------------------+
6815|:warning:`warning:` |nbsp| :diagtext:`pasting two '/' tokens into a '//' comment is a Microsoft extension`|
6816+----------------------------------------------------------------------------------------------------------+
6817
6818
6819-Wmicrosoft-const-init
6820----------------------
6821This diagnostic is enabled by default.
6822
6823**Diagnostic text:**
6824
6825+----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------+--------------------------------------------+
6826|:warning:`warning:` |nbsp| :diagtext:`default initialization of an object of const type` |nbsp| :placeholder:`A`|+---------------------------------------------------------------+| |nbsp| :diagtext:`is a Microsoft extension`|
6827|                                                                                                                ||                                                               ||                                            |
6828|                                                                                                                |+---------------------------------------------------------------+|                                            |
6829|                                                                                                                || |nbsp| :diagtext:`without a user-provided default constructor`||                                            |
6830|                                                                                                                |+---------------------------------------------------------------+|                                            |
6831+----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------+--------------------------------------------+
6832
6833
6834-Wmicrosoft-cpp-macro
6835---------------------
6836**Diagnostic text:**
6837
6838+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
6839|:warning:`warning:` |nbsp| :diagtext:`C++ operator` |nbsp| :placeholder:`A` |nbsp| :diagtext:`(aka` |nbsp| :placeholder:`B`:diagtext:`) used as a macro name`|
6840+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
6841
6842
6843-Wmicrosoft-default-arg-redefinition
6844------------------------------------
6845This diagnostic is enabled by default.
6846
6847**Diagnostic text:**
6848
6849+-----------------------------------------------------------------------+
6850|:warning:`warning:` |nbsp| :diagtext:`redefinition of default argument`|
6851+-----------------------------------------------------------------------+
6852
6853
6854-Wmicrosoft-drectve-section
6855---------------------------
6856This diagnostic is enabled by default.
6857
6858**Diagnostic text:**
6859
6860+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
6861|:warning:`warning:` |nbsp| :diagtext:`#pragma` |nbsp| :placeholder:`A`:diagtext:`(".drectve") has undefined behavior, use #pragma comment(linker, ...) instead`|
6862+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
6863
6864
6865-Wmicrosoft-end-of-file
6866-----------------------
6867**Diagnostic text:**
6868
6869+----------------------------------------------------------------------------------------------+
6870|:warning:`warning:` |nbsp| :diagtext:`treating Ctrl-Z as end-of-file is a Microsoft extension`|
6871+----------------------------------------------------------------------------------------------+
6872
6873
6874-Wmicrosoft-enum-forward-reference
6875----------------------------------
6876This diagnostic is enabled by default.
6877
6878**Diagnostic text:**
6879
6880+---------------------------------------------------------------------------------------------------+
6881|:warning:`warning:` |nbsp| :diagtext:`forward references to 'enum' types are a Microsoft extension`|
6882+---------------------------------------------------------------------------------------------------+
6883
6884
6885-Wmicrosoft-enum-value
6886----------------------
6887**Diagnostic text:**
6888
6889+---------------------------------------------------------------------------------------------------------------------------+
6890|:warning:`warning:` |nbsp| :diagtext:`enumerator value is not representable in the underlying type` |nbsp| :placeholder:`A`|
6891+---------------------------------------------------------------------------------------------------------------------------+
6892
6893
6894-Wmicrosoft-exception-spec
6895--------------------------
6896Some of the diagnostics controlled by this flag are enabled by default.
6897
6898**Diagnostic text:**
6899
6900+------------------------------------------------------------------------------------------------+
6901|:warning:`warning:` |nbsp| :diagtext:`exception specification of '...' is a Microsoft extension`|
6902+------------------------------------------------------------------------------------------------+
6903
6904+---------------------------+----------------------------------+----------------------------------------------------------------------------------------------------------------+
6905|:warning:`warning:` |nbsp| |+--------------------------------+|:diagtext:`incomplete type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is not allowed in exception specification`|
6906|                           ||                                ||                                                                                                                |
6907|                           |+--------------------------------+|                                                                                                                |
6908|                           ||:diagtext:`pointer to` |nbsp|   ||                                                                                                                |
6909|                           |+--------------------------------+|                                                                                                                |
6910|                           ||:diagtext:`reference to` |nbsp| ||                                                                                                                |
6911|                           |+--------------------------------+|                                                                                                                |
6912+---------------------------+----------------------------------+----------------------------------------------------------------------------------------------------------------+
6913
6914+-----------------------------------------------------------------------------------------------------------------+
6915|:warning:`warning:` |nbsp| :diagtext:`exception specification in declaration does not match previous declaration`|
6916+-----------------------------------------------------------------------------------------------------------------+
6917
6918+------------------------------------------------------------------------------------------------------------------------+
6919|:warning:`warning:` |nbsp| :diagtext:`exception specification in explicit instantiation does not match instantiated one`|
6920+------------------------------------------------------------------------------------------------------------------------+
6921
6922+--------------------------------------------------------------------------------------------------------------------------------+
6923|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is missing exception specification '`:placeholder:`B`:diagtext:`'`|
6924+--------------------------------------------------------------------------------------------------------------------------------+
6925
6926+-------------------------------------------------------------------------------------------------------------------+
6927|:warning:`warning:` |nbsp| :diagtext:`exception specification of overriding function is more lax than base version`|
6928+-------------------------------------------------------------------------------------------------------------------+
6929
6930
6931-Wmicrosoft-exists
6932------------------
6933This diagnostic is enabled by default.
6934
6935**Diagnostic text:**
6936
6937+--------------------------------------------------------+---------------------------------+--------------------------------------------+
6938|:warning:`warning:` |nbsp| :diagtext:`dependent` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`declarations are ignored`|
6939|                                                        ||:diagtext:`\_\_if\_not\_exists`||                                            |
6940|                                                        |+-------------------------------+|                                            |
6941|                                                        ||:diagtext:`\_\_if\_exists`     ||                                            |
6942|                                                        |+-------------------------------+|                                            |
6943+--------------------------------------------------------+---------------------------------+--------------------------------------------+
6944
6945
6946-Wmicrosoft-explicit-constructor-call
6947-------------------------------------
6948This diagnostic is enabled by default.
6949
6950**Diagnostic text:**
6951
6952+-------------------------------------------------------------------------------------------+
6953|:warning:`warning:` |nbsp| :diagtext:`explicit constructor calls are a Microsoft extension`|
6954+-------------------------------------------------------------------------------------------+
6955
6956
6957-Wmicrosoft-extra-qualification
6958-------------------------------
6959This diagnostic is enabled by default.
6960
6961**Diagnostic text:**
6962
6963+--------------------------------------------------------------------------------------------+
6964|:warning:`warning:` |nbsp| :diagtext:`extra qualification on member` |nbsp| :placeholder:`A`|
6965+--------------------------------------------------------------------------------------------+
6966
6967
6968-Wmicrosoft-fixed-enum
6969----------------------
6970**Diagnostic text:**
6971
6972+---------------------------------------------------------------------------------------------------------------+
6973|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a Microsoft extension`|
6974+---------------------------------------------------------------------------------------------------------------+
6975
6976
6977-Wmicrosoft-flexible-array
6978--------------------------
6979**Diagnostic text:**
6980
6981+----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+
6982|:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in otherwise empty` |nbsp| |+---------------------+| |nbsp| :diagtext:`is a Microsoft extension`|
6983|                                                                                                                                  ||:diagtext:`struct`   ||                                            |
6984|                                                                                                                                  |+---------------------+|                                            |
6985|                                                                                                                                  ||:diagtext:`interface`||                                            |
6986|                                                                                                                                  |+---------------------+|                                            |
6987|                                                                                                                                  ||:diagtext:`union`    ||                                            |
6988|                                                                                                                                  |+---------------------+|                                            |
6989|                                                                                                                                  ||:diagtext:`class`    ||                                            |
6990|                                                                                                                                  |+---------------------+|                                            |
6991|                                                                                                                                  ||:diagtext:`enum`     ||                                            |
6992|                                                                                                                                  |+---------------------+|                                            |
6993+----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+
6994
6995+-------------------------------------------------------------------------------------------------------------------------------------------+
6996|:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in a union is a Microsoft extension`|
6997+-------------------------------------------------------------------------------------------------------------------------------------------+
6998
6999
7000-Wmicrosoft-goto
7001----------------
7002This diagnostic is enabled by default.
7003
7004**Diagnostic text:**
7005
7006+----------------------------------------------------------------------------------------------------------+
7007|:warning:`warning:` |nbsp| :diagtext:`jump from this goto statement to its label is a Microsoft extension`|
7008+----------------------------------------------------------------------------------------------------------+
7009
7010
7011-Wmicrosoft-inaccessible-base
7012-----------------------------
7013This diagnostic is enabled by default.
7014
7015**Diagnostic text:**
7016
7017+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7018|:warning:`warning:` |nbsp| :diagtext:`accessing inaccessible direct base` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is a Microsoft extension`|
7019+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7020
7021
7022-Wmicrosoft-include
7023-------------------
7024This diagnostic is enabled by default.
7025
7026**Diagnostic text:**
7027
7028+------------------------------------------------------------------------------------------------------------------------------+
7029|:warning:`warning:` |nbsp| :diagtext:`#include resolved using non-portable Microsoft search rules as:` |nbsp| :placeholder:`A`|
7030+------------------------------------------------------------------------------------------------------------------------------+
7031
7032
7033-Wmicrosoft-mutable-reference
7034-----------------------------
7035This diagnostic is enabled by default.
7036
7037**Diagnostic text:**
7038
7039+---------------------------------------------------------------------------------------------+
7040|:warning:`warning:` |nbsp| :diagtext:`'mutable' on a reference type is a Microsoft extension`|
7041+---------------------------------------------------------------------------------------------+
7042
7043
7044-Wmicrosoft-pure-definition
7045---------------------------
7046This diagnostic is enabled by default.
7047
7048**Diagnostic text:**
7049
7050+-------------------------------------------------------------------------------------------------------+
7051|:warning:`warning:` |nbsp| :diagtext:`function definition with pure-specifier is a Microsoft extension`|
7052+-------------------------------------------------------------------------------------------------------+
7053
7054
7055-Wmicrosoft-redeclare-static
7056----------------------------
7057**Diagnostic text:**
7058
7059+-------------------------------------------------------------------------------------------------------------------------------------------+
7060|:warning:`warning:` |nbsp| :diagtext:`redeclaring non-static` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as static is a Microsoft extension`|
7061+-------------------------------------------------------------------------------------------------------------------------------------------+
7062
7063
7064-Wmicrosoft-sealed
7065------------------
7066This diagnostic is enabled by default.
7067
7068**Diagnostic text:**
7069
7070+--------------------------------------------------------------------------------+
7071|:warning:`warning:` |nbsp| :diagtext:`'sealed' keyword is a Microsoft extension`|
7072+--------------------------------------------------------------------------------+
7073
7074
7075-Wmicrosoft-template
7076--------------------
7077This diagnostic is enabled by default.
7078
7079**Diagnostic text:**
7080
7081+------------------------------------------------------------------------------------------------------------------------------------------------------+
7082|:warning:`warning:` |nbsp| :diagtext:`duplicate explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored as a Microsoft extension`|
7083+------------------------------------------------------------------------------------------------------------------------------------------------------+
7084
7085+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7086|: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`|
7087+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7088
7089+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7090|:warning:`warning:` |nbsp| :diagtext:`using the undeclared type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as a default template argument is a Microsoft extension`|
7091+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7092
7093+-----------------------------------------------------------------------------------------------------------------------------+
7094|:warning:`warning:` |nbsp| :diagtext:`non-type template argument containing a dereference operation is a Microsoft extension`|
7095+-----------------------------------------------------------------------------------------------------------------------------+
7096
7097+---------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------+--------------------------------------------+
7098|:warning:`warning:` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`specialization of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not in` |nbsp| |+----------------------------------------------------------------------------------------+| |nbsp| :diagtext:`is a Microsoft extension`|
7099|                           ||:diagtext:`class template`           ||                                                                                               ||+---------------------------------------------------------+                             ||                                            |
7100|                           |+-------------------------------------+|                                                                                               |||:diagtext:`a namespace enclosing` |nbsp| :placeholder:`C`|                             ||                                            |
7101|                           ||:diagtext:`class template partial`   ||                                                                                               ||+---------------------------------------------------------+                             ||                                            |
7102|                           |+-------------------------------------+|                                                                                               |+----------------------------------------------------------------------------------------+|                                            |
7103|                           ||:diagtext:`variable template`        ||                                                                                               ||+--------------------------------------------------------------------------------------+||                                            |
7104|                           |+-------------------------------------+|                                                                                               |||:diagtext:`class` |nbsp| :placeholder:`C` |nbsp| :diagtext:`or an enclosing namespace`|||                                            |
7105|                           ||:diagtext:`variable template partial`||                                                                                               ||+--------------------------------------------------------------------------------------+||                                            |
7106|                           |+-------------------------------------+|                                                                                               |+----------------------------------------------------------------------------------------+|                                            |
7107|                           ||:diagtext:`function template`        ||                                                                                               |                                                                                          |                                            |
7108|                           |+-------------------------------------+|                                                                                               |                                                                                          |                                            |
7109|                           ||:diagtext:`member function`          ||                                                                                               |                                                                                          |                                            |
7110|                           |+-------------------------------------+|                                                                                               |                                                                                          |                                            |
7111|                           ||:diagtext:`static data member`       ||                                                                                               |                                                                                          |                                            |
7112|                           |+-------------------------------------+|                                                                                               |                                                                                          |                                            |
7113|                           ||:diagtext:`member class`             ||                                                                                               |                                                                                          |                                            |
7114|                           |+-------------------------------------+|                                                                                               |                                                                                          |                                            |
7115|                           ||:diagtext:`member enumeration`       ||                                                                                               |                                                                                          |                                            |
7116|                           |+-------------------------------------+|                                                                                               |                                                                                          |                                            |
7117+---------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------+--------------------------------------------+
7118
7119+------------------------------------------------------------------------------------------------------------------------------------------------+
7120|:warning:`warning:` |nbsp| :diagtext:`template argument for template type parameter must be a type; omitted 'typename' is a Microsoft extension`|
7121+------------------------------------------------------------------------------------------------------------------------------------------------+
7122
7123+-------------------------------------------------------------------------------------------------+
7124|:warning:`warning:` |nbsp| :diagtext:`'static' can only be specified inside the class definition`|
7125+-------------------------------------------------------------------------------------------------+
7126
7127+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7128|: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`|
7129+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7130
7131
7132-Wmicrosoft-union-member-reference
7133----------------------------------
7134This diagnostic is enabled by default.
7135
7136**Diagnostic text:**
7137
7138+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7139|:warning:`warning:` |nbsp| :diagtext:`union member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has reference type` |nbsp| :placeholder:`B`:diagtext:`, which is a Microsoft extension`|
7140+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7141
7142
7143-Wmicrosoft-unqualified-friend
7144------------------------------
7145This diagnostic is enabled by default.
7146
7147**Diagnostic text:**
7148
7149+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7150|: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`|
7151+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7152
7153
7154-Wmicrosoft-using-decl
7155----------------------
7156This diagnostic is enabled by default.
7157
7158**Diagnostic text:**
7159
7160+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7161|: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`|
7162+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7163
7164
7165-Wmicrosoft-void-pseudo-dtor
7166----------------------------
7167This diagnostic is enabled by default.
7168
7169**Diagnostic text:**
7170
7171+------------------------------------------------------------------------------------------------+
7172|:warning:`warning:` |nbsp| :diagtext:`pseudo-destructors on type void are a Microsoft extension`|
7173+------------------------------------------------------------------------------------------------+
7174
7175
7176-Wmismatched-new-delete
7177-----------------------
7178This diagnostic is enabled by default.
7179
7180**Diagnostic text:**
7181
7182+----------------------------------------------+------------------+---------------------------------------------------------------+------------------+-----------------------------------+------------------+--------------+
7183|:warning:`warning:` |nbsp| :diagtext:`'delete`|+----------------+|:diagtext:`' applied to a pointer that was allocated with 'new`|+----------------+|:diagtext:`'; did you mean 'delete`|+----------------+|:diagtext:`'?`|
7184|                                              ||                ||                                                               ||:diagtext:`\[\]`||                                   ||:diagtext:`\[\]`||              |
7185|                                              |+----------------+|                                                               |+----------------+|                                   |+----------------+|              |
7186|                                              ||:diagtext:`\[\]`||                                                               ||                ||                                   ||                ||              |
7187|                                              |+----------------+|                                                               |+----------------+|                                   |+----------------+|              |
7188+----------------------------------------------+------------------+---------------------------------------------------------------+------------------+-----------------------------------+------------------+--------------+
7189
7190
7191-Wmismatched-parameter-types
7192----------------------------
7193This diagnostic is enabled by default.
7194
7195**Diagnostic text:**
7196
7197+---------------------------------------------------------------------------------------------------------------+
7198|:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in implementation of` |nbsp| :placeholder:`A`|
7199+---------------------------------------------------------------------------------------------------------------+
7200
7201
7202-Wmismatched-return-types
7203-------------------------
7204This diagnostic is enabled by default.
7205
7206**Diagnostic text:**
7207
7208+-----------------------------------------------------------------------------------------------------------+
7209|:warning:`warning:` |nbsp| :diagtext:`conflicting return type in implementation of` |nbsp| :placeholder:`A`|
7210+-----------------------------------------------------------------------------------------------------------+
7211
7212
7213-Wmismatched-tags
7214-----------------
7215**Diagnostic text:**
7216
7217+---------------------------------------------------------------------------------+--------------------------+------------------------------+-----------------------------------------------------------+--------------------------+------------------------------+----------------------------------------------------------------------------------------+
7218|: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`|
7219|                                                                                 ||:diagtext:`a struct`    |||                            ||                                                           ||:diagtext:`a struct`    |||                            ||                                                                                        |
7220|                                                                                 |+------------------------+|+----------------------------+|                                                           |+------------------------+|+----------------------------+|                                                                                        |
7221|                                                                                 ||:diagtext:`an interface`||| |nbsp| :diagtext:`template`||                                                           ||:diagtext:`an interface`||| |nbsp| :diagtext:`template`||                                                                                        |
7222|                                                                                 |+------------------------+|+----------------------------+|                                                           |+------------------------+|+----------------------------+|                                                                                        |
7223|                                                                                 ||:diagtext:`a class`     ||                              |                                                           ||:diagtext:`a class`     ||                              |                                                                                        |
7224|                                                                                 |+------------------------+|                              |                                                           |+------------------------+|                              |                                                                                        |
7225+---------------------------------------------------------------------------------+--------------------------+------------------------------+-----------------------------------------------------------+--------------------------+------------------------------+----------------------------------------------------------------------------------------+
7226
7227+---------------------------+-----------------------+------------------------------+--------------------------------------------------------------------------------+-----------------------+------------------------------+----------------------------------------------------------------------------------------+
7228|: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`|
7229|                           ||:diagtext:`struct`   |||                            ||                                                                                ||:diagtext:`struct`   |||                            ||                                                                                        |
7230|                           |+---------------------+|+----------------------------+|                                                                                |+---------------------+|+----------------------------+|                                                                                        |
7231|                           ||:diagtext:`interface`||| |nbsp| :diagtext:`template`||                                                                                ||:diagtext:`interface`||| |nbsp| :diagtext:`template`||                                                                                        |
7232|                           |+---------------------+|+----------------------------+|                                                                                |+---------------------+|+----------------------------+|                                                                                        |
7233|                           ||:diagtext:`class`    ||                              |                                                                                ||:diagtext:`class`    ||                              |                                                                                        |
7234|                           |+---------------------+|                              |                                                                                |+---------------------+|                              |                                                                                        |
7235+---------------------------+-----------------------+------------------------------+--------------------------------------------------------------------------------+-----------------------+------------------------------+----------------------------------------------------------------------------------------+
7236
7237
7238-Wmissing-braces
7239----------------
7240**Diagnostic text:**
7241
7242+----------------------------------------------------------------------------------------+
7243|:warning:`warning:` |nbsp| :diagtext:`suggest braces around initialization of subobject`|
7244+----------------------------------------------------------------------------------------+
7245
7246
7247-Wmissing-declarations
7248----------------------
7249This diagnostic is enabled by default.
7250
7251**Diagnostic text:**
7252
7253+----------------------------------------------------------------------------+
7254|:warning:`warning:` |nbsp| :diagtext:`declaration does not declare anything`|
7255+----------------------------------------------------------------------------+
7256
7257+-----------------------------------------------------------------------------------------------------------------+
7258|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is not permitted on a declaration of a type`|
7259+-----------------------------------------------------------------------------------------------------------------+
7260
7261+--------------------------------------------------------------+
7262|:warning:`warning:` |nbsp| :diagtext:`typedef requires a name`|
7263+--------------------------------------------------------------+
7264
7265+-------------------------------------------------------------------------------------------------+
7266|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' ignored on this declaration`|
7267+-------------------------------------------------------------------------------------------------+
7268
7269
7270-Wmissing-exception-spec
7271------------------------
7272This diagnostic is enabled by default.
7273
7274**Diagnostic text:**
7275
7276+--------------------------------------------------------------------------------------------------------------------------------+
7277|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is missing exception specification '`:placeholder:`B`:diagtext:`'`|
7278+--------------------------------------------------------------------------------------------------------------------------------+
7279
7280
7281-Wmissing-field-initializers
7282----------------------------
7283**Diagnostic text:**
7284
7285+-----------------------------------------------------------------------------------------------------------+
7286|:warning:`warning:` |nbsp| :diagtext:`missing field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`initializer`|
7287+-----------------------------------------------------------------------------------------------------------+
7288
7289
7290-Wmissing-format-attribute
7291--------------------------
7292This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
7293
7294-Wmissing-include-dirs
7295----------------------
7296This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
7297
7298-Wmissing-method-return-type
7299----------------------------
7300**Diagnostic text:**
7301
7302+--------------------------------------------------------------------------------------------+
7303|:warning:`warning:` |nbsp| :diagtext:`method has no return type specified; defaults to 'id'`|
7304+--------------------------------------------------------------------------------------------+
7305
7306
7307-Wmissing-noescape
7308------------------
7309This diagnostic is enabled by default.
7310
7311**Diagnostic text:**
7312
7313+----------------------------------------------------------------------------------------------------------------------------+
7314|:warning:`warning:` |nbsp| :diagtext:`parameter of overriding method should be annotated with \_\_attribute\_\_((noescape))`|
7315+----------------------------------------------------------------------------------------------------------------------------+
7316
7317
7318-Wmissing-noreturn
7319------------------
7320**Diagnostic text:**
7321
7322+----------------------------------------------------------------------------------------+
7323|:warning:`warning:` |nbsp| :diagtext:`block could be declared with attribute 'noreturn'`|
7324+----------------------------------------------------------------------------------------+
7325
7326+---------------------------+----------------------+---------------------------------------------------------------------------------------+
7327|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`could be declared with attribute 'noreturn'`|
7328|                           ||:diagtext:`function`||                                                                                       |
7329|                           |+--------------------+|                                                                                       |
7330|                           ||:diagtext:`method`  ||                                                                                       |
7331|                           |+--------------------+|                                                                                       |
7332+---------------------------+----------------------+---------------------------------------------------------------------------------------+
7333
7334
7335-Wmissing-prototype-for-cc
7336--------------------------
7337This diagnostic is enabled by default.
7338
7339**Diagnostic text:**
7340
7341+----------------------------------------------------------------------------------------------------------------------------------------------+
7342|:warning:`warning:` |nbsp| :diagtext:`function with no prototype cannot use the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`calling convention`|
7343+----------------------------------------------------------------------------------------------------------------------------------------------+
7344
7345
7346-Wmissing-prototypes
7347--------------------
7348**Diagnostic text:**
7349
7350+-------------------------------------------------------------------------------------------------+
7351|:warning:`warning:` |nbsp| :diagtext:`no previous prototype for function` |nbsp| :placeholder:`A`|
7352+-------------------------------------------------------------------------------------------------+
7353
7354
7355-Wmissing-selector-name
7356-----------------------
7357This diagnostic is enabled by default.
7358
7359**Diagnostic text:**
7360
7361+---------------------------------------------------------------------------------------------------------------------------------------------+
7362|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`used as the name of the previous parameter rather than as part of the selector`|
7363+---------------------------------------------------------------------------------------------------------------------------------------------+
7364
7365
7366-Wmissing-sysroot
7367-----------------
7368This diagnostic is enabled by default.
7369
7370**Diagnostic text:**
7371
7372+------------------------------------------------------------------------------------------------+
7373|:warning:`warning:` |nbsp| :diagtext:`no such sysroot directory: '`:placeholder:`A`:diagtext:`'`|
7374+------------------------------------------------------------------------------------------------+
7375
7376
7377-Wmissing-variable-declarations
7378-------------------------------
7379**Diagnostic text:**
7380
7381+---------------------------------------------------------------------------------------------------------------------+
7382|:warning:`warning:` |nbsp| :diagtext:`no previous extern declaration for non-static variable` |nbsp| :placeholder:`A`|
7383+---------------------------------------------------------------------------------------------------------------------+
7384
7385
7386-Rmodule-build
7387--------------
7388**Diagnostic text:**
7389
7390+---------------------------------------------------------------------------------------------------------------------+
7391|:remark:`remark:` |nbsp| :diagtext:`building module '`:placeholder:`A`:diagtext:`' as '`:placeholder:`B`:diagtext:`'`|
7392+---------------------------------------------------------------------------------------------------------------------+
7393
7394+--------------------------------------------------------------------------------------------+
7395|:remark:`remark:` |nbsp| :diagtext:`finished building module '`:placeholder:`A`:diagtext:`'`|
7396+--------------------------------------------------------------------------------------------+
7397
7398+-----------------------------------------------------------------------------------------------------------------------------------+
7399|:remark:`remark:` |nbsp| :diagtext:`could not acquire lock file for module '`:placeholder:`A`:diagtext:`':` |nbsp| :placeholder:`B`|
7400+-----------------------------------------------------------------------------------------------------------------------------------+
7401
7402+---------------------------------------------------------------------------------------------------------------------+
7403|:remark:`remark:` |nbsp| :diagtext:`timed out waiting to acquire lock file for module '`:placeholder:`A`:diagtext:`'`|
7404+---------------------------------------------------------------------------------------------------------------------+
7405
7406
7407-Wmodule-conflict
7408-----------------
7409This diagnostic is enabled by default.
7410
7411**Diagnostic text:**
7412
7413+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7414|:warning:`warning:` |nbsp| :diagtext:`module '`:placeholder:`A`:diagtext:`' conflicts with already-imported module '`:placeholder:`B`:diagtext:`':` |nbsp| :placeholder:`C`|
7415+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7416
7417+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7418|: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`|
7419+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7420
7421
7422-Wmodule-file-config-mismatch
7423-----------------------------
7424This diagnostic is an error by default, but the flag ``-Wno-module-file-config-mismatch`` can be used to disable the error.
7425
7426**Diagnostic text:**
7427
7428+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7429|:error:`error:` |nbsp| :diagtext:`module file` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be loaded due to a configuration mismatch with the current compilation`|
7430+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7431
7432
7433-Wmodule-file-extension
7434-----------------------
7435This diagnostic is enabled by default.
7436
7437**Diagnostic text:**
7438
7439+----------------------------------------------------------------------------------------------------------------+
7440|:warning:`warning:` |nbsp| :diagtext:`duplicate module file extension block name '`:placeholder:`A`:diagtext:`'`|
7441+----------------------------------------------------------------------------------------------------------------+
7442
7443
7444-Rmodule-import
7445---------------
7446**Diagnostic text:**
7447
7448+------------------------------------------------------------------------------------+-----------------------------------------------------------+-------------------------------------------------------+
7449|:remark:`remark:` |nbsp| :diagtext:`importing module '`:placeholder:`A`:diagtext:`'`|+---------------------------------------------------------+| |nbsp| :diagtext:`from '`:placeholder:`B`:diagtext:`'`|
7450|                                                                                    ||                                                         ||                                                       |
7451|                                                                                    |+---------------------------------------------------------+|                                                       |
7452|                                                                                    ||+-------------------------------------------------------+||                                                       |
7453|                                                                                    ||| |nbsp| :diagtext:`into '`:placeholder:`D`:diagtext:`'`|||                                                       |
7454|                                                                                    ||+-------------------------------------------------------+||                                                       |
7455|                                                                                    |+---------------------------------------------------------+|                                                       |
7456+------------------------------------------------------------------------------------+-----------------------------------------------------------+-------------------------------------------------------+
7457
7458
7459-Wmodule-import-in-extern-c
7460---------------------------
7461This diagnostic is an error by default, but the flag ``-Wno-module-import-in-extern-c`` can be used to disable the error.
7462
7463**Diagnostic text:**
7464
7465+-----------------------------------------------------------------------------------------------------------------------------------------------+
7466|:error:`error:` |nbsp| :diagtext:`import of C++ module '`:placeholder:`A`:diagtext:`' appears within extern "C" language linkage specification`|
7467+-----------------------------------------------------------------------------------------------------------------------------------------------+
7468
7469
7470-Wmodules-ambiguous-internal-linkage
7471------------------------------------
7472This diagnostic is enabled by default.
7473
7474**Diagnostic text:**
7475
7476+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
7477|:warning:`warning:` |nbsp| :diagtext:`ambiguous use of internal linkage declaration` |nbsp| :placeholder:`A` |nbsp| :diagtext:`defined in multiple modules`|
7478+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
7479
7480
7481-Wmodules-import-nested-redundant
7482---------------------------------
7483This diagnostic is an error by default, but the flag ``-Wno-modules-import-nested-redundant`` can be used to disable the error.
7484
7485**Diagnostic text:**
7486
7487+-------------------------------------------------------------------------------------------------------------------------------------+
7488|:error:`error:` |nbsp| :diagtext:`redundant #include of module '`:placeholder:`A`:diagtext:`' appears within` |nbsp| :placeholder:`B`|
7489+-------------------------------------------------------------------------------------------------------------------------------------+
7490
7491
7492-Wmost
7493------
7494Some of the diagnostics controlled by this flag are enabled by default.
7495
7496Controls `-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`_.
7497
7498
7499-Wmove
7500------
7501Controls `-Wpessimizing-move`_, `-Wredundant-move`_, `-Wreturn-std-move`_, `-Wself-move`_.
7502
7503
7504-Wmsvc-include
7505--------------
7506Synonym for `-Wmicrosoft-include`_.
7507
7508
7509-Wmsvc-not-found
7510----------------
7511This diagnostic is enabled by default.
7512
7513**Diagnostic text:**
7514
7515+-------------------------------------------------------------------------------------------------------------------------------------+
7516|:warning:`warning:` |nbsp| :diagtext:`unable to find a Visual Studio installation; try running Clang from a developer command prompt`|
7517+-------------------------------------------------------------------------------------------------------------------------------------+
7518
7519
7520-Wmultichar
7521-----------
7522This diagnostic is enabled by default.
7523
7524**Diagnostic text:**
7525
7526+-------------------------------------------------------------------------+
7527|:warning:`warning:` |nbsp| :diagtext:`multi-character character constant`|
7528+-------------------------------------------------------------------------+
7529
7530
7531-Wmultiple-move-vbase
7532---------------------
7533This diagnostic is enabled by default.
7534
7535**Diagnostic text:**
7536
7537+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7538|: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`|
7539+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7540
7541
7542-Wnarrowing
7543-----------
7544Synonym for `-Wc++11-narrowing`_.
7545
7546
7547-Wnested-anon-types
7548-------------------
7549**Diagnostic text:**
7550
7551+---------------------------------------------------------------------------------------+--------------------+------------------------------------+
7552|:warning:`warning:` |nbsp| :diagtext:`anonymous types declared in an anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`are an extension`|
7553|                                                                                       ||:diagtext:`struct`||                                    |
7554|                                                                                       |+------------------+|                                    |
7555|                                                                                       ||:diagtext:`union` ||                                    |
7556|                                                                                       |+------------------+|                                    |
7557+---------------------------------------------------------------------------------------+--------------------+------------------------------------+
7558
7559
7560-Wnested-externs
7561----------------
7562This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
7563
7564-Wnew-returns-null
7565------------------
7566This diagnostic is enabled by default.
7567
7568**Diagnostic text:**
7569
7570+-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+
7571|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return a null pointer unless it is declared 'throw()'`|+---------------------------------+|
7572|                                                                                                                               ||                                 ||
7573|                                                                                                                               |+---------------------------------+|
7574|                                                                                                                               || |nbsp| :diagtext:`or 'noexcept'`||
7575|                                                                                                                               |+---------------------------------+|
7576+-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+
7577
7578
7579-Wnewline-eof
7580-------------
7581**Diagnostic text:**
7582
7583+----------------------------------------------------------------+
7584|:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`|
7585+----------------------------------------------------------------+
7586
7587+----------------------------------------------------------------+
7588|:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`|
7589+----------------------------------------------------------------+
7590
7591
7592-Wnoderef
7593---------
7594This diagnostic is enabled by default.
7595
7596**Diagnostic text:**
7597
7598+----------------------------------------------------------------------------------------------------------------------------+
7599|:warning:`warning:` |nbsp| :diagtext:`dereferencing` |nbsp| :placeholder:`A`:diagtext:`; was declared with a 'noderef' type`|
7600+----------------------------------------------------------------------------------------------------------------------------+
7601
7602+-----------------------------------------------------------------------------------+
7603|:warning:`warning:` |nbsp| :diagtext:`dereferencing expression marked as 'noderef'`|
7604+-----------------------------------------------------------------------------------+
7605
7606+-----------------------------------------------------------------------------------------------------+
7607|:warning:`warning:` |nbsp| :diagtext:`casting to dereferenceable pointer removes 'noderef' attribute`|
7608+-----------------------------------------------------------------------------------------------------+
7609
7610
7611-Wnoexcept-type
7612---------------
7613Synonym for `-Wc++17-compat-mangling`_.
7614
7615
7616-Wnon-gcc
7617---------
7618Some of the diagnostics controlled by this flag are enabled by default.
7619
7620Controls `-Wconversion`_, `-Wliteral-range`_, `-Wsign-compare`_.
7621
7622
7623-Wnon-literal-null-conversion
7624-----------------------------
7625This diagnostic is enabled by default.
7626
7627**Diagnostic text:**
7628
7629+--------------------------------------------------------------------------------------------------------------------------------------------+
7630|:warning:`warning:` |nbsp| :diagtext:`expression which evaluates to zero treated as a null pointer constant of type` |nbsp| :placeholder:`A`|
7631+--------------------------------------------------------------------------------------------------------------------------------------------+
7632
7633
7634-Wnon-modular-include-in-framework-module
7635-----------------------------------------
7636**Diagnostic text:**
7637
7638+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
7639|:warning:`warning:` |nbsp| :diagtext:`include of non-modular header inside framework module '`:placeholder:`A`:diagtext:`': '`:placeholder:`B`:diagtext:`'`|
7640+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
7641
7642
7643-Wnon-modular-include-in-module
7644-------------------------------
7645Also controls `-Wnon-modular-include-in-framework-module`_.
7646
7647**Diagnostic text:**
7648
7649+-------------------------------------------------------------------------------------------------------------------------------------------------+
7650|:warning:`warning:` |nbsp| :diagtext:`include of non-modular header inside module '`:placeholder:`A`:diagtext:`': '`:placeholder:`B`:diagtext:`'`|
7651+-------------------------------------------------------------------------------------------------------------------------------------------------+
7652
7653
7654-Wnon-pod-varargs
7655-----------------
7656This diagnostic is an error by default, but the flag ``-Wno-non-pod-varargs`` can be used to disable the error.
7657
7658**Diagnostic text:**
7659
7660+----------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------------------------+-------------------------+----------------------------------------+
7661|: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`|
7662|                                                                ||:diagtext:`non-POD`    ||                                                                                            ||:diagtext:`function`   ||                                        |
7663|                                                                |+-----------------------+|                                                                                            |+-----------------------+|                                        |
7664|                                                                ||:diagtext:`non-trivial`||                                                                                            ||:diagtext:`block`      ||                                        |
7665|                                                                |+-----------------------+|                                                                                            |+-----------------------+|                                        |
7666|                                                                |                         |                                                                                            ||:diagtext:`method`     ||                                        |
7667|                                                                |                         |                                                                                            |+-----------------------+|                                        |
7668|                                                                |                         |                                                                                            ||:diagtext:`constructor`||                                        |
7669|                                                                |                         |                                                                                            |+-----------------------+|                                        |
7670+----------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------------------------+-------------------------+----------------------------------------+
7671
7672+------------------------------------------------------+-------------------------+-------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------+
7673|: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`|
7674|                                                      ||:diagtext:`non-POD`    ||                                                                                                 ||:diagtext:`function`   ||                                                                          |
7675|                                                      |+-----------------------+|                                                                                                 |+-----------------------+|                                                                          |
7676|                                                      ||:diagtext:`non-trivial`||                                                                                                 ||:diagtext:`block`      ||                                                                          |
7677|                                                      |+-----------------------+|                                                                                                 |+-----------------------+|                                                                          |
7678|                                                      |                         |                                                                                                 ||:diagtext:`method`     ||                                                                          |
7679|                                                      |                         |                                                                                                 |+-----------------------+|                                                                          |
7680|                                                      |                         |                                                                                                 ||:diagtext:`constructor`||                                                                          |
7681|                                                      |                         |                                                                                                 |+-----------------------+|                                                                          |
7682+------------------------------------------------------+-------------------------+-------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------+
7683
7684+----------------------------------------------------------------------------------------------------------+
7685|:error:`error:` |nbsp| :diagtext:`second argument to 'va\_arg' is of non-POD type` |nbsp| :placeholder:`A`|
7686+----------------------------------------------------------------------------------------------------------+
7687
7688+--------------------------------------------------------------------------------------------------------------------------+
7689|:error:`error:` |nbsp| :diagtext:`second argument to 'va\_arg' is of ARC ownership-qualified type` |nbsp| :placeholder:`A`|
7690+--------------------------------------------------------------------------------------------------------------------------+
7691
7692
7693-Wnon-virtual-dtor
7694------------------
7695**Diagnostic text:**
7696
7697+---------------------------------------------------------------------------------------------------------------+
7698|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has virtual functions but non-virtual destructor`|
7699+---------------------------------------------------------------------------------------------------------------+
7700
7701
7702-Wnonnull
7703---------
7704This diagnostic is enabled by default.
7705
7706**Diagnostic text:**
7707
7708+------------------------------------------------------------------------------------------------+
7709|:warning:`warning:` |nbsp| :diagtext:`null passed to a callee that requires a non-null argument`|
7710+------------------------------------------------------------------------------------------------+
7711
7712+-----------------------------------------------------------------+----------------------+---------------------------------------------------------+
7713|:warning:`warning:` |nbsp| :diagtext:`null returned from` |nbsp| |+--------------------+| |nbsp| :diagtext:`that requires a non-null return value`|
7714|                                                                 ||:diagtext:`function`||                                                         |
7715|                                                                 |+--------------------+|                                                         |
7716|                                                                 ||:diagtext:`method`  ||                                                         |
7717|                                                                 |+--------------------+|                                                         |
7718+-----------------------------------------------------------------+----------------------+---------------------------------------------------------+
7719
7720
7721-Wnonportable-cfstrings
7722-----------------------
7723This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
7724
7725-Wnonportable-include-path
7726--------------------------
7727This diagnostic is enabled by default.
7728
7729**Diagnostic text:**
7730
7731+------------------------------------------------------------------------------------------------------------------------------------------------------+
7732|:warning:`warning:` |nbsp| :diagtext:`non-portable path to file '`:placeholder:`A`:diagtext:`'; specified path differs in case from file name on disk`|
7733+------------------------------------------------------------------------------------------------------------------------------------------------------+
7734
7735
7736-Wnonportable-system-include-path
7737---------------------------------
7738**Diagnostic text:**
7739
7740+------------------------------------------------------------------------------------------------------------------------------------------------------+
7741|:warning:`warning:` |nbsp| :diagtext:`non-portable path to file '`:placeholder:`A`:diagtext:`'; specified path differs in case from file name on disk`|
7742+------------------------------------------------------------------------------------------------------------------------------------------------------+
7743
7744
7745-Wnonportable-vector-initialization
7746-----------------------------------
7747This diagnostic is enabled by default.
7748
7749**Diagnostic text:**
7750
7751+---------------------------------------------------------------------------------------------------------------------+
7752|:warning:`warning:` |nbsp| :diagtext:`vector initializers are not compatible with NEON intrinsics in big endian mode`|
7753+---------------------------------------------------------------------------------------------------------------------+
7754
7755
7756-Wnontrivial-memaccess
7757----------------------
7758This diagnostic is enabled by default.
7759
7760**Diagnostic text:**
7761
7762+---------------------------+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------+
7763|: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| |+----------------------------------------+|
7764|                           ||:diagtext:`destination for`  ||                                                                                                                                                                         ||:diagtext:`primitive-default-initialize`||
7765|                           |+-----------------------------+|                                                                                                                                                                         |+----------------------------------------+|
7766|                           ||:diagtext:`source of`        ||                                                                                                                                                                         ||:diagtext:`primitive-copy`              ||
7767|                           |+-----------------------------+|                                                                                                                                                                         |+----------------------------------------+|
7768|                           ||:diagtext:`first operand of` ||                                                                                                                                                                         |                                          |
7769|                           |+-----------------------------+|                                                                                                                                                                         |                                          |
7770|                           ||:diagtext:`second operand of`||                                                                                                                                                                         |                                          |
7771|                           |+-----------------------------+|                                                                                                                                                                         |                                          |
7772+---------------------------+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------+
7773
7774
7775-Wnsconsumed-mismatch
7776---------------------
7777This diagnostic is enabled by default.
7778
7779**Diagnostic text:**
7780
7781+---------------------------------------------------------------------------------------------------------------+
7782|:warning:`warning:` |nbsp| :diagtext:`overriding method has mismatched ns\_consumed attribute on its parameter`|
7783+---------------------------------------------------------------------------------------------------------------+
7784
7785
7786-Wnsreturns-mismatch
7787--------------------
7788This diagnostic is enabled by default.
7789
7790**Diagnostic text:**
7791
7792+-------------------------------------------------------------------------------------+---------------------------+------------------------------+
7793|:warning:`warning:` |nbsp| :diagtext:`overriding method has mismatched ns\_returns\_`|+-------------------------+| |nbsp| :diagtext:`attributes`|
7794|                                                                                     ||:diagtext:`not\_retained`||                              |
7795|                                                                                     |+-------------------------+|                              |
7796|                                                                                     ||:diagtext:`retained`     ||                              |
7797|                                                                                     |+-------------------------+|                              |
7798+-------------------------------------------------------------------------------------+---------------------------+------------------------------+
7799
7800
7801-Wnull-arithmetic
7802-----------------
7803This diagnostic is enabled by default.
7804
7805**Diagnostic text:**
7806
7807+--------------------------------------------------------------------------+
7808|:warning:`warning:` |nbsp| :diagtext:`use of NULL in arithmetic operation`|
7809+--------------------------------------------------------------------------+
7810
7811+--------------------------------------------------------------------------------------+--------------------------------------------------------------+
7812|:warning:`warning:` |nbsp| :diagtext:`comparison between NULL and non-pointer` |nbsp| |+------------------------------------------------------------+|
7813|                                                                                      ||+----------------------------------------------------------+||
7814|                                                                                      |||:diagtext:`(`:placeholder:`B` |nbsp| :diagtext:`and NULL)`|||
7815|                                                                                      ||+----------------------------------------------------------+||
7816|                                                                                      |+------------------------------------------------------------+|
7817|                                                                                      ||+----------------------------------------------------------+||
7818|                                                                                      |||:diagtext:`(NULL and` |nbsp| :placeholder:`B`:diagtext:`)`|||
7819|                                                                                      ||+----------------------------------------------------------+||
7820|                                                                                      |+------------------------------------------------------------+|
7821+--------------------------------------------------------------------------------------+--------------------------------------------------------------+
7822
7823
7824-Wnull-character
7825----------------
7826This diagnostic is enabled by default.
7827
7828**Diagnostic text:**
7829
7830+-----------------------------------------------------------------------------+--------------------+---------------------------+
7831|:warning:`warning:` |nbsp| :diagtext:`null character(s) preserved in` |nbsp| |+------------------+| |nbsp| :diagtext:`literal`|
7832|                                                                             ||:diagtext:`char`  ||                           |
7833|                                                                             |+------------------+|                           |
7834|                                                                             ||:diagtext:`string`||                           |
7835|                                                                             |+------------------+|                           |
7836+-----------------------------------------------------------------------------+--------------------+---------------------------+
7837
7838+-------------------------------------------------------------+
7839|:warning:`warning:` |nbsp| :diagtext:`null character ignored`|
7840+-------------------------------------------------------------+
7841
7842
7843-Wnull-conversion
7844-----------------
7845This diagnostic is enabled by default.
7846
7847**Diagnostic text:**
7848
7849+---------------------------------------------------------------------+---------------------+-------------------------------------------------------+
7850|:warning:`warning:` |nbsp| :diagtext:`implicit conversion of` |nbsp| |+-------------------+| |nbsp| :diagtext:`constant to` |nbsp| :placeholder:`B`|
7851|                                                                     ||:diagtext:`NULL`   ||                                                       |
7852|                                                                     |+-------------------+|                                                       |
7853|                                                                     ||:diagtext:`nullptr`||                                                       |
7854|                                                                     |+-------------------+|                                                       |
7855+---------------------------------------------------------------------+---------------------+-------------------------------------------------------+
7856
7857
7858-Wnull-dereference
7859------------------
7860This diagnostic is enabled by default.
7861
7862**Diagnostic text:**
7863
7864+------------------------------------------------------------------------------------------------------------+
7865|:warning:`warning:` |nbsp| :diagtext:`binding dereferenced null pointer to reference has undefined behavior`|
7866+------------------------------------------------------------------------------------------------------------+
7867
7868+---------------------------------------------------------------------------------------------------------+
7869|:warning:`warning:` |nbsp| :diagtext:`indirection of non-volatile null pointer will be deleted, not trap`|
7870+---------------------------------------------------------------------------------------------------------+
7871
7872
7873-Wnull-pointer-arithmetic
7874-------------------------
7875**Diagnostic text:**
7876
7877+--------------------------------------------------------------------------------------------------------------------------------+
7878|:warning:`warning:` |nbsp| :diagtext:`arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension`|
7879+--------------------------------------------------------------------------------------------------------------------------------+
7880
7881+-------------------------------------------------------------------------------------------------------------+----------------------------------------------+
7882|:warning:`warning:` |nbsp| :diagtext:`performing pointer arithmetic on a null pointer has undefined behavior`|+--------------------------------------------+|
7883|                                                                                                             ||                                            ||
7884|                                                                                                             |+--------------------------------------------+|
7885|                                                                                                             || |nbsp| :diagtext:`if the offset is nonzero`||
7886|                                                                                                             |+--------------------------------------------+|
7887+-------------------------------------------------------------------------------------------------------------+----------------------------------------------+
7888
7889
7890-Wnullability
7891-------------
7892This diagnostic is enabled by default.
7893
7894**Diagnostic text:**
7895
7896+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7897|:warning:`warning:` |nbsp| :diagtext:`conflicting nullability specifier on parameter types,` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`|
7898+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7899
7900+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7901|:warning:`warning:` |nbsp| :diagtext:`conflicting nullability specifier on return types,` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`|
7902+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7903
7904+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
7905|:warning:`warning:` |nbsp| :diagtext:`nullability specifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`|
7906+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
7907
7908+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7909|:warning:`warning:` |nbsp| :diagtext:`synthesized setter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for null\_resettable property` |nbsp| :placeholder:`B` |nbsp| :diagtext:`does not handle nil`|
7910+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7911
7912+----------------------------------------------------------------------------------------------+
7913|:warning:`warning:` |nbsp| :diagtext:`duplicate nullability specifier` |nbsp| :placeholder:`A`|
7914+----------------------------------------------------------------------------------------------+
7915
7916
7917-Wnullability-completeness
7918--------------------------
7919This diagnostic is enabled by default.
7920
7921Also controls `-Wnullability-completeness-on-arrays`_.
7922
7923**Diagnostic text:**
7924
7925+---------------------------+----------------------------+-----------------------------------------------------------------------------------------------------------+
7926|:warning:`warning:` |nbsp| |+--------------------------+| |nbsp| :diagtext:`is missing a nullability type specifier (\_Nonnull, \_Nullable, or \_Null\_unspecified)`|
7927|                           ||:diagtext:`pointer`       ||                                                                                                           |
7928|                           |+--------------------------+|                                                                                                           |
7929|                           ||:diagtext:`block pointer` ||                                                                                                           |
7930|                           |+--------------------------+|                                                                                                           |
7931|                           ||:diagtext:`member pointer`||                                                                                                           |
7932|                           |+--------------------------+|                                                                                                           |
7933+---------------------------+----------------------------+-----------------------------------------------------------------------------------------------------------+
7934
7935
7936-Wnullability-completeness-on-arrays
7937------------------------------------
7938This diagnostic is enabled by default.
7939
7940**Diagnostic text:**
7941
7942+----------------------------------------------------------------------------------------------------------------------------------------------+
7943|:warning:`warning:` |nbsp| :diagtext:`array parameter is missing a nullability type specifier (\_Nonnull, \_Nullable, or \_Null\_unspecified)`|
7944+----------------------------------------------------------------------------------------------------------------------------------------------+
7945
7946
7947-Wnullability-declspec
7948----------------------
7949This diagnostic is an error by default, but the flag ``-Wno-nullability-declspec`` can be used to disable the error.
7950
7951**Diagnostic text:**
7952
7953+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------+-------------+
7954|: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:`?`|
7955|                                                                                                                                                                                                                                 ||:diagtext:`pointer`                ||             |
7956|                                                                                                                                                                                                                                 |+-----------------------------------+|             |
7957|                                                                                                                                                                                                                                 ||:diagtext:`block pointer`          ||             |
7958|                                                                                                                                                                                                                                 |+-----------------------------------+|             |
7959|                                                                                                                                                                                                                                 ||:diagtext:`member pointer`         ||             |
7960|                                                                                                                                                                                                                                 |+-----------------------------------+|             |
7961|                                                                                                                                                                                                                                 ||:diagtext:`function pointer`       ||             |
7962|                                                                                                                                                                                                                                 |+-----------------------------------+|             |
7963|                                                                                                                                                                                                                                 ||:diagtext:`member function pointer`||             |
7964|                                                                                                                                                                                                                                 |+-----------------------------------+|             |
7965+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------+-------------+
7966
7967
7968-Wnullability-extension
7969-----------------------
7970**Diagnostic text:**
7971
7972+---------------------------------------------------------------------------------------------------------------------------------+
7973|:warning:`warning:` |nbsp| :diagtext:`type nullability specifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a Clang extension`|
7974+---------------------------------------------------------------------------------------------------------------------------------+
7975
7976
7977-Wnullability-inferred-on-nested-type
7978-------------------------------------
7979This diagnostic is enabled by default.
7980
7981**Diagnostic text:**
7982
7983+--------------------------------------------------------------------------------------------+-----------------------+---------------------------------+
7984|:warning:`warning:` |nbsp| :diagtext:`inferring '\_Nonnull' for pointer type within` |nbsp| |+---------------------+| |nbsp| :diagtext:`is deprecated`|
7985|                                                                                            ||:diagtext:`array`    ||                                 |
7986|                                                                                            |+---------------------+|                                 |
7987|                                                                                            ||:diagtext:`reference`||                                 |
7988|                                                                                            |+---------------------+|                                 |
7989+--------------------------------------------------------------------------------------------+-----------------------+---------------------------------+
7990
7991
7992-Wnullable-to-nonnull-conversion
7993--------------------------------
7994**Diagnostic text:**
7995
7996+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7997|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from nullable pointer` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to non-nullable pointer type` |nbsp| :placeholder:`B`|
7998+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7999
8000
8001-Wobjc-autosynthesis-property-ivar-name-match
8002---------------------------------------------
8003This diagnostic is enabled by default.
8004
8005**Diagnostic text:**
8006
8007+---------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------------------------------------------------+
8008|: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`|
8009|                                                                                                                           ||                       ||                                                                                                                                 |
8010|                                                                                                                           |+-----------------------+|                                                                                                                                 |
8011|                                                                                                                           ||:diagtext:`synthesized`||                                                                                                                                 |
8012|                                                                                                                           |+-----------------------+|                                                                                                                                 |
8013+---------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------------------------------------------------+
8014
8015
8016-Wobjc-bool-constant-conversion
8017-------------------------------
8018This diagnostic is enabled by default.
8019
8020**Diagnostic text:**
8021
8022+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8023|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from constant value` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to BOOL; the only well defined values for BOOL are YES and NO`|
8024+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8025
8026
8027-Wobjc-boxing
8028-------------
8029This diagnostic is enabled by default.
8030
8031**Diagnostic text:**
8032
8033+-------------------------------------------------------------------------------------------------------------------------------------------------+
8034|:warning:`warning:` |nbsp| :diagtext:`string is ill-formed as UTF-8 and will become a null` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when boxed`|
8035+-------------------------------------------------------------------------------------------------------------------------------------------------+
8036
8037
8038-Wobjc-circular-container
8039-------------------------
8040This diagnostic is enabled by default.
8041
8042**Diagnostic text:**
8043
8044+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8045|:warning:`warning:` |nbsp| :diagtext:`adding` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`might cause circular dependency in container`|
8046+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8047
8048
8049-Wobjc-cocoa-api
8050----------------
8051Synonym for `-Wobjc-redundant-api-use`_.
8052
8053
8054-Wobjc-designated-initializers
8055------------------------------
8056This diagnostic is enabled by default.
8057
8058**Diagnostic text:**
8059
8060+-----------------------------------------------------------------------------------------------------------------------------------+
8061|:warning:`warning:` |nbsp| :diagtext:`designated initializer missing a 'super' call to a designated initializer of the super class`|
8062+-----------------------------------------------------------------------------------------------------------------------------------+
8063
8064+--------------------------------------------------------------------------------------------------+
8065|:warning:`warning:` |nbsp| :diagtext:`designated initializer invoked a non-designated initializer`|
8066+--------------------------------------------------------------------------------------------------+
8067
8068+--------------------------------------------------------------------------------------------------------------------+
8069|:warning:`warning:` |nbsp| :diagtext:`designated initializer should only invoke a designated initializer on 'super'`|
8070+--------------------------------------------------------------------------------------------------------------------+
8071
8072+------------------------------------------------------------------------------------------------------------------------------------------------------------+
8073|:warning:`warning:` |nbsp| :diagtext:`method override for the designated initializer of the superclass` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found`|
8074+------------------------------------------------------------------------------------------------------------------------------------------------------------+
8075
8076+-----------------------------------------------------------------------------------------------------------+
8077|:warning:`warning:` |nbsp| :diagtext:`convenience initializer missing a 'self' call to another initializer`|
8078+-----------------------------------------------------------------------------------------------------------+
8079
8080+----------------------------------------------------------------------------------------------------------+
8081|:warning:`warning:` |nbsp| :diagtext:`convenience initializer should not invoke an initializer on 'super'`|
8082+----------------------------------------------------------------------------------------------------------+
8083
8084
8085-Wobjc-flexible-array
8086---------------------
8087This diagnostic is enabled by default.
8088
8089**Diagnostic text:**
8090
8091+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8092|: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`|
8093+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8094
8095+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8096|: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`|
8097+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8098
8099
8100-Wobjc-forward-class-redefinition
8101---------------------------------
8102This diagnostic is enabled by default.
8103
8104**Diagnostic text:**
8105
8106+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
8107|:warning:`warning:` |nbsp| :diagtext:`redefinition of forward class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of a typedef name of an object type is ignored`|
8108+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
8109
8110
8111-Wobjc-interface-ivars
8112----------------------
8113**Diagnostic text:**
8114
8115+-------------------------------------------------------------------------------------------------------+
8116|:warning:`warning:` |nbsp| :diagtext:`declaration of instance variables in the interface is deprecated`|
8117+-------------------------------------------------------------------------------------------------------+
8118
8119
8120-Wobjc-literal-compare
8121----------------------
8122This diagnostic is enabled by default.
8123
8124Also controls `-Wobjc-string-compare`_.
8125
8126**Diagnostic text:**
8127
8128+-------------------------------------------------------------------+----------------------------------+------------------------------------------+
8129|:warning:`warning:` |nbsp| :diagtext:`direct comparison of` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`has undefined behavior`|
8130|                                                                   ||:diagtext:`an array literal`    ||                                          |
8131|                                                                   |+--------------------------------+|                                          |
8132|                                                                   ||:diagtext:`a dictionary literal`||                                          |
8133|                                                                   |+--------------------------------+|                                          |
8134|                                                                   ||:diagtext:`a numeric literal`   ||                                          |
8135|                                                                   |+--------------------------------+|                                          |
8136|                                                                   ||:diagtext:`a boxed expression`  ||                                          |
8137|                                                                   |+--------------------------------+|                                          |
8138|                                                                   ||                                ||                                          |
8139|                                                                   |+--------------------------------+|                                          |
8140+-------------------------------------------------------------------+----------------------------------+------------------------------------------+
8141
8142
8143-Wobjc-literal-conversion
8144-------------------------
8145This diagnostic is enabled by default.
8146
8147**Diagnostic text:**
8148
8149+-------------------------------------------------------------------------------------------------------------------------+
8150|:warning:`warning:` |nbsp| :diagtext:`implicit boolean conversion of Objective-C object literal always evaluates to true`|
8151+-------------------------------------------------------------------------------------------------------------------------+
8152
8153+-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------+
8154|:warning:`warning:` |nbsp| :diagtext:`object of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not compatible with` |nbsp| |+---------------------------------+| |nbsp| :placeholder:`C`|
8155|                                                                                                                               ||:diagtext:`array element type`   ||                        |
8156|                                                                                                                               |+---------------------------------+|                        |
8157|                                                                                                                               ||:diagtext:`dictionary key type`  ||                        |
8158|                                                                                                                               |+---------------------------------+|                        |
8159|                                                                                                                               ||:diagtext:`dictionary value type`||                        |
8160|                                                                                                                               |+---------------------------------+|                        |
8161+-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------+
8162
8163
8164-Wobjc-macro-redefinition
8165-------------------------
8166This diagnostic is enabled by default.
8167
8168**Diagnostic text:**
8169
8170+-------------------------------------------------------------------------------------------+
8171|:warning:`warning:` |nbsp| :diagtext:`ignoring redefinition of Objective-C qualifier macro`|
8172+-------------------------------------------------------------------------------------------+
8173
8174
8175-Wobjc-messaging-id
8176-------------------
8177**Diagnostic text:**
8178
8179+---------------------------------------------------------------+
8180|:warning:`warning:` |nbsp| :diagtext:`messaging unqualified id`|
8181+---------------------------------------------------------------+
8182
8183
8184-Wobjc-method-access
8185--------------------
8186This diagnostic is enabled by default.
8187
8188**Diagnostic text:**
8189
8190+---------------------------------------------------------------------------------------------------------------------------------------+
8191|:warning:`warning:` |nbsp| :diagtext:`class method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id')`|
8192+---------------------------------------------------------------------------------------------------------------------------------------+
8193
8194+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8195|: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:`?`|
8196+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8197
8198+------------------------------------------------------------------------------------------------------------------------------------------+
8199|:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id')`|
8200+------------------------------------------------------------------------------------------------------------------------------------------+
8201
8202+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8203|: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:`?`|
8204+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8205
8206+-------------------------------------------------------------------------------------------------------------------------------------------------------+
8207|:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found instead of class method` |nbsp| :placeholder:`B`|
8208+-------------------------------------------------------------------------------------------------------------------------------------------------------+
8209
8210+---------------------------------------------------------------------------------------------------------------------------------------------------------+
8211|:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is being used on 'Class' which is not in the root class`|
8212+---------------------------------------------------------------------------------------------------------------------------------------------------------+
8213
8214
8215-Wobjc-missing-property-synthesis
8216---------------------------------
8217**Diagnostic text:**
8218
8219+------------------------------------------------------------------------------------------------------------------+
8220|:warning:`warning:` |nbsp| :diagtext:`auto property synthesis is synthesizing property not explicitly synthesized`|
8221+------------------------------------------------------------------------------------------------------------------+
8222
8223
8224-Wobjc-missing-super-calls
8225--------------------------
8226This diagnostic is enabled by default.
8227
8228**Diagnostic text:**
8229
8230+-------------------------------------------------------------------------------------------------------------------+
8231|:warning:`warning:` |nbsp| :diagtext:`method possibly missing a \[super` |nbsp| :placeholder:`A`:diagtext:`\] call`|
8232+-------------------------------------------------------------------------------------------------------------------+
8233
8234
8235-Wobjc-multiple-method-names
8236----------------------------
8237This diagnostic is enabled by default.
8238
8239**Diagnostic text:**
8240
8241+--------------------------------------------------------------------------------------------------------------+
8242|:warning:`warning:` |nbsp| :diagtext:`multiple methods named` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found`|
8243+--------------------------------------------------------------------------------------------------------------+
8244
8245
8246-Wobjc-noncopy-retain-block-property
8247------------------------------------
8248This diagnostic is enabled by default.
8249
8250**Diagnostic text:**
8251
8252+--------------------------------------------------------------------------------------------------------------------+
8253|:warning:`warning:` |nbsp| :diagtext:`retain'ed block property does not copy the block - use copy attribute instead`|
8254+--------------------------------------------------------------------------------------------------------------------+
8255
8256
8257-Wobjc-nonunified-exceptions
8258----------------------------
8259This diagnostic is enabled by default.
8260
8261**Diagnostic text:**
8262
8263+-----------------------------------------------------------------------------------------------------------------------------+
8264|:warning:`warning:` |nbsp| :diagtext:`cannot catch an exception thrown with @throw in C++ in the non-unified exception model`|
8265+-----------------------------------------------------------------------------------------------------------------------------+
8266
8267
8268-Wobjc-property-assign-on-object-type
8269-------------------------------------
8270**Diagnostic text:**
8271
8272+--------------------------------------------------------------------------------------------------------------------------------------------+
8273|:warning:`warning:` |nbsp| :diagtext:`'assign' property of object type may become a dangling reference; consider using 'unsafe\_unretained'`|
8274+--------------------------------------------------------------------------------------------------------------------------------------------+
8275
8276
8277-Wobjc-property-implementation
8278------------------------------
8279This diagnostic is enabled by default.
8280
8281**Diagnostic text:**
8282
8283+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8284|: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`|
8285+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8286
8287+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8288|: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`|
8289+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8290
8291+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8292|: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`|
8293+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8294
8295+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8296|: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`|
8297+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8298
8299
8300-Wobjc-property-implicit-mismatch
8301---------------------------------
8302This diagnostic is enabled by default.
8303
8304**Diagnostic text:**
8305
8306+---------------------------------------------------------------------------------------------------------------------------------------+
8307|:warning:`warning:` |nbsp| :diagtext:`primary property declaration is implicitly strong while redeclaration in class extension is weak`|
8308+---------------------------------------------------------------------------------------------------------------------------------------+
8309
8310
8311-Wobjc-property-matches-cocoa-ownership-rule
8312--------------------------------------------
8313This diagnostic is enabled by default.
8314
8315**Diagnostic text:**
8316
8317+-------------------------------------------------------------------------------------------------------------+
8318|:warning:`warning:` |nbsp| :diagtext:`property follows Cocoa naming convention for returning 'owned' objects`|
8319+-------------------------------------------------------------------------------------------------------------+
8320
8321
8322-Wobjc-property-no-attribute
8323----------------------------
8324This diagnostic is enabled by default.
8325
8326**Diagnostic text:**
8327
8328+-----------------------------------------------------------------------------------------------------+
8329|:warning:`warning:` |nbsp| :diagtext:`default property attribute 'assign' not appropriate for object`|
8330+-----------------------------------------------------------------------------------------------------+
8331
8332+--------------------------------------------------------------------------------------------------------------------+
8333|:warning:`warning:` |nbsp| :diagtext:`no 'assign', 'retain', or 'copy' attribute is specified - 'assign' is assumed`|
8334+--------------------------------------------------------------------------------------------------------------------+
8335
8336
8337-Wobjc-property-synthesis
8338-------------------------
8339This diagnostic is enabled by default.
8340
8341**Diagnostic text:**
8342
8343+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8344|: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`|
8345+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8346
8347+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8348|: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`|
8349+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8350
8351+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8352|: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`|
8353+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8354
8355
8356-Wobjc-protocol-method-implementation
8357-------------------------------------
8358This diagnostic is enabled by default.
8359
8360**Diagnostic text:**
8361
8362+----------------------------------------------------------------------------------------------------------------------------+
8363|:warning:`warning:` |nbsp| :diagtext:`category is implementing a method which will also be implemented by its primary class`|
8364+----------------------------------------------------------------------------------------------------------------------------+
8365
8366
8367-Wobjc-protocol-property-synthesis
8368----------------------------------
8369This diagnostic is enabled by default.
8370
8371**Diagnostic text:**
8372
8373+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8374|:warning:`warning:` |nbsp| :diagtext:`auto property synthesis will not synthesize property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared in protocol` |nbsp| :placeholder:`B`|
8375+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8376
8377
8378-Wobjc-protocol-qualifiers
8379--------------------------
8380This diagnostic is enabled by default.
8381
8382**Diagnostic text:**
8383
8384+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8385|:warning:`warning:` |nbsp| :diagtext:`parameterized class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`already conforms to the protocols listed; did you forget a '\*'?`|
8386+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8387
8388
8389-Wobjc-readonly-with-setter-property
8390------------------------------------
8391This diagnostic is enabled by default.
8392
8393**Diagnostic text:**
8394
8395+-----------------------------------------------------------------------------------------+
8396|:warning:`warning:` |nbsp| :diagtext:`setter cannot be specified for a readonly property`|
8397+-----------------------------------------------------------------------------------------+
8398
8399
8400-Wobjc-redundant-api-use
8401------------------------
8402Synonym for `-Wobjc-redundant-literal-use`_.
8403
8404
8405-Wobjc-redundant-literal-use
8406----------------------------
8407This diagnostic is enabled by default.
8408
8409**Diagnostic text:**
8410
8411+-------------------------------------------------------------------------------------------------------------------+
8412|:warning:`warning:` |nbsp| :diagtext:`using` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with a literal is redundant`|
8413+-------------------------------------------------------------------------------------------------------------------+
8414
8415
8416-Wobjc-root-class
8417-----------------
8418This diagnostic is enabled by default.
8419
8420**Diagnostic text:**
8421
8422+-------------------------------------------------------------------------------------------------------------------------------+
8423|:warning:`warning:` |nbsp| :diagtext:`class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`defined without specifying a base class`|
8424+-------------------------------------------------------------------------------------------------------------------------------+
8425
8426
8427-Wobjc-string-compare
8428---------------------
8429This diagnostic is enabled by default.
8430
8431**Diagnostic text:**
8432
8433+---------------------------------------------------------------------------------------------------+
8434|:warning:`warning:` |nbsp| :diagtext:`direct comparison of a string literal has undefined behavior`|
8435+---------------------------------------------------------------------------------------------------+
8436
8437
8438-Wobjc-string-concatenation
8439---------------------------
8440This diagnostic is enabled by default.
8441
8442**Diagnostic text:**
8443
8444+-------------------------------------------------------------------------------------------------------------------------+
8445|:warning:`warning:` |nbsp| :diagtext:`concatenated NSString literal for an NSArray expression - possibly missing a comma`|
8446+-------------------------------------------------------------------------------------------------------------------------+
8447
8448
8449-Wobjc-unsafe-perform-selector
8450------------------------------
8451This diagnostic is enabled by default.
8452
8453**Diagnostic text:**
8454
8455+-------------------------------------------------------------------------------------------------------------------+--------------------+------------------------+
8456|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with selectors that return a` |nbsp| |+------------------+| |nbsp| :diagtext:`type`|
8457|                                                                                                                   ||:diagtext:`struct`||                        |
8458|                                                                                                                   |+------------------+|                        |
8459|                                                                                                                   ||:diagtext:`union` ||                        |
8460|                                                                                                                   |+------------------+|                        |
8461|                                                                                                                   ||:diagtext:`vector`||                        |
8462|                                                                                                                   |+------------------+|                        |
8463+-------------------------------------------------------------------------------------------------------------------+--------------------+------------------------+
8464
8465
8466-Wodr
8467-----
8468This diagnostic is enabled by default.
8469
8470**Diagnostic text:**
8471
8472+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8473|:warning:`warning:` |nbsp| :diagtext:`template parameter lists have a different number of parameters (`:placeholder:`A` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`B`:diagtext:`)`|
8474+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8475
8476+------------------------------------------------------------------------------------------------------------+
8477|:warning:`warning:` |nbsp| :diagtext:`template parameter has different kinds in different translation units`|
8478+------------------------------------------------------------------------------------------------------------+
8479
8480+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8481|:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared with incompatible types in different translation units (`:placeholder:`B` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`C`:diagtext:`)`|
8482+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8483
8484+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8485|:warning:`warning:` |nbsp| :diagtext:`external function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared with incompatible types in different translation units (`:placeholder:`B` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`C`:diagtext:`)`|
8486+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8487
8488+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8489|:warning:`warning:` |nbsp| :diagtext:`instance variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared with incompatible types in different translation units (`:placeholder:`B` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`C`:diagtext:`)`|
8490+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8491
8492+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8493|:warning:`warning:` |nbsp| :diagtext:`non-type template parameter declared with incompatible types in different translation units (`:placeholder:`A` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`B`:diagtext:`)`|
8494+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8495
8496+---------------------------+----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8497|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :diagtext:`method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has a different number of parameters in different translation units (`:placeholder:`C` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`D`:diagtext:`)`|
8498|                           ||:diagtext:`class`   ||                                                                                                                                                                                                                       |
8499|                           |+--------------------+|                                                                                                                                                                                                                       |
8500|                           ||:diagtext:`instance`||                                                                                                                                                                                                                       |
8501|                           |+--------------------+|                                                                                                                                                                                                                       |
8502+---------------------------+----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8503
8504+---------------------------+----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8505|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :diagtext:`method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has a parameter with a different types in different translation units (`:placeholder:`C` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`D`:diagtext:`)`|
8506|                           ||:diagtext:`class`   ||                                                                                                                                                                                                                         |
8507|                           |+--------------------+|                                                                                                                                                                                                                         |
8508|                           ||:diagtext:`instance`||                                                                                                                                                                                                                         |
8509|                           |+--------------------+|                                                                                                                                                                                                                         |
8510+---------------------------+----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8511
8512+---------------------------+----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8513|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :diagtext:`method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has incompatible result types in different translation units (`:placeholder:`C` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`D`:diagtext:`)`|
8514|                           ||:diagtext:`class`   ||                                                                                                                                                                                                                |
8515|                           |+--------------------+|                                                                                                                                                                                                                |
8516|                           ||:diagtext:`instance`||                                                                                                                                                                                                                |
8517|                           |+--------------------+|                                                                                                                                                                                                                |
8518+---------------------------+----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8519
8520+---------------------------+----------------------+-------------------------------------------------------------------------------------------------------------------------------------+
8521|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :diagtext:`method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is variadic in one translation unit and not variadic in another`|
8522|                           ||:diagtext:`class`   ||                                                                                                                                     |
8523|                           |+--------------------+|                                                                                                                                     |
8524|                           ||:diagtext:`instance`||                                                                                                                                     |
8525|                           |+--------------------+|                                                                                                                                     |
8526+---------------------------+----------------------+-------------------------------------------------------------------------------------------------------------------------------------+
8527
8528+----------------------------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------------------+-------------------------+-----------------------------------------------+
8529|:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is implemented with` |nbsp| |+-----------------------+| |nbsp| :diagtext:`in one translation but` |nbsp| |+-----------------------+| |nbsp| :diagtext:`in another translation unit`|
8530|                                                                                                                      ||:diagtext:`@synthesize`||                                                  ||:diagtext:`@dynamic`   ||                                               |
8531|                                                                                                                      |+-----------------------+|                                                  |+-----------------------+|                                               |
8532|                                                                                                                      ||:diagtext:`@dynamic`   ||                                                  ||:diagtext:`@synthesize`||                                               |
8533|                                                                                                                      |+-----------------------+|                                                  |+-----------------------+|                                               |
8534+----------------------------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------------------+-------------------------+-----------------------------------------------+
8535
8536+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8537|:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared with incompatible types in different translation units (`:placeholder:`B` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`C`:diagtext:`)`|
8538+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8539
8540+---------------------------------------------------------------------------------------------------------------------+
8541|:warning:`warning:` |nbsp| :diagtext:`class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has incompatible superclasses`|
8542+---------------------------------------------------------------------------------------------------------------------+
8543
8544+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8545|:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is synthesized to different ivars in different translation units (`:placeholder:`B` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`C`:diagtext:`)`|
8546+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8547
8548+------------------------------------------------------------------------------------+-------------------+----------------------------------+
8549|:warning:`warning:` |nbsp| :diagtext:`parameter kind mismatch; parameter is` |nbsp| |+-----------------+| |nbsp| :diagtext:`parameter pack`|
8550|                                                                                    ||:diagtext:`not a`||                                  |
8551|                                                                                    |+-----------------+|                                  |
8552|                                                                                    ||:diagtext:`a`    ||                                  |
8553|                                                                                    |+-----------------+|                                  |
8554+------------------------------------------------------------------------------------+-------------------+----------------------------------+
8555
8556+--------------------------------------------------------------------------------------------------------------------------------------------------+
8557|:warning:`warning:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has incompatible definitions in different translation units`|
8558+--------------------------------------------------------------------------------------------------------------------------------------------------+
8559
8560+-----------------------------------------------------------------------------------------------------------------------------------------+
8561|:warning:`warning:` |nbsp| :diagtext:`external variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`defined in multiple translation units`|
8562+-----------------------------------------------------------------------------------------------------------------------------------------+
8563
8564+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8565|:warning:`warning:` |nbsp| :diagtext:`external variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared with incompatible types in different translation units (`:placeholder:`B` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`C`:diagtext:`)`|
8566+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8567
8568
8569-Wold-style-cast
8570----------------
8571**Diagnostic text:**
8572
8573+------------------------------------------------------------+
8574|:warning:`warning:` |nbsp| :diagtext:`use of old-style cast`|
8575+------------------------------------------------------------+
8576
8577
8578-Wold-style-definition
8579----------------------
8580This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
8581
8582-Wopencl-unsupported-rgba
8583-------------------------
8584This diagnostic is enabled by default.
8585
8586**Diagnostic text:**
8587
8588+----------------------------------------------------------------------------------------------------------------------------+
8589|:warning:`warning:` |nbsp| :diagtext:`vector component name '`:placeholder:`A`:diagtext:`' is an OpenCL version 2.2 feature`|
8590+----------------------------------------------------------------------------------------------------------------------------+
8591
8592
8593-Wopenmp-clauses
8594----------------
8595This diagnostic is enabled by default.
8596
8597**Diagnostic text:**
8598
8599+-------------------------------------------------------------------------------------------------------------------------+
8600|:warning:`warning:` |nbsp| :diagtext:`aligned clause will be ignored because the requested alignment is not a power of 2`|
8601+-------------------------------------------------------------------------------------------------------------------------+
8602
8603+----------------------------------------------------------------------------------------------------------------------------------------------------+
8604|:warning:`warning:` |nbsp| :diagtext:`allocator with the 'thread' trait access has unspecified behavior on '`:placeholder:`A`:diagtext:`' directive`|
8605+----------------------------------------------------------------------------------------------------------------------------------------------------+
8606
8607+---------------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------+
8608|:warning:`warning:` |nbsp| :diagtext:`zero linear step (`:placeholder:`A` |nbsp| |+-------------------------------------------------+|:diagtext:`should probably be const)`|
8609|                                                                                 ||                                                 ||                                     |
8610|                                                                                 |+-------------------------------------------------+|                                     |
8611|                                                                                 ||:diagtext:`and other variables in clause` |nbsp| ||                                     |
8612|                                                                                 |+-------------------------------------------------+|                                     |
8613+---------------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------+
8614
8615+---------------------------------------------------------------------------+----------------------------------------------+-----------------------------------------------------------+----------------------------------------------+
8616|:warning:`warning:` |nbsp| :diagtext:`allocate directive specifies` |nbsp| |+--------------------------------------------+| |nbsp| :diagtext:`allocator while previously used` |nbsp| |+--------------------------------------------+|
8617|                                                                           ||:diagtext:`default`                         ||                                                           ||:diagtext:`default`                         ||
8618|                                                                           |+--------------------------------------------+|                                                           |+--------------------------------------------+|
8619|                                                                           ||+------------------------------------------+||                                                           ||+------------------------------------------+||
8620|                                                                           |||:diagtext:`'`:placeholder:`B`:diagtext:`'`|||                                                           |||:diagtext:`'`:placeholder:`D`:diagtext:`'`|||
8621|                                                                           ||+------------------------------------------+||                                                           ||+------------------------------------------+||
8622|                                                                           |+--------------------------------------------+|                                                           |+--------------------------------------------+|
8623+---------------------------------------------------------------------------+----------------------------------------------+-----------------------------------------------------------+----------------------------------------------+
8624
8625
8626-Wopenmp-loop-form
8627------------------
8628This diagnostic is enabled by default.
8629
8630**Diagnostic text:**
8631
8632+-----------------------------------------------------------------------------------------------------------------------------------------+
8633|:warning:`warning:` |nbsp| :diagtext:`initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')`|
8634+-----------------------------------------------------------------------------------------------------------------------------------------+
8635
8636+-----------------------------------------------------------------------------------------------------------------------------+
8637|:warning:`warning:` |nbsp| :diagtext:`OpenMP loop iteration variable cannot have more than 64 bits size and will be narrowed`|
8638+-----------------------------------------------------------------------------------------------------------------------------+
8639
8640
8641-Wopenmp-target
8642---------------
8643This diagnostic is enabled by default.
8644
8645**Diagnostic text:**
8646
8647+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8648|:warning:`warning:` |nbsp| :diagtext:`The OpenMP offloading target '`:placeholder:`A`:diagtext:`' is similar to target '`:placeholder:`B`:diagtext:`' already specified - will be ignored.`|
8649+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8650
8651+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8652|: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.`|
8653+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8654
8655+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8656|:warning:`warning:` |nbsp| :diagtext:`Non-trivial type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is mapped, only trivial types are guaranteed to be mapped correctly`|
8657+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8658
8659+-----------------------------------------------------------------------------------------------+
8660|:warning:`warning:` |nbsp| :diagtext:`declaration is not declared in any declare target region`|
8661+-----------------------------------------------------------------------------------------------+
8662
8663
8664-Woption-ignored
8665----------------
8666This diagnostic is enabled by default.
8667
8668**Diagnostic text:**
8669
8670+------------------------------------------------------------------------------------------------------------------------------------------+
8671|:warning:`warning:` |nbsp| :diagtext:`option '-ffine-grained-bitfield-accesses' cannot be enabled together with a sanitizer; flag ignored`|
8672+------------------------------------------------------------------------------------------------------------------------------------------+
8673
8674+-------------------------------------------------------------------------------------------------------------------------------+
8675|:warning:`warning:` |nbsp| :diagtext:`The '`:placeholder:`A`:diagtext:`' architecture does not support -moutline; flag ignored`|
8676+-------------------------------------------------------------------------------------------------------------------------------+
8677
8678+----------------------------------------------------------------------------------------------------------------------------+
8679|:warning:`warning:` |nbsp| :diagtext:`option '`:placeholder:`A`:diagtext:`' was ignored by the PS4 toolchain, using '-fPIC'`|
8680+----------------------------------------------------------------------------------------------------------------------------+
8681
8682+-------------------------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+
8683|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mlong-calls' option as it is not currently supported with` |nbsp| |+-----------------------------------------+|:diagtext:`-mabicalls`|
8684|                                                                                                                   ||                                         ||                      |
8685|                                                                                                                   |+-----------------------------------------+|                      |
8686|                                                                                                                   ||:diagtext:`the implicit usage of` |nbsp| ||                      |
8687|                                                                                                                   |+-----------------------------------------+|                      |
8688+-------------------------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+
8689
8690+-----------------------------------------------------------------------------------------------------------------------+-------------------------------+----------------------------------------------+
8691|:warning:`warning:` |nbsp| :diagtext:`ignoring '`:placeholder:`A`:diagtext:`' option as it cannot be used with` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`-mabicalls and the N64 ABI`|
8692|                                                                                                                       ||:diagtext:`implicit usage of`||                                              |
8693|                                                                                                                       |+-----------------------------+|                                              |
8694|                                                                                                                       ||                             ||                                              |
8695|                                                                                                                       |+-----------------------------+|                                              |
8696+-----------------------------------------------------------------------------------------------------------------------+-------------------------------+----------------------------------------------+
8697
8698+----------------------------------------------------------------------------------------------+
8699|:warning:`warning:` |nbsp| :diagtext:`auto-vectorization requires HVX, use -mhvx to enable it`|
8700+----------------------------------------------------------------------------------------------+
8701
8702
8703-Wordered-compare-function-pointers
8704-----------------------------------
8705This diagnostic is enabled by default.
8706
8707**Diagnostic text:**
8708
8709+------------------------------------------------------------------------------------------------------------------------------------------------------------+
8710|:warning:`warning:` |nbsp| :diagtext:`ordered comparison of function pointers (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`|
8711+------------------------------------------------------------------------------------------------------------------------------------------------------------+
8712
8713
8714-Wout-of-line-declaration
8715-------------------------
8716This diagnostic is an error by default, but the flag ``-Wno-out-of-line-declaration`` can be used to disable the error.
8717
8718**Diagnostic text:**
8719
8720+-------------------------------------------------------------------------------------------+
8721|:error:`error:` |nbsp| :diagtext:`out-of-line declaration of a member must be a definition`|
8722+-------------------------------------------------------------------------------------------+
8723
8724
8725-Wout-of-scope-function
8726-----------------------
8727This diagnostic is enabled by default.
8728
8729**Diagnostic text:**
8730
8731+-------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------+
8732|:warning:`warning:` |nbsp| :diagtext:`use of out-of-scope declaration of` |nbsp| :placeholder:`A`|+-------------------------------------------------------------------------------------+|
8733|                                                                                                 ||                                                                                     ||
8734|                                                                                                 |+-------------------------------------------------------------------------------------+|
8735|                                                                                                 || |nbsp| :diagtext:`whose type is not compatible with that of an implicit declaration`||
8736|                                                                                                 |+-------------------------------------------------------------------------------------+|
8737+-------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------+
8738
8739
8740-Wover-aligned
8741--------------
8742**Diagnostic text:**
8743
8744+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8745|: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`|
8746+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8747
8748
8749-Woverflow
8750----------
8751This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
8752
8753-Woverlength-strings
8754--------------------
8755**Diagnostic text:**
8756
8757+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------+
8758|: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`|
8759|                                                                                                                                                                                         ||:diagtext:`C90`    ||                                                     |
8760|                                                                                                                                                                                         |+-------------------+|                                                     |
8761|                                                                                                                                                                                         ||:diagtext:`ISO C99`||                                                     |
8762|                                                                                                                                                                                         |+-------------------+|                                                     |
8763|                                                                                                                                                                                         ||:diagtext:`C++`    ||                                                     |
8764|                                                                                                                                                                                         |+-------------------+|                                                     |
8765+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------+
8766
8767
8768-Woverloaded-shift-op-parentheses
8769---------------------------------
8770This diagnostic is enabled by default.
8771
8772**Diagnostic text:**
8773
8774+------------------------------------------------------------------+----------------+------------------------------------------------------------------+
8775|:warning:`warning:` |nbsp| :diagtext:`overloaded operator` |nbsp| |+--------------+| |nbsp| :diagtext:`has higher precedence than comparison operator`|
8776|                                                                  ||:diagtext:`>>`||                                                                  |
8777|                                                                  |+--------------+|                                                                  |
8778|                                                                  ||:diagtext:`<<`||                                                                  |
8779|                                                                  |+--------------+|                                                                  |
8780+------------------------------------------------------------------+----------------+------------------------------------------------------------------+
8781
8782
8783-Woverloaded-virtual
8784--------------------
8785**Diagnostic text:**
8786
8787+-----------------------------------------------------------------------------------------------+-----------------------+
8788|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`hides overloaded virtual` |nbsp| |+---------------------+|
8789|                                                                                               ||:diagtext:`function` ||
8790|                                                                                               |+---------------------+|
8791|                                                                                               ||:diagtext:`functions`||
8792|                                                                                               |+---------------------+|
8793+-----------------------------------------------------------------------------------------------+-----------------------+
8794
8795
8796-Woverride-init
8797---------------
8798Synonym for `-Winitializer-overrides`_.
8799
8800
8801-Woverride-module
8802-----------------
8803This diagnostic is enabled by default.
8804
8805**Diagnostic text:**
8806
8807+-------------------------------------------------------------------------------------------------------+
8808|:warning:`warning:` |nbsp| :diagtext:`overriding the module target triple with` |nbsp| :placeholder:`A`|
8809+-------------------------------------------------------------------------------------------------------+
8810
8811
8812-Woverriding-method-mismatch
8813----------------------------
8814**Diagnostic text:**
8815
8816+-------------------------------------------------------------------------------------------------------------------------------------------+
8817|:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on parameter type in declaration of` |nbsp| :placeholder:`A`|
8818+-------------------------------------------------------------------------------------------------------------------------------------------+
8819
8820+------------------------------------------------------------------------------------------------------------+
8821|:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in declaration of` |nbsp| :placeholder:`A`|
8822+------------------------------------------------------------------------------------------------------------+
8823
8824+----------------------------------------------------------------------------------------------------------------------------------------+
8825|:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on return type in declaration of` |nbsp| :placeholder:`A`|
8826+----------------------------------------------------------------------------------------------------------------------------------------+
8827
8828+--------------------------------------------------------------------------------------------------------+
8829|:warning:`warning:` |nbsp| :diagtext:`conflicting return type in declaration of` |nbsp| :placeholder:`A`|
8830+--------------------------------------------------------------------------------------------------------+
8831
8832+--------------------------------------------------------------------------------------------------------+
8833|:warning:`warning:` |nbsp| :diagtext:`conflicting variadic declaration of method and its implementation`|
8834+--------------------------------------------------------------------------------------------------------+
8835
8836+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8837|:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in declaration of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
8838+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8839
8840+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8841|:warning:`warning:` |nbsp| :diagtext:`conflicting return type in declaration of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
8842+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8843
8844
8845-Woverriding-t-option
8846---------------------
8847This diagnostic is enabled by default.
8848
8849**Diagnostic text:**
8850
8851+---------------------------------------------------------------------------------------------------------------------------+
8852|:warning:`warning:` |nbsp| :diagtext:`overriding '`:placeholder:`A`:diagtext:`' option with '`:placeholder:`B`:diagtext:`'`|
8853+---------------------------------------------------------------------------------------------------------------------------+
8854
8855
8856-Wpacked
8857--------
8858**Diagnostic text:**
8859
8860+--------------------------------------------------------------------------------------------------+
8861|:warning:`warning:` |nbsp| :diagtext:`packed attribute is unnecessary for` |nbsp| :placeholder:`A`|
8862+--------------------------------------------------------------------------------------------------+
8863
8864
8865-Wpadded
8866--------
8867**Diagnostic text:**
8868
8869+------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+------------------------------------------------+
8870|:warning:`warning:` |nbsp| :diagtext:`padding` |nbsp| |+---------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with` |nbsp| :placeholder:`C` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to align anonymous bit-field`|
8871|                                                      ||:diagtext:`struct`   ||                                                                                ||:diagtext:`byte`|||             ||                                                |
8872|                                                      |+---------------------+|                                                                                |+----------------+|+-------------+|                                                |
8873|                                                      ||:diagtext:`interface`||                                                                                ||:diagtext:`bit` |||:diagtext:`s`||                                                |
8874|                                                      |+---------------------+|                                                                                |+----------------+|+-------------+|                                                |
8875|                                                      ||:diagtext:`class`    ||                                                                                |                  |               |                                                |
8876|                                                      |+---------------------+|                                                                                |                  |               |                                                |
8877+------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+------------------------------------------------+
8878
8879+------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+----------------------------------------------------+
8880|:warning:`warning:` |nbsp| :diagtext:`padding` |nbsp| |+---------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with` |nbsp| :placeholder:`C` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to align` |nbsp| :placeholder:`E`|
8881|                                                      ||:diagtext:`struct`   ||                                                                                ||:diagtext:`byte`|||             ||                                                    |
8882|                                                      |+---------------------+|                                                                                |+----------------+|+-------------+|                                                    |
8883|                                                      ||:diagtext:`interface`||                                                                                ||:diagtext:`bit` |||:diagtext:`s`||                                                    |
8884|                                                      |+---------------------+|                                                                                |+----------------+|+-------------+|                                                    |
8885|                                                      ||:diagtext:`class`    ||                                                                                |                  |               |                                                    |
8886|                                                      |+---------------------+|                                                                                |                  |               |                                                    |
8887+------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+----------------------------------------------------+
8888
8889+--------------------------------------------------------------------------------------------------------------------------------------+------------------+---------------+-----------------------------------------+
8890|:warning:`warning:` |nbsp| :diagtext:`padding size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with` |nbsp| :placeholder:`B` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to alignment boundary`|
8891|                                                                                                                                      ||:diagtext:`byte`|||             ||                                         |
8892|                                                                                                                                      |+----------------+|+-------------+|                                         |
8893|                                                                                                                                      ||:diagtext:`bit` |||:diagtext:`s`||                                         |
8894|                                                                                                                                      |+----------------+|+-------------+|                                         |
8895+--------------------------------------------------------------------------------------------------------------------------------------+------------------+---------------+-----------------------------------------+
8896
8897
8898-Wparentheses
8899-------------
8900This diagnostic is enabled by default.
8901
8902Also controls `-Wbitwise-op-parentheses`_, `-Wdangling-else`_, `-Wlogical-not-parentheses`_, `-Wlogical-op-parentheses`_, `-Woverloaded-shift-op-parentheses`_, `-Wparentheses-equality`_, `-Wshift-op-parentheses`_.
8903
8904**Diagnostic text:**
8905
8906+-----------------------------------------------------------------------------------------------------------+
8907|:warning:`warning:` |nbsp| :diagtext:`using the result of an assignment as a condition without parentheses`|
8908+-----------------------------------------------------------------------------------------------------------+
8909
8910+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8911|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has lower precedence than` |nbsp| :placeholder:`B`:diagtext:`;` |nbsp| :placeholder:`B` |nbsp| :diagtext:`will be evaluated first`|
8912+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8913
8914+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8915|:warning:`warning:` |nbsp| :diagtext:`operator '?:' has lower precedence than '`:placeholder:`A`:diagtext:`'; '`:placeholder:`A`:diagtext:`' will be evaluated first`|
8916+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8917
8918
8919-Wparentheses-equality
8920----------------------
8921This diagnostic is enabled by default.
8922
8923**Diagnostic text:**
8924
8925+--------------------------------------------------------------------------------------+
8926|:warning:`warning:` |nbsp| :diagtext:`equality comparison with extraneous parentheses`|
8927+--------------------------------------------------------------------------------------+
8928
8929
8930-Wpartial-availability
8931----------------------
8932Synonym for `-Wunguarded-availability`_.
8933
8934
8935-Rpass
8936------
8937**Diagnostic text:**
8938
8939The text of this diagnostic is not controlled by Clang.
8940
8941
8942-Rpass-analysis
8943---------------
8944**Diagnostic text:**
8945
8946The text of this diagnostic is not controlled by Clang.
8947
8948+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8949|: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!`|
8950+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8951
8952+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8953|: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'.`|
8954+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8955
8956
8957-Wpass-failed
8958-------------
8959This diagnostic is enabled by default.
8960
8961**Diagnostic text:**
8962
8963The text of this diagnostic is not controlled by Clang.
8964
8965
8966-Rpass-missed
8967-------------
8968**Diagnostic text:**
8969
8970The text of this diagnostic is not controlled by Clang.
8971
8972
8973-Wpch-date-time
8974---------------
8975This diagnostic is enabled by default.
8976
8977**Diagnostic text:**
8978
8979+---------------------------+--------------------------------+-----------------------------------------------------+
8980|:warning:`warning:` |nbsp| |+------------------------------+| |nbsp| :diagtext:`uses \_\_DATE\_\_ or \_\_TIME\_\_`|
8981|                           ||:diagtext:`precompiled header`||                                                     |
8982|                           |+------------------------------+|                                                     |
8983|                           ||:diagtext:`module`            ||                                                     |
8984|                           |+------------------------------+|                                                     |
8985+---------------------------+--------------------------------+-----------------------------------------------------+
8986
8987
8988-Wpedantic
8989----------
8990Also 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`_.
8991
8992**Diagnostic text:**
8993
8994+-----------------------------------------------------------------------------------------------------+
8995|:warning:`warning:` |nbsp| :diagtext:`duplicate '`:placeholder:`A`:diagtext:`' declaration specifier`|
8996+-----------------------------------------------------------------------------------------------------+
8997
8998+------------------------------------------------------------------------+
8999|:warning:`warning:` |nbsp| :diagtext:`'enable\_if' is a clang extension`|
9000+------------------------------------------------------------------------+
9001
9002+--------------------------------------------------------------------------+
9003|:warning:`warning:` |nbsp| :diagtext:`'diagnose\_if' is a clang extension`|
9004+--------------------------------------------------------------------------+
9005
9006+--------------------------------------------------------------------------------+
9007|:warning:`warning:` |nbsp| :diagtext:`designated initializers are a C99 feature`|
9008+--------------------------------------------------------------------------------+
9009
9010+--------------------------------------------------------------------------------------------+
9011|:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow 'main' to be used by a program`|
9012+--------------------------------------------------------------------------------------------+
9013
9014+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+
9015|: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| |+---------------------+|
9016|                                                                                                                                                                                              ||:diagtext:`private`  ||
9017|                                                                                                                                                                                              |+---------------------+|
9018|                                                                                                                                                                                              ||:diagtext:`protected`||
9019|                                                                                                                                                                                              |+---------------------+|
9020+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+
9021
9022+--------------------------------------------------------+--------------------+------------------------------------------------------------+
9023|:warning:`warning:` |nbsp| :diagtext:`anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`cannot be '`:placeholder:`B`:diagtext:`'`|
9024|                                                        ||:diagtext:`struct`||                                                            |
9025|                                                        |+------------------+|                                                            |
9026|                                                        ||:diagtext:`union` ||                                                            |
9027|                                                        |+------------------+|                                                            |
9028+--------------------------------------------------------+--------------------+------------------------------------------------------------+
9029
9030+--------------------------------------------------------------------+------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
9031|: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`|
9032|                                                                    ||:diagtext:`copying variable`                        ||                                                                                                                                          |
9033|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
9034|                                                                    ||:diagtext:`copying parameter`                       ||                                                                                                                                          |
9035|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
9036|                                                                    ||:diagtext:`returning object`                        ||                                                                                                                                          |
9037|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
9038|                                                                    ||:diagtext:`initializing statement expression result`||                                                                                                                                          |
9039|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
9040|                                                                    ||:diagtext:`throwing object`                         ||                                                                                                                                          |
9041|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
9042|                                                                    ||:diagtext:`copying member subobject`                ||                                                                                                                                          |
9043|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
9044|                                                                    ||:diagtext:`copying array element`                   ||                                                                                                                                          |
9045|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
9046|                                                                    ||:diagtext:`allocating object`                       ||                                                                                                                                          |
9047|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
9048|                                                                    ||:diagtext:`copying temporary`                       ||                                                                                                                                          |
9049|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
9050|                                                                    ||:diagtext:`initializing base subobject`             ||                                                                                                                                          |
9051|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
9052|                                                                    ||:diagtext:`initializing vector element`             ||                                                                                                                                          |
9053|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
9054|                                                                    ||:diagtext:`capturing value`                         ||                                                                                                                                          |
9055|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
9056+--------------------------------------------------------------------+------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
9057
9058+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9059|: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`|
9060+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9061
9062+--------------------------------------------------------------------------------------------------------------------------------------+
9063|:warning:`warning:` |nbsp| :diagtext:`parameter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`was not declared, defaulting to type 'int'`|
9064+--------------------------------------------------------------------------------------------------------------------------------------+
9065
9066+--------------------------------------------------------------------------------------------------------------------------+
9067|:warning:`warning:` |nbsp| :diagtext:`invoking a pointer to a 'const &' member function on an rvalue is a C++2a extension`|
9068+--------------------------------------------------------------------------------------------------------------------------+
9069
9070+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9071|:warning:`warning:` |nbsp| :diagtext:`qualifier in explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires a template-id (a typedef is not permitted)`|
9072+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9073
9074+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
9075|:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`|
9076|                                                     ||:diagtext:`function`||                                                                                               |
9077|                                                     |+--------------------+|                                                                                               |
9078|                                                     ||:diagtext:`variable`||                                                                                               |
9079|                                                     |+--------------------+|                                                                                               |
9080+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
9081
9082+---------------------------------------------------------------------------------------+
9083|:warning:`warning:` |nbsp| :diagtext:`ISO C forbids forward references to 'enum' types`|
9084+---------------------------------------------------------------------------------------+
9085
9086+----------------------------------------------------------------------------------------------------------------------------------------------+-------------------+-------------+
9087|:warning:`warning:` |nbsp| :diagtext:`ISO C restricts enumerator values to range of 'int' (`:placeholder:`A` |nbsp| :diagtext:`is too` |nbsp| |+-----------------+|:diagtext:`)`|
9088|                                                                                                                                              ||:diagtext:`small`||             |
9089|                                                                                                                                              |+-----------------+|             |
9090|                                                                                                                                              ||:diagtext:`large`||             |
9091|                                                                                                                                              |+-----------------+|             |
9092+----------------------------------------------------------------------------------------------------------------------------------------------+-------------------+-------------+
9093
9094+--------------------------------------------------------------------------------------------------+
9095|:warning:`warning:` |nbsp| :diagtext:`size of static array must be an integer constant expression`|
9096+--------------------------------------------------------------------------------------------------+
9097
9098+-----------------------------------------------------------------------------------------------+
9099|:warning:`warning:` |nbsp| :diagtext:`initializer for aggregate is not a compile-time constant`|
9100+-----------------------------------------------------------------------------------------------+
9101
9102+-------------------------------------------------------------------------------+
9103|:warning:`warning:` |nbsp| :diagtext:`flexible array members are a C99 feature`|
9104+-------------------------------------------------------------------------------+
9105
9106+---------------------------------------------------------------+-----------------------------------------------------+--------------------------------+
9107|:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------------------------------------+|:diagtext:`' to a function type`|
9108|                                                               ||:diagtext:`sizeof`                                 ||                                |
9109|                                                               |+---------------------------------------------------+|                                |
9110|                                                               ||:diagtext:`alignof`                                ||                                |
9111|                                                               |+---------------------------------------------------+|                                |
9112|                                                               ||:diagtext:`vec\_step`                              ||                                |
9113|                                                               |+---------------------------------------------------+|                                |
9114|                                                               ||:diagtext:`\_\_builtin\_omp\_required\_simd\_align`||                                |
9115|                                                               |+---------------------------------------------------+|                                |
9116|                                                               ||:diagtext:`\_\_alignof`                            ||                                |
9117|                                                               |+---------------------------------------------------+|                                |
9118+---------------------------------------------------------------+-----------------------------------------------------+--------------------------------+
9119
9120+---------------------------------------------------------------+-----------------------------------------------------+----------------------------+
9121|:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------------------------------------+|:diagtext:`' to a void type`|
9122|                                                               ||:diagtext:`sizeof`                                 ||                            |
9123|                                                               |+---------------------------------------------------+|                            |
9124|                                                               ||:diagtext:`alignof`                                ||                            |
9125|                                                               |+---------------------------------------------------+|                            |
9126|                                                               ||:diagtext:`vec\_step`                              ||                            |
9127|                                                               |+---------------------------------------------------+|                            |
9128|                                                               ||:diagtext:`\_\_builtin\_omp\_required\_simd\_align`||                            |
9129|                                                               |+---------------------------------------------------+|                            |
9130|                                                               ||:diagtext:`\_\_alignof`                            ||                            |
9131|                                                               |+---------------------------------------------------+|                            |
9132+---------------------------------------------------------------+-----------------------------------------------------+----------------------------+
9133
9134+-------------------------------------------------------------------------------------------+
9135|:warning:`warning:` |nbsp| :diagtext:`ISO C90 does not allow subscripting non-lvalue array`|
9136+-------------------------------------------------------------------------------------------+
9137
9138+----------------------------------------------------------------------------------------+
9139|:warning:`warning:` |nbsp| :diagtext:`subscript of a pointer to void is a GNU extension`|
9140+----------------------------------------------------------------------------------------+
9141
9142+-------------------------------------------------------------------------------------------------------+
9143|:warning:`warning:` |nbsp| :diagtext:`ISO C forbids taking the address of an expression of type 'void'`|
9144+-------------------------------------------------------------------------------------------------------+
9145
9146+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9147|:warning:`warning:` |nbsp| :diagtext:`ordered comparison between pointer and zero (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`) is an extension`|
9148+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9149
9150+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9151|:warning:`warning:` |nbsp| :diagtext:`equality comparison between function pointer and void pointer (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`|
9152+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9153
9154+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+
9155|:warning:`warning:` |nbsp| :diagtext:`arithmetic on`|+---------------------+| |nbsp| :diagtext:`pointer`|+-------------+| |nbsp| :diagtext:`to void is a GNU extension`|
9156|                                                    || |nbsp| :diagtext:`a`||                           ||             ||                                              |
9157|                                                    |+---------------------+|                           |+-------------+|                                              |
9158|                                                    ||                     ||                           ||:diagtext:`s`||                                              |
9159|                                                    |+---------------------+|                           |+-------------+|                                              |
9160+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+
9161
9162+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+
9163|: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`|
9164|                                                    || |nbsp| :diagtext:`a`||                           ||             ||                      || |nbsp| :diagtext:`the`||                                 ||             ||                        ||                                                 ||                                      |
9165|                                                    |+---------------------+|                           |+-------------+|                      |+-----------------------+|                                 |+-------------+|                        |+-------------------------------------------------+|                                      |
9166|                                                    ||                     ||                           ||:diagtext:`s`||                      ||                       ||                                 ||:diagtext:`s`||                        ||+-----------------------------------------------+||                                      |
9167|                                                    |+---------------------+|                           |+-------------+|                      |+-----------------------+|                                 |+-------------+|                        ||| |nbsp| :diagtext:`and` |nbsp| :placeholder:`D`|||                                      |
9168|                                                    |                       |                           |               |                      |                         |                                 |               |                        ||+-----------------------------------------------+||                                      |
9169|                                                    |                       |                           |               |                      |                         |                                 |               |                        |+-------------------------------------------------+|                                      |
9170+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+
9171
9172+-----------------------------------------------------------------------------------------------------------------------+
9173|:warning:`warning:` |nbsp| :diagtext:`ISO C does not support '++'/'--' on complex integer type` |nbsp| :placeholder:`A`|
9174+-----------------------------------------------------------------------------------------------------------------------+
9175
9176+--------------------------------------------------------------------------------------------------------------------+
9177|:warning:`warning:` |nbsp| :diagtext:`ISO C does not support '~' for complex conjugation of` |nbsp| :placeholder:`A`|
9178+--------------------------------------------------------------------------------------------------------------------+
9179
9180+------------------------------------------------------------------------------------------------------------+
9181|:warning:`warning:` |nbsp| :diagtext:`complex numbers are an extension in a freestanding C99 implementation`|
9182+------------------------------------------------------------------------------------------------------------+
9183
9184+-------------------------------------------------------------------------------------------------------------+
9185|:warning:`warning:` |nbsp| :diagtext:`cast between pointer-to-function and pointer-to-object is an extension`|
9186+-------------------------------------------------------------------------------------------------------------+
9187
9188+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+
9189|: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`|
9190|                                                                                                                                                   ||:diagtext:`integral`   ||                                                                                        |
9191|                                                                                                                                                   |+-----------------------+|                                                                                        |
9192|                                                                                                                                                   ||:diagtext:`enumeration`||                                                                                        |
9193|                                                                                                                                                   |+-----------------------+|                                                                                        |
9194+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+
9195
9196+---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+
9197|:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`converts between void pointer and function pointer`|
9198|                           ||:diagtext:`assigning to different types`                      ||                                                                      |
9199|                           |+--------------------------------------------------------------+|                                                                      |
9200|                           ||:diagtext:`passing to parameter of different type`            ||                                                                      |
9201|                           |+--------------------------------------------------------------+|                                                                      |
9202|                           ||:diagtext:`returning from function with different return type`||                                                                      |
9203|                           |+--------------------------------------------------------------+|                                                                      |
9204|                           ||:diagtext:`converting between types`                          ||                                                                      |
9205|                           |+--------------------------------------------------------------+|                                                                      |
9206|                           ||:diagtext:`initializing with expression of different type`    ||                                                                      |
9207|                           |+--------------------------------------------------------------+|                                                                      |
9208|                           ||:diagtext:`sending to parameter of different type`            ||                                                                      |
9209|                           |+--------------------------------------------------------------+|                                                                      |
9210|                           ||:diagtext:`casting between types`                             ||                                                                      |
9211|                           |+--------------------------------------------------------------+|                                                                      |
9212+---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+
9213
9214+--------------------------------------------------------------------------------------------------------------------------------------------------------+
9215|:warning:`warning:` |nbsp| :diagtext:`kernel function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a member function; this may not be accepted by nvcc`|
9216+--------------------------------------------------------------------------------------------------------------------------------------------------------+
9217
9218+--------------------------------------------------------------------------------------------------+
9219|:warning:`warning:` |nbsp| :diagtext:`C99 forbids conditional expressions with only one void side`|
9220+--------------------------------------------------------------------------------------------------+
9221
9222+-------------------------------------------------------------------------------------------------------------------------------------+
9223|:warning:`warning:` |nbsp| :diagtext:`C99 forbids casting nonscalar type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to the same type`|
9224+-------------------------------------------------------------------------------------------------------------------------------------+
9225
9226+---------------------------------------------------------------------------------------------------------------------------+
9227|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++14 extension`|
9228+---------------------------------------------------------------------------------------------------------------------------+
9229
9230+---------------------------------------------------------------------------------------------------------------------------+
9231|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++17 extension`|
9232+---------------------------------------------------------------------------------------------------------------------------+
9233
9234+-----------------------------------------------------------------------------+--------------------+---------------------------------------------+
9235|:warning:`warning:` |nbsp| :diagtext:`types declared in an anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`are a Microsoft extension`|
9236|                                                                             ||:diagtext:`struct`||                                             |
9237|                                                                             |+------------------+|                                             |
9238|                                                                             ||:diagtext:`union` ||                                             |
9239|                                                                             |+------------------+|                                             |
9240+-----------------------------------------------------------------------------+--------------------+---------------------------------------------+
9241
9242+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
9243|:warning:`warning:` |nbsp| :diagtext:`format specifies type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`but the argument has` |nbsp| |+---------------------------+| |nbsp| :placeholder:`B`|
9244|                                                                                                                                    ||:diagtext:`type`           ||                        |
9245|                                                                                                                                    |+---------------------------+|                        |
9246|                                                                                                                                    ||:diagtext:`underlying type`||                        |
9247|                                                                                                                                    |+---------------------------+|                        |
9248+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
9249
9250+---------------------------------------------------+----------------------+-----------------------------------------------------------------------------+
9251|:warning:`warning:` |nbsp| :diagtext:`void` |nbsp| |+--------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return void expression`|
9252|                                                   ||:diagtext:`function`||                                                                             |
9253|                                                   |+--------------------+|                                                                             |
9254|                                                   ||:diagtext:`method`  ||                                                                             |
9255|                                                   |+--------------------+|                                                                             |
9256|                                                   ||:diagtext:`block`   ||                                                                             |
9257|                                                   |+--------------------+|                                                                             |
9258+---------------------------------------------------+----------------------+-----------------------------------------------------------------------------+
9259
9260+--------------------------------------------------------------------------------------------------+
9261|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' cannot be signed or unsigned`|
9262+--------------------------------------------------------------------------------------------------+
9263
9264+---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+
9265|:warning:`warning:` |nbsp| |+--------------------------------+|:diagtext:`array size` |nbsp| |+---------------------+|:diagtext:`is a C99 feature`|
9266|                           ||:diagtext:`qualifier in` |nbsp| ||                              ||                     ||                            |
9267|                           |+--------------------------------+|                              |+---------------------+|                            |
9268|                           ||:diagtext:`static` |nbsp|       ||                              ||                     ||                            |
9269|                           |+--------------------------------+|                              |+---------------------+|                            |
9270|                           ||                                ||                              ||:diagtext:`'\[\*\] '`||                            |
9271|                           |+--------------------------------+|                              |+---------------------+|                            |
9272+---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+
9273
9274+--------------------------------------------------------+------------------------------------------------+
9275|:warning:`warning:` |nbsp| :diagtext:`extra ';'` |nbsp| |+----------------------------------------------+|
9276|                                                        ||:diagtext:`outside of a function`             ||
9277|                                                        |+----------------------------------------------+|
9278|                                                        ||+--------------------------------------------+||
9279|                                                        |||:diagtext:`inside a` |nbsp| :placeholder:`B`|||
9280|                                                        ||+--------------------------------------------+||
9281|                                                        |+----------------------------------------------+|
9282|                                                        ||:diagtext:`inside instance variable list`     ||
9283|                                                        |+----------------------------------------------+|
9284|                                                        ||:diagtext:`after member function definition`  ||
9285|                                                        |+----------------------------------------------+|
9286+--------------------------------------------------------+------------------------------------------------+
9287
9288+-----------------------------------------------------------------------------------------+
9289|:warning:`warning:` |nbsp| :diagtext:`'\_\_thread' before '`:placeholder:`A`:diagtext:`'`|
9290+-----------------------------------------------------------------------------------------+
9291
9292+----------------------------------------------------------------------------------------+
9293|:warning:`warning:` |nbsp| :diagtext:`type-less parameter names in function declaration`|
9294+----------------------------------------------------------------------------------------+
9295
9296+-------------------------------------------------------------------------------------------------+
9297|:warning:`warning:` |nbsp| :diagtext:`variable declaration in for loop is a C99-specific feature`|
9298+-------------------------------------------------------------------------------------------------+
9299
9300+-----------------------------------------------------------------------------------+
9301|:warning:`warning:` |nbsp| :diagtext:`compound literals are a C99-specific feature`|
9302+-----------------------------------------------------------------------------------+
9303
9304+-------------------------------------------------------------------------------------------------------+
9305|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C99-specific feature`|
9306+-------------------------------------------------------------------------------------------------------+
9307
9308+--------------------------------------------------------------------------------------------------+
9309|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C++11 extension`|
9310+--------------------------------------------------------------------------------------------------+
9311
9312+-----------------------------------------------------------------------------------------------------------+
9313|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a C++11 extension`|
9314+-----------------------------------------------------------------------------------------------------------+
9315
9316+-----------------------------------------------------------------------+
9317|:warning:`warning:` |nbsp| :diagtext:`use of GNU array range extension`|
9318+-----------------------------------------------------------------------+
9319
9320+------------------------------------------------------------------------------------------------+
9321|:warning:`warning:` |nbsp| :diagtext:`exception specification of '...' is a Microsoft extension`|
9322+------------------------------------------------------------------------------------------------+
9323
9324+------------------------------------------------------------+---------------------------+-----------------------------------------------------+
9325|:warning:`warning:` |nbsp| :diagtext:`attributes on` |nbsp| |+-------------------------+| |nbsp| :diagtext:`declaration are a C++17 extension`|
9326|                                                            ||:diagtext:`a namespace`  ||                                                     |
9327|                                                            |+-------------------------+|                                                     |
9328|                                                            ||:diagtext:`an enumerator`||                                                     |
9329|                                                            |+-------------------------+|                                                     |
9330+------------------------------------------------------------+---------------------------+-----------------------------------------------------+
9331
9332+-----------------------------------------------------------------------------+
9333|:warning:`warning:` |nbsp| :diagtext:`extern templates are a C++11 extension`|
9334+-----------------------------------------------------------------------------+
9335
9336+------------------------------------------------------------+
9337|:warning:`warning:` |nbsp| :diagtext:`multi-line // comment`|
9338+------------------------------------------------------------+
9339
9340+-----------------------------------------------------------------------------------+
9341|:warning:`warning:` |nbsp| :diagtext:`// comments are not allowed in this language`|
9342+-----------------------------------------------------------------------------------+
9343
9344+----------------------------------------------------------------+
9345|:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`|
9346+----------------------------------------------------------------+
9347
9348+------------------------------------------------------------------------------------------------------------+
9349|:warning:`warning:` |nbsp| :diagtext:`use of non-standard escape character '\\`:placeholder:`A`:diagtext:`'`|
9350+------------------------------------------------------------------------------------------------------------+
9351
9352+---------------------------------------------------------------------------------------+
9353|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating constants are a C99 feature`|
9354+---------------------------------------------------------------------------------------+
9355
9356+----------------------------------------------------------------------------------------+
9357|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are a C++17 feature`|
9358+----------------------------------------------------------------------------------------+
9359
9360+---------------------------------------------------------------------+
9361|:warning:`warning:` |nbsp| :diagtext:`#ident is a language extension`|
9362+---------------------------------------------------------------------+
9363
9364+-----------------------------------------------------------------------+
9365|:warning:`warning:` |nbsp| :diagtext:`#warning is a language extension`|
9366+-----------------------------------------------------------------------+
9367
9368+-----------------------------------------------------------------------+
9369|:warning:`warning:` |nbsp| :diagtext:`comma operator in operand of #if`|
9370+-----------------------------------------------------------------------+
9371
9372+----------------------------------------------------------------------------------------------------------------+
9373|:warning:`warning:` |nbsp| :diagtext:`\_\_VA\_ARGS\_\_ can only appear in the expansion of a C99 variadic macro`|
9374+----------------------------------------------------------------------------------------------------------------+
9375
9376+------------------------------------------------------------------------+
9377|:warning:`warning:` |nbsp| :diagtext:`variadic macros are a C99 feature`|
9378+------------------------------------------------------------------------+
9379
9380+--------------------------------------------------------------------------------+
9381|:warning:`warning:` |nbsp| :diagtext:`named variadic macros are a GNU extension`|
9382+--------------------------------------------------------------------------------+
9383
9384+------------------------------------------------------------------------------+
9385|:warning:`warning:` |nbsp| :diagtext:`empty macro arguments are a C99 feature`|
9386+------------------------------------------------------------------------------+
9387
9388+--------------------------------------------------------------------------------------+
9389|:warning:`warning:` |nbsp| :diagtext:`variadic macros are a Clang extension in OpenCL`|
9390+--------------------------------------------------------------------------------------+
9391
9392+----------------------------------------------------------------------------------------------------------------------------------------+
9393|:warning:`warning:` |nbsp| :diagtext:`C requires #line number to be less than` |nbsp| :placeholder:`A`:diagtext:`, allowed as extension`|
9394+----------------------------------------------------------------------------------------------------------------------------------------+
9395
9396+-------------------------------------------------------------------------------------------------+
9397|:warning:`warning:` |nbsp| :diagtext:`macro expansion producing 'defined' has undefined behavior`|
9398+-------------------------------------------------------------------------------------------------+
9399
9400
9401-Wpedantic-core-features
9402------------------------
9403**Diagnostic text:**
9404
9405+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
9406|:warning:`warning:` |nbsp| :diagtext:`OpenCL extension` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is core feature or supported optional core feature - ignoring`|
9407+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
9408
9409
9410-Wpessimizing-move
9411------------------
9412**Diagnostic text:**
9413
9414+--------------------------------------------------------------------------------------+
9415|:warning:`warning:` |nbsp| :diagtext:`moving a temporary object prevents copy elision`|
9416+--------------------------------------------------------------------------------------+
9417
9418+--------------------------------------------------------------------------------------------------------+
9419|:warning:`warning:` |nbsp| :diagtext:`moving a local object in a return statement prevents copy elision`|
9420+--------------------------------------------------------------------------------------------------------+
9421
9422
9423-Wpointer-arith
9424---------------
9425Some of the diagnostics controlled by this flag are enabled by default.
9426
9427**Diagnostic text:**
9428
9429+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+
9430|: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`|
9431|                                                    || |nbsp| :diagtext:`a`||                           ||             ||                      || |nbsp| :diagtext:`the`||                                 ||             ||                        ||                                                 ||                                      |
9432|                                                    |+---------------------+|                           |+-------------+|                      |+-----------------------+|                                 |+-------------+|                        |+-------------------------------------------------+|                                      |
9433|                                                    ||                     ||                           ||:diagtext:`s`||                      ||                       ||                                 ||:diagtext:`s`||                        ||+-----------------------------------------------+||                                      |
9434|                                                    |+---------------------+|                           |+-------------+|                      |+-----------------------+|                                 |+-------------+|                        ||| |nbsp| :diagtext:`and` |nbsp| :placeholder:`D`|||                                      |
9435|                                                    |                       |                           |               |                      |                         |                                 |               |                        ||+-----------------------------------------------+||                                      |
9436|                                                    |                       |                           |               |                      |                         |                                 |               |                        |+-------------------------------------------------+|                                      |
9437+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+
9438
9439+----------------------------------------------------------------------------------------+
9440|:warning:`warning:` |nbsp| :diagtext:`subscript of a pointer to void is a GNU extension`|
9441+----------------------------------------------------------------------------------------+
9442
9443+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+
9444|:warning:`warning:` |nbsp| :diagtext:`arithmetic on`|+---------------------+| |nbsp| :diagtext:`pointer`|+-------------+| |nbsp| :diagtext:`to void is a GNU extension`|
9445|                                                    || |nbsp| :diagtext:`a`||                           ||             ||                                              |
9446|                                                    |+---------------------+|                           |+-------------+|                                              |
9447|                                                    ||                     ||                           ||:diagtext:`s`||                                              |
9448|                                                    |+---------------------+|                           |+-------------+|                                              |
9449+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+
9450
9451+---------------------------------------------------------------+-----------------------------------------------------+--------------------------------+
9452|:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------------------------------------+|:diagtext:`' to a function type`|
9453|                                                               ||:diagtext:`sizeof`                                 ||                                |
9454|                                                               |+---------------------------------------------------+|                                |
9455|                                                               ||:diagtext:`alignof`                                ||                                |
9456|                                                               |+---------------------------------------------------+|                                |
9457|                                                               ||:diagtext:`vec\_step`                              ||                                |
9458|                                                               |+---------------------------------------------------+|                                |
9459|                                                               ||:diagtext:`\_\_builtin\_omp\_required\_simd\_align`||                                |
9460|                                                               |+---------------------------------------------------+|                                |
9461|                                                               ||:diagtext:`\_\_alignof`                            ||                                |
9462|                                                               |+---------------------------------------------------+|                                |
9463+---------------------------------------------------------------+-----------------------------------------------------+--------------------------------+
9464
9465+---------------------------------------------------------------+-----------------------------------------------------+----------------------------+
9466|:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------------------------------------+|:diagtext:`' to a void type`|
9467|                                                               ||:diagtext:`sizeof`                                 ||                            |
9468|                                                               |+---------------------------------------------------+|                            |
9469|                                                               ||:diagtext:`alignof`                                ||                            |
9470|                                                               |+---------------------------------------------------+|                            |
9471|                                                               ||:diagtext:`vec\_step`                              ||                            |
9472|                                                               |+---------------------------------------------------+|                            |
9473|                                                               ||:diagtext:`\_\_builtin\_omp\_required\_simd\_align`||                            |
9474|                                                               |+---------------------------------------------------+|                            |
9475|                                                               ||:diagtext:`\_\_alignof`                            ||                            |
9476|                                                               |+---------------------------------------------------+|                            |
9477+---------------------------------------------------------------+-----------------------------------------------------+----------------------------+
9478
9479+-----------------------------------------------------------------------------------------------------------------------------------------------------+
9480|:warning:`warning:` |nbsp| :diagtext:`subtraction of pointers to type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of zero size has undefined behavior`|
9481+-----------------------------------------------------------------------------------------------------------------------------------------------------+
9482
9483
9484-Wpointer-bool-conversion
9485-------------------------
9486This diagnostic is enabled by default.
9487
9488**Diagnostic text:**
9489
9490+------------------------------------------------------+---------------------------+---------------------------------------------------------------------------------------------+
9491|:warning:`warning:` |nbsp| :diagtext:`nonnull` |nbsp| |+-------------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' will evaluate to 'true' on first encounter`|
9492|                                                      ||:diagtext:`function call`||                                                                                             |
9493|                                                      |+-------------------------+|                                                                                             |
9494|                                                      ||:diagtext:`parameter`    ||                                                                                             |
9495|                                                      |+-------------------------+|                                                                                             |
9496+------------------------------------------------------+---------------------------+---------------------------------------------------------------------------------------------+
9497
9498+-------------------------------------------------+------------------------------+---------------------------------------------------------------------------------+
9499|:warning:`warning:` |nbsp| :diagtext:`address of`|+----------------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' will always evaluate to 'true'`|
9500|                                                 ||                            ||                                                                                 |
9501|                                                 |+----------------------------+|                                                                                 |
9502|                                                 || |nbsp| :diagtext:`function`||                                                                                 |
9503|                                                 |+----------------------------+|                                                                                 |
9504|                                                 || |nbsp| :diagtext:`array`   ||                                                                                 |
9505|                                                 |+----------------------------+|                                                                                 |
9506+-------------------------------------------------+------------------------------+---------------------------------------------------------------------------------+
9507
9508
9509-Wpointer-integer-compare
9510-------------------------
9511This diagnostic is enabled by default.
9512
9513**Diagnostic text:**
9514
9515+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
9516|:warning:`warning:` |nbsp| :diagtext:`comparison between pointer and integer (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`|
9517+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
9518
9519
9520-Wpointer-sign
9521--------------
9522This diagnostic is enabled by default.
9523
9524**Diagnostic text:**
9525
9526+---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------------+
9527|:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`converts between pointers to integer types with different sign`|
9528|                           ||:diagtext:`assigning to different types`                      ||                                                                                  |
9529|                           |+--------------------------------------------------------------+|                                                                                  |
9530|                           ||:diagtext:`passing to parameter of different type`            ||                                                                                  |
9531|                           |+--------------------------------------------------------------+|                                                                                  |
9532|                           ||:diagtext:`returning from function with different return type`||                                                                                  |
9533|                           |+--------------------------------------------------------------+|                                                                                  |
9534|                           ||:diagtext:`converting between types`                          ||                                                                                  |
9535|                           |+--------------------------------------------------------------+|                                                                                  |
9536|                           ||:diagtext:`initializing with expression of different type`    ||                                                                                  |
9537|                           |+--------------------------------------------------------------+|                                                                                  |
9538|                           ||:diagtext:`sending to parameter of different type`            ||                                                                                  |
9539|                           |+--------------------------------------------------------------+|                                                                                  |
9540|                           ||:diagtext:`casting between types`                             ||                                                                                  |
9541|                           |+--------------------------------------------------------------+|                                                                                  |
9542+---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------------+
9543
9544
9545-Wpointer-to-int-cast
9546---------------------
9547This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
9548
9549-Wpointer-type-mismatch
9550-----------------------
9551This diagnostic is enabled by default.
9552
9553**Diagnostic text:**
9554
9555+------------------------------------------------------------+
9556|:warning:`warning:` |nbsp| :diagtext:`pointer type mismatch`|
9557+------------------------------------------------------------+
9558
9559
9560-Wpotentially-evaluated-expression
9561----------------------------------
9562This diagnostic is enabled by default.
9563
9564**Diagnostic text:**
9565
9566+----------------------------------------------------------------------------------------------------------------------------------+
9567|:warning:`warning:` |nbsp| :diagtext:`expression with side effects will be evaluated despite being used as an operand to 'typeid'`|
9568+----------------------------------------------------------------------------------------------------------------------------------+
9569
9570
9571-Wpragma-clang-attribute
9572------------------------
9573This diagnostic is enabled by default.
9574
9575**Diagnostic text:**
9576
9577+-------------------------------------------------------------------------------------------------------------------------------------------+
9578|:warning:`warning:` |nbsp| :diagtext:`unused attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in '#pragma clang attribute push' region`|
9579+-------------------------------------------------------------------------------------------------------------------------------------------+
9580
9581
9582-Wpragma-once-outside-header
9583----------------------------
9584This diagnostic is enabled by default.
9585
9586**Diagnostic text:**
9587
9588+----------------------------------------------------------------+
9589|:warning:`warning:` |nbsp| :diagtext:`#pragma once in main file`|
9590+----------------------------------------------------------------+
9591
9592
9593-Wpragma-pack
9594-------------
9595Some of the diagnostics controlled by this flag are enabled by default.
9596
9597Also controls `-Wpragma-pack-suspicious-include`_.
9598
9599**Diagnostic text:**
9600
9601+----------------------------------------------------------------------------------------------------------------+
9602|:warning:`warning:` |nbsp| :diagtext:`the current #pragma pack alignment value is modified in the included file`|
9603+----------------------------------------------------------------------------------------------------------------+
9604
9605+---------------------------------------------------------------------------------------------+
9606|:warning:`warning:` |nbsp| :diagtext:`unterminated '#pragma pack (push, ...)' at end of file`|
9607+---------------------------------------------------------------------------------------------+
9608
9609
9610-Wpragma-pack-suspicious-include
9611--------------------------------
9612**Diagnostic text:**
9613
9614+-------------------------------------------------------------------------------------------------------------------------------------------+
9615|:warning:`warning:` |nbsp| :diagtext:`non-default #pragma pack value changes the alignment of struct or union members in the included file`|
9616+-------------------------------------------------------------------------------------------------------------------------------------------+
9617
9618
9619-Wpragma-system-header-outside-header
9620-------------------------------------
9621This diagnostic is enabled by default.
9622
9623**Diagnostic text:**
9624
9625+----------------------------------------------------------------------------------+
9626|:warning:`warning:` |nbsp| :diagtext:`#pragma system\_header ignored in main file`|
9627+----------------------------------------------------------------------------------+
9628
9629
9630-Wpragmas
9631---------
9632Some of the diagnostics controlled by this flag are enabled by default.
9633
9634Also controls `-Wignored-pragmas`_, `-Wpragma-clang-attribute`_, `-Wpragma-pack`_, `-Wunknown-pragmas`_.
9635
9636**Diagnostic text:**
9637
9638+--------------------------------------------------------------------------------------------------------------------------------------+----------------------+------------------------+
9639|:warning:`warning:` |nbsp| :diagtext:`#pragma redefine\_extname is applicable to external C declarations only; not applied to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B`|
9640|                                                                                                                                      ||:diagtext:`function`||                        |
9641|                                                                                                                                      |+--------------------+|                        |
9642|                                                                                                                                      ||:diagtext:`variable`||                        |
9643|                                                                                                                                      |+--------------------+|                        |
9644+--------------------------------------------------------------------------------------------------------------------------------------+----------------------+------------------------+
9645
9646
9647-Wpredefined-identifier-outside-function
9648----------------------------------------
9649This diagnostic is enabled by default.
9650
9651**Diagnostic text:**
9652
9653+------------------------------------------------------------------------------------------+
9654|:warning:`warning:` |nbsp| :diagtext:`predefined identifier is only valid inside function`|
9655+------------------------------------------------------------------------------------------+
9656
9657
9658-Wprivate-extern
9659----------------
9660This diagnostic is enabled by default.
9661
9662**Diagnostic text:**
9663
9664+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9665|:warning:`warning:` |nbsp| :diagtext:`use of \_\_private\_extern\_\_ on a declaration may not produce external symbol private to the linkage unit and is deprecated`|
9666+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9667
9668
9669-Wprivate-header
9670----------------
9671This diagnostic is an error by default, but the flag ``-Wno-private-header`` can be used to disable the error.
9672
9673**Diagnostic text:**
9674
9675+----------------------------------------------------------------------------------------------------------------+
9676|:error:`error:` |nbsp| :diagtext:`use of private header from outside its module: '`:placeholder:`A`:diagtext:`'`|
9677+----------------------------------------------------------------------------------------------------------------+
9678
9679
9680-Wprivate-module
9681----------------
9682This diagnostic is enabled by default.
9683
9684**Diagnostic text:**
9685
9686+----------------------------------------------------------------------------------------------------------------+
9687|:warning:`warning:` |nbsp| :diagtext:`expected canonical name for private module '`:placeholder:`A`:diagtext:`'`|
9688+----------------------------------------------------------------------------------------------------------------+
9689
9690+----------------------------------------------------------------------------------------------------------------------------------------+
9691|:warning:`warning:` |nbsp| :diagtext:`private submodule '`:placeholder:`A`:diagtext:`' in private module map, expected top-level module`|
9692+----------------------------------------------------------------------------------------------------------------------------------------+
9693
9694+----------------------------------------------------------------------------------------------------------------------------------+
9695|:warning:`warning:` |nbsp| :diagtext:`module '`:placeholder:`A`:diagtext:`' already re-exported as '`:placeholder:`B`:diagtext:`'`|
9696+----------------------------------------------------------------------------------------------------------------------------------+
9697
9698+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9699|:warning:`warning:` |nbsp| :diagtext:`no submodule named` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in module '`:placeholder:`B`:diagtext:`'; using top level '`:placeholder:`C`:diagtext:`'`|
9700+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9701
9702
9703-Wprofile-instr-missing
9704-----------------------
9705**Diagnostic text:**
9706
9707+-----------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+------------------+---------------------------+
9708|: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`|
9709|                                                                                                                             ||             ||                                             ||:diagtext:`has` ||                           |
9710|                                                                                                                             |+-------------+|                                             |+----------------+|                           |
9711|                                                                                                                             ||:diagtext:`s`||                                             ||:diagtext:`have`||                           |
9712|                                                                                                                             |+-------------+|                                             |+----------------+|                           |
9713+-----------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+------------------+---------------------------+
9714
9715
9716-Wprofile-instr-out-of-date
9717---------------------------
9718This diagnostic is enabled by default.
9719
9720**Diagnostic text:**
9721
9722+------------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+------------------+--------------------------------------------------------+
9723|: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`|
9724|                                                                                                                              ||             ||                                             ||:diagtext:`has` ||                                                        |
9725|                                                                                                                              |+-------------+|                                             |+----------------+|                                                        |
9726|                                                                                                                              ||:diagtext:`s`||                                             ||:diagtext:`have`||                                                        |
9727|                                                                                                                              |+-------------+|                                             |+----------------+|                                                        |
9728+------------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+------------------+--------------------------------------------------------+
9729
9730
9731-Wprofile-instr-unprofiled
9732--------------------------
9733This diagnostic is enabled by default.
9734
9735**Diagnostic text:**
9736
9737+--------------------------------------------------------------------------------------------------------+
9738|:warning:`warning:` |nbsp| :diagtext:`no profile data available for file "`:placeholder:`A`:diagtext:`"`|
9739+--------------------------------------------------------------------------------------------------------+
9740
9741
9742-Wproperty-access-dot-syntax
9743----------------------------
9744This diagnostic is enabled by default.
9745
9746**Diagnostic text:**
9747
9748+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9749|: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:`?`|
9750+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9751
9752
9753-Wproperty-attribute-mismatch
9754-----------------------------
9755This diagnostic is enabled by default.
9756
9757**Diagnostic text:**
9758
9759+-------------------------------------------------------------------------------------------------------------+
9760|:warning:`warning:` |nbsp| :diagtext:`property attribute in class extension does not match the primary class`|
9761+-------------------------------------------------------------------------------------------------------------+
9762
9763+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9764|: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`|
9765+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9766
9767+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9768|:warning:`warning:` |nbsp| :diagtext:`getter name mismatch between property redeclaration (`:placeholder:`B`:diagtext:`) and its original declaration (`:placeholder:`A`:diagtext:`)`|
9769+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9770
9771+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9772|:warning:`warning:` |nbsp| :diagtext:`attribute 'readonly' of property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`restricts attribute 'readwrite' of property inherited from` |nbsp| :placeholder:`B`|
9773+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9774
9775
9776-Wprotocol
9777----------
9778This diagnostic is enabled by default.
9779
9780**Diagnostic text:**
9781
9782+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
9783|:warning:`warning:` |nbsp| :diagtext:`method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in protocol` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not implemented`|
9784+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
9785
9786
9787-Wprotocol-property-synthesis-ambiguity
9788---------------------------------------
9789This diagnostic is enabled by default.
9790
9791**Diagnostic text:**
9792
9793+-------------------------------------------------------+----------------------------------------------------------------+----------------------------------------------+
9794|:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`was selected for synthesis`|
9795|                                                       ||+-------------------------------------------+                 ||                                              |
9796|                                                       |||:diagtext:`of type` |nbsp| :placeholder:`B`|                 ||                                              |
9797|                                                       ||+-------------------------------------------+                 ||                                              |
9798|                                                       |+--------------------------------------------------------------+|                                              |
9799|                                                       ||+---------------------------------------------------------+   ||                                              |
9800|                                                       |||:diagtext:`with attribute '`:placeholder:`B`:diagtext:`'`|   ||                                              |
9801|                                                       ||+---------------------------------------------------------+   ||                                              |
9802|                                                       |+--------------------------------------------------------------+|                                              |
9803|                                                       ||+------------------------------------------------------------+||                                              |
9804|                                                       |||:diagtext:`without attribute '`:placeholder:`B`:diagtext:`'`|||                                              |
9805|                                                       ||+------------------------------------------------------------+||                                              |
9806|                                                       |+--------------------------------------------------------------+|                                              |
9807|                                                       ||+-----------------------------------------------+             ||                                              |
9808|                                                       |||:diagtext:`with getter` |nbsp| :placeholder:`B`|             ||                                              |
9809|                                                       ||+-----------------------------------------------+             ||                                              |
9810|                                                       |+--------------------------------------------------------------+|                                              |
9811|                                                       ||+-----------------------------------------------+             ||                                              |
9812|                                                       |||:diagtext:`with setter` |nbsp| :placeholder:`B`|             ||                                              |
9813|                                                       ||+-----------------------------------------------+             ||                                              |
9814|                                                       |+--------------------------------------------------------------+|                                              |
9815+-------------------------------------------------------+----------------------------------------------------------------+----------------------------------------------+
9816
9817
9818-Wqualified-void-return-type
9819----------------------------
9820This diagnostic is enabled by default.
9821
9822**Diagnostic text:**
9823
9824+---------------------------------------------------------------------------------------------------------+
9825|:warning:`warning:` |nbsp| :diagtext:`function cannot return qualified void type` |nbsp| :placeholder:`A`|
9826+---------------------------------------------------------------------------------------------------------+
9827
9828
9829-Wquoted-include-in-framework-header
9830------------------------------------
9831**Diagnostic text:**
9832
9833+-------------------------------------------------------------------------------------------------------------------------------------------------+
9834|:warning:`warning:` |nbsp| :diagtext:`double-quoted include "`:placeholder:`A`:diagtext:`" in framework header, expected angle-bracketed instead`|
9835+-------------------------------------------------------------------------------------------------------------------------------------------------+
9836
9837
9838-Wrange-loop-analysis
9839---------------------
9840**Diagnostic text:**
9841
9842+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9843|: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`|
9844+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9845
9846+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9847|: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`|
9848+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9849
9850+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9851|: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`|
9852+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9853
9854
9855-Wreadonly-iboutlet-property
9856----------------------------
9857This diagnostic is enabled by default.
9858
9859**Diagnostic text:**
9860
9861+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9862|:warning:`warning:` |nbsp| :diagtext:`readonly IBOutlet property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when auto-synthesized may not work correctly with 'nib' loader`|
9863+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9864
9865
9866-Wreceiver-expr
9867---------------
9868This diagnostic is enabled by default.
9869
9870**Diagnostic text:**
9871
9872+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
9873|:warning:`warning:` |nbsp| :diagtext:`receiver type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not 'id' or interface pointer, consider casting it to 'id'`|
9874+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
9875
9876
9877-Wreceiver-forward-class
9878------------------------
9879Some of the diagnostics controlled by this flag are enabled by default.
9880
9881**Diagnostic text:**
9882
9883+--------------------------------------------------------------------------------------------------------------------------------------------------------+
9884|:warning:`warning:` |nbsp| :diagtext:`receiver` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a forward class and corresponding @interface may not exist`|
9885+--------------------------------------------------------------------------------------------------------------------------------------------------------+
9886
9887+---------------------------------------------------------------------------------------------------------------------------------------------+
9888|:warning:`warning:` |nbsp| :diagtext:`receiver type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for instance message is a forward declaration`|
9889+---------------------------------------------------------------------------------------------------------------------------------------------+
9890
9891
9892-Wredeclared-class-member
9893-------------------------
9894This diagnostic is enabled by default.
9895
9896**Diagnostic text:**
9897
9898+------------------------------------------------------------------------+
9899|:warning:`warning:` |nbsp| :diagtext:`class member cannot be redeclared`|
9900+------------------------------------------------------------------------+
9901
9902
9903-Wredundant-decls
9904-----------------
9905This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
9906
9907-Wredundant-move
9908----------------
9909**Diagnostic text:**
9910
9911+-------------------------------------------------------------------------+
9912|:warning:`warning:` |nbsp| :diagtext:`redundant move in return statement`|
9913+-------------------------------------------------------------------------+
9914
9915
9916-Wredundant-parens
9917------------------
9918**Diagnostic text:**
9919
9920+-----------------------------------------------------------------------------------+
9921|:warning:`warning:` |nbsp| :diagtext:`redundant parentheses surrounding declarator`|
9922+-----------------------------------------------------------------------------------+
9923
9924
9925-Wregister
9926----------
9927This diagnostic is enabled by default.
9928
9929Also controls `-Wdeprecated-register`_.
9930
9931**Diagnostic text:**
9932
9933+----------------------------------------------------------------------------------------------+
9934|:error:`error:` |nbsp| :diagtext:`ISO C++17 does not allow 'register' storage class specifier`|
9935+----------------------------------------------------------------------------------------------+
9936
9937
9938-Wreinterpret-base-class
9939------------------------
9940This diagnostic is enabled by default.
9941
9942**Diagnostic text:**
9943
9944+------------------------------------------------------------------+------------------+---------------------------------------------------------+------------------+-------------------------------+-------------------------------------+-----------------------------------------------------------------------------------+
9945|: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'`|
9946|                                                                  ||:diagtext:`from`||                                                         ||:diagtext:`to`  ||                               ||:diagtext:`virtual base`           ||                                                                                   |
9947|                                                                  |+----------------+|                                                         |+----------------+|                               |+-----------------------------------+|                                                                                   |
9948|                                                                  ||:diagtext:`to`  ||                                                         ||:diagtext:`from`||                               ||:diagtext:`base at non-zero offset`||                                                                                   |
9949|                                                                  |+----------------+|                                                         |+----------------+|                               |+-----------------------------------+|                                                                                   |
9950+------------------------------------------------------------------+------------------+---------------------------------------------------------+------------------+-------------------------------+-------------------------------------+-----------------------------------------------------------------------------------+
9951
9952
9953-Rremark-backend-plugin
9954-----------------------
9955**Diagnostic text:**
9956
9957The text of this diagnostic is not controlled by Clang.
9958
9959
9960-Wreorder
9961---------
9962**Diagnostic text:**
9963
9964+---------------------------+------------------------+-----------------------------------------------------------------------------+-------------------+------------------------+
9965|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`will be initialized after` |nbsp| |+-----------------+| |nbsp| :placeholder:`D`|
9966|                           ||:diagtext:`field`     ||                                                                             ||:diagtext:`field`||                        |
9967|                           |+----------------------+|                                                                             |+-----------------+|                        |
9968|                           ||:diagtext:`base class`||                                                                             ||:diagtext:`base` ||                        |
9969|                           |+----------------------+|                                                                             |+-----------------+|                        |
9970+---------------------------+------------------------+-----------------------------------------------------------------------------+-------------------+------------------------+
9971
9972
9973-Wrequires-super-attribute
9974--------------------------
9975This diagnostic is enabled by default.
9976
9977**Diagnostic text:**
9978
9979+-----------------------------------------------------------------------------------------------------+----------------------------------+
9980|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute cannot be applied to` |nbsp| |+--------------------------------+|
9981|                                                                                                     ||:diagtext:`methods in protocols`||
9982|                                                                                                     |+--------------------------------+|
9983|                                                                                                     ||:diagtext:`dealloc`             ||
9984|                                                                                                     |+--------------------------------+|
9985+-----------------------------------------------------------------------------------------------------+----------------------------------+
9986
9987
9988-Wreserved-id-macro
9989-------------------
9990**Diagnostic text:**
9991
9992+--------------------------------------------------------------------------+
9993|:warning:`warning:` |nbsp| :diagtext:`macro name is a reserved identifier`|
9994+--------------------------------------------------------------------------+
9995
9996
9997-Wreserved-user-defined-literal
9998-------------------------------
9999Some of the diagnostics controlled by this flag are enabled by default.
10000
10001Also controls `-Wc++11-compat-reserved-user-defined-literal`_.
10002
10003**Diagnostic text:**
10004
10005+-----------------------------------------------------------------------------------------------------------------------+
10006|:warning:`warning:` |nbsp| :diagtext:`invalid suffix on literal; C++11 requires a space between literal and identifier`|
10007+-----------------------------------------------------------------------------------------------------------------------+
10008
10009+-------------------------------------------------------------------------------------------------------------------+
10010|:error:`error:` |nbsp| :diagtext:`invalid suffix on literal; C++11 requires a space between literal and identifier`|
10011+-------------------------------------------------------------------------------------------------------------------+
10012
10013
10014-Wretained-language-linkage
10015---------------------------
10016**Diagnostic text:**
10017
10018+-----------------------------------------------------------------------------------------------------------------------------------------------------+
10019|:warning:`warning:` |nbsp| :diagtext:`friend function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`retaining previous language linkage is an extension`|
10020+-----------------------------------------------------------------------------------------------------------------------------------------------------+
10021
10022
10023-Wreturn-stack-address
10024----------------------
10025This diagnostic is enabled by default.
10026
10027**Diagnostic text:**
10028
10029+---------------------------------------------------------------------------------+
10030|:warning:`warning:` |nbsp| :diagtext:`returning address of label, which is local`|
10031+---------------------------------------------------------------------------------+
10032
10033+--------------------------------------------------------+--------------------------+------------------------------------------+
10034|:warning:`warning:` |nbsp| :diagtext:`returning` |nbsp| |+------------------------+| |nbsp| :diagtext:`local temporary object`|
10035|                                                        ||:diagtext:`address of`  ||                                          |
10036|                                                        |+------------------------+|                                          |
10037|                                                        ||:diagtext:`reference to`||                                          |
10038|                                                        |+------------------------+|                                          |
10039+--------------------------------------------------------+--------------------------+------------------------------------------+
10040
10041+---------------------------+--------------------------+--------------------------------------------------------+----------------------------+----------------------------------------------------+
10042|:warning:`warning:` |nbsp| |+------------------------+| |nbsp| :diagtext:`stack memory associated with` |nbsp| |+--------------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`returned`|
10043|                           ||:diagtext:`address of`  ||                                                        ||:diagtext:`local variable`||                                                    |
10044|                           |+------------------------+|                                                        |+--------------------------+|                                                    |
10045|                           ||:diagtext:`reference to`||                                                        ||:diagtext:`parameter`     ||                                                    |
10046|                           |+------------------------+|                                                        |+--------------------------+|                                                    |
10047+---------------------------+--------------------------+--------------------------------------------------------+----------------------------+----------------------------------------------------+
10048
10049
10050-Wreturn-std-move
10051-----------------
10052**Diagnostic text:**
10053
10054+-------------------------------------------------------------------------------------------------------------------------------------+----------------------+---------------------------+
10055|:warning:`warning:` |nbsp| :diagtext:`local variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will be copied despite being` |nbsp| |+--------------------+| |nbsp| :diagtext:`by name`|
10056|                                                                                                                                     ||:diagtext:`returned`||                           |
10057|                                                                                                                                     |+--------------------+|                           |
10058|                                                                                                                                     ||:diagtext:`thrown`  ||                           |
10059|                                                                                                                                     |+--------------------+|                           |
10060+-------------------------------------------------------------------------------------------------------------------------------------+----------------------+---------------------------+
10061
10062
10063-Wreturn-std-move-in-c++11
10064--------------------------
10065**Diagnostic text:**
10066
10067+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10068|: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`|
10069+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10070
10071
10072-Wreturn-type
10073-------------
10074This diagnostic is enabled by default.
10075
10076Also controls `-Wreturn-type-c-linkage`_.
10077
10078**Diagnostic text:**
10079
10080+-----------------------+---------------------------+---------------------------------------------------------------------+
10081|:error:`error:` |nbsp| |+-------------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return a value`|
10082|                       ||:diagtext:`void function`||                                                                     |
10083|                       |+-------------------------+|                                                                     |
10084|                       ||:diagtext:`void method`  ||                                                                     |
10085|                       |+-------------------------+|                                                                     |
10086|                       ||:diagtext:`constructor`  ||                                                                     |
10087|                       |+-------------------------+|                                                                     |
10088|                       ||:diagtext:`destructor`   ||                                                                     |
10089|                       |+-------------------------+|                                                                     |
10090+-----------------------+---------------------------+---------------------------------------------------------------------+
10091
10092+---------------------------------------------------+----------------------+-----------------------------------------------------------------+
10093|:error:`error:` |nbsp| :diagtext:`non-void` |nbsp| |+--------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should return a value`|
10094|                                                   ||:diagtext:`function`||                                                                 |
10095|                                                   |+--------------------+|                                                                 |
10096|                                                   ||:diagtext:`method`  ||                                                                 |
10097|                                                   |+--------------------+|                                                                 |
10098+---------------------------------------------------+----------------------+-----------------------------------------------------------------+
10099
10100+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10101|: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()'`|
10102+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10103
10104+-------------------------------------------------------------------------------+
10105|:warning:`warning:` |nbsp| :diagtext:`control reaches end of non-void function`|
10106+-------------------------------------------------------------------------------+
10107
10108+-----------------------------------------------------------------------------+
10109|:warning:`warning:` |nbsp| :diagtext:`control reaches end of non-void lambda`|
10110+-----------------------------------------------------------------------------+
10111
10112+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10113|: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()'`|
10114+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10115
10116+---------------------------------------------------------------------------------+
10117|:warning:`warning:` |nbsp| :diagtext:`control may reach end of non-void function`|
10118+---------------------------------------------------------------------------------+
10119
10120+-------------------------------------------------------------------------------+
10121|:warning:`warning:` |nbsp| :diagtext:`control may reach end of non-void lambda`|
10122+-------------------------------------------------------------------------------+
10123
10124+---------------------------------------------------+----------------------+-----------------------------------------------------------------+
10125|:error:`error:` |nbsp| :diagtext:`non-void` |nbsp| |+--------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should return a value`|
10126|                                                   ||:diagtext:`function`||                                                                 |
10127|                                                   |+--------------------+|                                                                 |
10128|                                                   ||:diagtext:`method`  ||                                                                 |
10129|                                                   |+--------------------+|                                                                 |
10130+---------------------------------------------------+----------------------+-----------------------------------------------------------------+
10131
10132
10133-Wreturn-type-c-linkage
10134-----------------------
10135This diagnostic is enabled by default.
10136
10137**Diagnostic text:**
10138
10139+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10140|: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`|
10141+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10142
10143+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10144|: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`|
10145+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10146
10147
10148-Rsanitize-address
10149------------------
10150**Diagnostic text:**
10151
10152+--------------------------------------------------------------------------------------------------------+
10153|:remark:`remark:` |nbsp| :diagtext:`-fsanitize-address-field-padding applied to` |nbsp| :placeholder:`A`|
10154+--------------------------------------------------------------------------------------------------------+
10155
10156+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------+
10157|:remark:`remark:` |nbsp| :diagtext:`-fsanitize-address-field-padding ignored for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`because it` |nbsp| |+------------------------------------+|
10158|                                                                                                                                               ||:diagtext:`is not C++`              ||
10159|                                                                                                                                               |+------------------------------------+|
10160|                                                                                                                                               ||:diagtext:`is packed`               ||
10161|                                                                                                                                               |+------------------------------------+|
10162|                                                                                                                                               ||:diagtext:`is a union`              ||
10163|                                                                                                                                               |+------------------------------------+|
10164|                                                                                                                                               ||:diagtext:`is trivially copyable`   ||
10165|                                                                                                                                               |+------------------------------------+|
10166|                                                                                                                                               ||:diagtext:`has trivial destructor`  ||
10167|                                                                                                                                               |+------------------------------------+|
10168|                                                                                                                                               ||:diagtext:`is standard layout`      ||
10169|                                                                                                                                               |+------------------------------------+|
10170|                                                                                                                                               ||:diagtext:`is in a blacklisted file`||
10171|                                                                                                                                               |+------------------------------------+|
10172|                                                                                                                                               ||:diagtext:`is blacklisted`          ||
10173|                                                                                                                                               |+------------------------------------+|
10174+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------+
10175
10176
10177-Wsection
10178---------
10179This diagnostic is enabled by default.
10180
10181**Diagnostic text:**
10182
10183+--------------------------------------------------------------------------------------------+
10184|:warning:`warning:` |nbsp| :diagtext:`section attribute is specified on redeclared variable`|
10185+--------------------------------------------------------------------------------------------+
10186
10187+------------------------------------------------------------------------+
10188|:warning:`warning:` |nbsp| :diagtext:`duplicate code segment specifiers`|
10189+------------------------------------------------------------------------+
10190
10191+---------------------------+---------------------+-------------------------------------------------------+
10192|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`does not match previous declaration`|
10193|                           ||:diagtext:`codeseg`||                                                       |
10194|                           |+-------------------+|                                                       |
10195|                           ||:diagtext:`section`||                                                       |
10196|                           |+-------------------+|                                                       |
10197+---------------------------+---------------------+-------------------------------------------------------+
10198
10199
10200-Wselector
10201----------
10202Also controls `-Wselector-type-mismatch`_.
10203
10204**Diagnostic text:**
10205
10206+-------------------------------------------------------------------------------------------------------------------------------------------------+
10207|:warning:`warning:` |nbsp| :diagtext:`no method with selector` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is implemented in this translation unit`|
10208+-------------------------------------------------------------------------------------------------------------------------------------------------+
10209
10210
10211-Wselector-type-mismatch
10212------------------------
10213**Diagnostic text:**
10214
10215+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10216|:warning:`warning:` |nbsp| :diagtext:`several methods with selector` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of mismatched types are found for the @selector expression`|
10217+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10218
10219
10220-Wself-assign
10221-------------
10222Some of the diagnostics controlled by this flag are enabled by default.
10223
10224Also controls `-Wself-assign-field`_, `-Wself-assign-overloaded`_.
10225
10226**Diagnostic text:**
10227
10228+------------------------------------------------------------------------------------------------------------------------------------------+
10229|:warning:`warning:` |nbsp| :diagtext:`explicitly assigning value of variable of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to itself`|
10230+------------------------------------------------------------------------------------------------------------------------------------------+
10231
10232
10233-Wself-assign-field
10234-------------------
10235This diagnostic is enabled by default.
10236
10237**Diagnostic text:**
10238
10239+--------------------------------------------------------+-------------------------------+-----------------------------+
10240|:warning:`warning:` |nbsp| :diagtext:`assigning` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`to itself`|
10241|                                                        ||:diagtext:`field`            ||                             |
10242|                                                        |+-----------------------------+|                             |
10243|                                                        ||:diagtext:`instance variable`||                             |
10244|                                                        |+-----------------------------+|                             |
10245+--------------------------------------------------------+-------------------------------+-----------------------------+
10246
10247
10248-Wself-assign-overloaded
10249------------------------
10250**Diagnostic text:**
10251
10252+------------------------------------------------------------------------------------------------------------------------------------------+
10253|:warning:`warning:` |nbsp| :diagtext:`explicitly assigning value of variable of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to itself`|
10254+------------------------------------------------------------------------------------------------------------------------------------------+
10255
10256
10257-Wself-move
10258-----------
10259**Diagnostic text:**
10260
10261+------------------------------------------------------------------------------------------------------------------------------+
10262|:warning:`warning:` |nbsp| :diagtext:`explicitly moving variable of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to itself`|
10263+------------------------------------------------------------------------------------------------------------------------------+
10264
10265
10266-Wsemicolon-before-method-body
10267------------------------------
10268**Diagnostic text:**
10269
10270+------------------------------------------------------------------------------+
10271|:warning:`warning:` |nbsp| :diagtext:`semicolon before method body is ignored`|
10272+------------------------------------------------------------------------------+
10273
10274
10275-Wsentinel
10276----------
10277This diagnostic is enabled by default.
10278
10279**Diagnostic text:**
10280
10281+------------------------------------------------------------------+-----------------------------+
10282|:warning:`warning:` |nbsp| :diagtext:`missing sentinel in` |nbsp| |+---------------------------+|
10283|                                                                  ||:diagtext:`function call`  ||
10284|                                                                  |+---------------------------+|
10285|                                                                  ||:diagtext:`method dispatch`||
10286|                                                                  |+---------------------------+|
10287|                                                                  ||:diagtext:`block call`     ||
10288|                                                                  |+---------------------------+|
10289+------------------------------------------------------------------+-----------------------------+
10290
10291+------------------------------------------------------------------------------------------------------------------------------------------------+
10292|:warning:`warning:` |nbsp| :diagtext:`not enough variable arguments in` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declaration to fit a sentinel`|
10293+------------------------------------------------------------------------------------------------------------------------------------------------+
10294
10295
10296-Wsequence-point
10297----------------
10298Synonym for `-Wunsequenced`_.
10299
10300
10301-Wserialized-diagnostics
10302------------------------
10303This diagnostic is enabled by default.
10304
10305**Diagnostic text:**
10306
10307+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
10308|:warning:`warning:` |nbsp| :diagtext:`unable to open file` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for serializing diagnostics (`:placeholder:`B`:diagtext:`)`|
10309+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
10310
10311+--------------------------------------------------------------------------------------------+
10312|:warning:`warning:` |nbsp| :diagtext:`unable to merge a subprocess's serialized diagnostics`|
10313+--------------------------------------------------------------------------------------------+
10314
10315
10316-Wshadow
10317--------
10318Some of the diagnostics controlled by this flag are enabled by default.
10319
10320Also controls `-Wshadow-field-in-constructor-modified`_, `-Wshadow-ivar`_.
10321
10322**Diagnostic text:**
10323
10324+--------------------------------------------------------------------+-------------------------------------------------------------+
10325|:warning:`warning:` |nbsp| :diagtext:`declaration shadows a` |nbsp| |+-----------------------------------------------------------+|
10326|                                                                    ||:diagtext:`local variable`                                 ||
10327|                                                                    |+-----------------------------------------------------------+|
10328|                                                                    ||+-----------------------------------------------+          ||
10329|                                                                    |||:diagtext:`variable in` |nbsp| :placeholder:`C`|          ||
10330|                                                                    ||+-----------------------------------------------+          ||
10331|                                                                    |+-----------------------------------------------------------+|
10332|                                                                    ||+---------------------------------------------------------+||
10333|                                                                    |||:diagtext:`static data member of` |nbsp| :placeholder:`C`|||
10334|                                                                    ||+---------------------------------------------------------+||
10335|                                                                    |+-----------------------------------------------------------+|
10336|                                                                    ||+--------------------------------------------+             ||
10337|                                                                    |||:diagtext:`field of` |nbsp| :placeholder:`C`|             ||
10338|                                                                    ||+--------------------------------------------+             ||
10339|                                                                    |+-----------------------------------------------------------+|
10340|                                                                    ||+----------------------------------------------+           ||
10341|                                                                    |||:diagtext:`typedef in` |nbsp| :placeholder:`C`|           ||
10342|                                                                    ||+----------------------------------------------+           ||
10343|                                                                    |+-----------------------------------------------------------+|
10344|                                                                    ||+-------------------------------------------------+        ||
10345|                                                                    |||:diagtext:`type alias in` |nbsp| :placeholder:`C`|        ||
10346|                                                                    ||+-------------------------------------------------+        ||
10347|                                                                    |+-----------------------------------------------------------+|
10348+--------------------------------------------------------------------+-------------------------------------------------------------+
10349
10350
10351-Wshadow-all
10352------------
10353Some of the diagnostics controlled by this flag are enabled by default.
10354
10355Controls `-Wshadow`_, `-Wshadow-field`_, `-Wshadow-field-in-constructor`_, `-Wshadow-uncaptured-local`_.
10356
10357
10358-Wshadow-field
10359--------------
10360**Diagnostic text:**
10361
10362+---------------------------+------------------------------------+--------------------------------+--------------------------------------------------+----------------------------------------------------------------------+
10363|:warning:`warning:` |nbsp| |+----------------------------------+| |nbsp| :placeholder:`A` |nbsp| |+------------------------------------------------+|:diagtext:`shadows member inherited from type` |nbsp| :placeholder:`C`|
10364|                           ||:diagtext:`parameter`             ||                                ||                                                ||                                                                      |
10365|                           |+----------------------------------+|                                |+------------------------------------------------+|                                                                      |
10366|                           ||:diagtext:`non-static data member`||                                ||+----------------------------------------------+||                                                                      |
10367|                           |+----------------------------------+|                                |||:diagtext:`of` |nbsp| :placeholder:`B` |nbsp| |||                                                                      |
10368|                           |                                    |                                ||+----------------------------------------------+||                                                                      |
10369|                           |                                    |                                |+------------------------------------------------+|                                                                      |
10370+---------------------------+------------------------------------+--------------------------------+--------------------------------------------------+----------------------------------------------------------------------+
10371
10372
10373-Wshadow-field-in-constructor
10374-----------------------------
10375Also controls `-Wshadow-field-in-constructor-modified`_.
10376
10377**Diagnostic text:**
10378
10379+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10380|:warning:`warning:` |nbsp| :diagtext:`constructor parameter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`shadows the field` |nbsp| :placeholder:`B` |nbsp| :diagtext:`of` |nbsp| :placeholder:`C`|
10381+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10382
10383
10384-Wshadow-field-in-constructor-modified
10385--------------------------------------
10386**Diagnostic text:**
10387
10388+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
10389|:warning:`warning:` |nbsp| :diagtext:`modifying constructor parameter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`that shadows a field of` |nbsp| :placeholder:`B`|
10390+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
10391
10392
10393-Wshadow-ivar
10394-------------
10395This diagnostic is enabled by default.
10396
10397**Diagnostic text:**
10398
10399+------------------------------------------------------------------------------------------------------------------------------+
10400|:warning:`warning:` |nbsp| :diagtext:`local declaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`hides instance variable`|
10401+------------------------------------------------------------------------------------------------------------------------------+
10402
10403
10404-Wshadow-uncaptured-local
10405-------------------------
10406**Diagnostic text:**
10407
10408+--------------------------------------------------------------------+-------------------------------------------------------------+
10409|:warning:`warning:` |nbsp| :diagtext:`declaration shadows a` |nbsp| |+-----------------------------------------------------------+|
10410|                                                                    ||:diagtext:`local variable`                                 ||
10411|                                                                    |+-----------------------------------------------------------+|
10412|                                                                    ||+-----------------------------------------------+          ||
10413|                                                                    |||:diagtext:`variable in` |nbsp| :placeholder:`C`|          ||
10414|                                                                    ||+-----------------------------------------------+          ||
10415|                                                                    |+-----------------------------------------------------------+|
10416|                                                                    ||+---------------------------------------------------------+||
10417|                                                                    |||:diagtext:`static data member of` |nbsp| :placeholder:`C`|||
10418|                                                                    ||+---------------------------------------------------------+||
10419|                                                                    |+-----------------------------------------------------------+|
10420|                                                                    ||+--------------------------------------------+             ||
10421|                                                                    |||:diagtext:`field of` |nbsp| :placeholder:`C`|             ||
10422|                                                                    ||+--------------------------------------------+             ||
10423|                                                                    |+-----------------------------------------------------------+|
10424|                                                                    ||+----------------------------------------------+           ||
10425|                                                                    |||:diagtext:`typedef in` |nbsp| :placeholder:`C`|           ||
10426|                                                                    ||+----------------------------------------------+           ||
10427|                                                                    |+-----------------------------------------------------------+|
10428|                                                                    ||+-------------------------------------------------+        ||
10429|                                                                    |||:diagtext:`type alias in` |nbsp| :placeholder:`C`|        ||
10430|                                                                    ||+-------------------------------------------------+        ||
10431|                                                                    |+-----------------------------------------------------------+|
10432+--------------------------------------------------------------------+-------------------------------------------------------------+
10433
10434
10435-Wshift-count-negative
10436----------------------
10437This diagnostic is enabled by default.
10438
10439**Diagnostic text:**
10440
10441+--------------------------------------------------------------+
10442|:warning:`warning:` |nbsp| :diagtext:`shift count is negative`|
10443+--------------------------------------------------------------+
10444
10445
10446-Wshift-count-overflow
10447----------------------
10448This diagnostic is enabled by default.
10449
10450**Diagnostic text:**
10451
10452+-------------------------------------------------------------------+
10453|:warning:`warning:` |nbsp| :diagtext:`shift count >= width of type`|
10454+-------------------------------------------------------------------+
10455
10456
10457-Wshift-negative-value
10458----------------------
10459This diagnostic is enabled by default.
10460
10461**Diagnostic text:**
10462
10463+------------------------------------------------------------------------------------+
10464|:warning:`warning:` |nbsp| :diagtext:`shifting a negative signed value is undefined`|
10465+------------------------------------------------------------------------------------+
10466
10467
10468-Wshift-op-parentheses
10469----------------------
10470This diagnostic is enabled by default.
10471
10472**Diagnostic text:**
10473
10474+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10475|:warning:`warning:` |nbsp| :diagtext:`operator '`:placeholder:`A`:diagtext:`' has lower precedence than '`:placeholder:`B`:diagtext:`'; '`:placeholder:`B`:diagtext:`' will be evaluated first`|
10476+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10477
10478
10479-Wshift-overflow
10480----------------
10481This diagnostic is enabled by default.
10482
10483**Diagnostic text:**
10484
10485+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10486|: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`|
10487+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10488
10489
10490-Wshift-sign-overflow
10491---------------------
10492**Diagnostic text:**
10493
10494+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10495|: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`|
10496+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10497
10498
10499-Wshorten-64-to-32
10500------------------
10501**Diagnostic text:**
10502
10503+---------------------------------------------------------------------------------------------------------------------------------------------------------+
10504|:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses integer precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
10505+---------------------------------------------------------------------------------------------------------------------------------------------------------+
10506
10507
10508-Wsign-compare
10509--------------
10510**Diagnostic text:**
10511
10512+--------------------------------------------------------------------------------------------------------------------------------------------------------+
10513|:warning:`warning:` |nbsp| :diagtext:`comparison of integers of different signs:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`|
10514+--------------------------------------------------------------------------------------------------------------------------------------------------------+
10515
10516
10517-Wsign-conversion
10518-----------------
10519**Diagnostic text:**
10520
10521+----------------------------------------------------------------------------------------------------------------------------------------------------+
10522|:warning:`warning:` |nbsp| :diagtext:`implicit conversion changes signedness:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
10523+----------------------------------------------------------------------------------------------------------------------------------------------------+
10524
10525+---------------------------------------------------------------------------------------------------------------------------------------------+
10526|:warning:`warning:` |nbsp| :diagtext:`operand of ? changes signedness:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
10527+---------------------------------------------------------------------------------------------------------------------------------------------+
10528
10529+-----------------------------------------------------------------------------------------------------------+
10530|:warning:`warning:` |nbsp| :diagtext:`the resulting value is always non-negative after implicit conversion`|
10531+-----------------------------------------------------------------------------------------------------------+
10532
10533
10534-Wsign-promo
10535------------
10536This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
10537
10538-Wsigned-enum-bitfield
10539----------------------
10540**Diagnostic text:**
10541
10542+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10543|: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`|
10544+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10545
10546
10547-Wsizeof-array-argument
10548-----------------------
10549This diagnostic is enabled by default.
10550
10551**Diagnostic text:**
10552
10553+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10554|:warning:`warning:` |nbsp| :diagtext:`sizeof on array function parameter will return size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`instead of` |nbsp| :placeholder:`B`|
10555+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10556
10557
10558-Wsizeof-array-decay
10559--------------------
10560This diagnostic is enabled by default.
10561
10562**Diagnostic text:**
10563
10564+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10565|:warning:`warning:` |nbsp| :diagtext:`sizeof on pointer operation will return size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`instead of` |nbsp| :placeholder:`B`|
10566+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10567
10568
10569-Wsizeof-pointer-div
10570--------------------
10571This diagnostic is enabled by default.
10572
10573**Diagnostic text:**
10574
10575+-------------------------------------------------------------------------------------------------------------------------------+
10576|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' will return the size of the pointer, not the array itself`|
10577+-------------------------------------------------------------------------------------------------------------------------------+
10578
10579
10580-Wsizeof-pointer-memaccess
10581--------------------------
10582This diagnostic is enabled by default.
10583
10584**Diagnostic text:**
10585
10586+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10587|: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`|
10588+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10589
10590+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------+
10591|: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`|
10592|                                                                                                                                                                                                 ||:diagtext:`destination`||                                                                                       |
10593|                                                                                                                                                                                                 |+-----------------------+|                                                                                       |
10594|                                                                                                                                                                                                 ||:diagtext:`source`     ||                                                                                       |
10595|                                                                                                                                                                                                 |+-----------------------+|                                                                                       |
10596+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------+
10597
10598
10599-Wslash-u-filename
10600------------------
10601This diagnostic is enabled by default.
10602
10603**Diagnostic text:**
10604
10605+--------------------------------------------------------------------------------------------------+
10606|:warning:`warning:` |nbsp| :diagtext:`'/U`:placeholder:`A`:diagtext:`' treated as the '/U' option`|
10607+--------------------------------------------------------------------------------------------------+
10608
10609
10610-Wsometimes-uninitialized
10611-------------------------
10612**Diagnostic text:**
10613
10614+-----------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
10615|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is` |nbsp| |+--------------------+| |nbsp| :diagtext:`uninitialized whenever` |nbsp| |+------------------------------------------------------------------------------------------------------------+|
10616|                                                                                                     ||:diagtext:`used`    ||                                                  ||+---------------------------------------------------------------+-------------------+                       ||
10617|                                                                                                     |+--------------------+|                                                  |||:diagtext:`'`:placeholder:`D`:diagtext:`' condition is` |nbsp| |+-----------------+|                       ||
10618|                                                                                                     ||:diagtext:`captured`||                                                  |||                                                               ||:diagtext:`true` ||                       ||
10619|                                                                                                     |+--------------------+|                                                  |||                                                               |+-----------------+|                       ||
10620|                                                                                                     |                      |                                                  |||                                                               ||:diagtext:`false`||                       ||
10621|                                                                                                     |                      |                                                  |||                                                               |+-----------------+|                       ||
10622|                                                                                                     |                      |                                                  ||+---------------------------------------------------------------+-------------------+                       ||
10623|                                                                                                     |                      |                                                  |+------------------------------------------------------------------------------------------------------------+|
10624|                                                                                                     |                      |                                                  ||+-------------------------------------------------------+--------------------------------------------------+||
10625|                                                                                                     |                      |                                                  |||:diagtext:`'`:placeholder:`D`:diagtext:`' loop` |nbsp| |+------------------------------------------------+|||
10626|                                                                                                     |                      |                                                  |||                                                       ||:diagtext:`is entered`                          ||||
10627|                                                                                                     |                      |                                                  |||                                                       |+------------------------------------------------+|||
10628|                                                                                                     |                      |                                                  |||                                                       ||:diagtext:`exits because its condition is false`||||
10629|                                                                                                     |                      |                                                  |||                                                       |+------------------------------------------------+|||
10630|                                                                                                     |                      |                                                  ||+-------------------------------------------------------+--------------------------------------------------+||
10631|                                                                                                     |                      |                                                  |+------------------------------------------------------------------------------------------------------------+|
10632|                                                                                                     |                      |                                                  ||+-------------------------------------------------------+--------------------------------------------------+||
10633|                                                                                                     |                      |                                                  |||:diagtext:`'`:placeholder:`D`:diagtext:`' loop` |nbsp| |+------------------------------------------------+|||
10634|                                                                                                     |                      |                                                  |||                                                       ||:diagtext:`condition is true`                   ||||
10635|                                                                                                     |                      |                                                  |||                                                       |+------------------------------------------------+|||
10636|                                                                                                     |                      |                                                  |||                                                       ||:diagtext:`exits because its condition is false`||||
10637|                                                                                                     |                      |                                                  |||                                                       |+------------------------------------------------+|||
10638|                                                                                                     |                      |                                                  ||+-------------------------------------------------------+--------------------------------------------------+||
10639|                                                                                                     |                      |                                                  |+------------------------------------------------------------------------------------------------------------+|
10640|                                                                                                     |                      |                                                  ||+----------------------------------------------------------------------+                                    ||
10641|                                                                                                     |                      |                                                  |||:diagtext:`switch` |nbsp| :placeholder:`D` |nbsp| :diagtext:`is taken`|                                    ||
10642|                                                                                                     |                      |                                                  ||+----------------------------------------------------------------------+                                    ||
10643|                                                                                                     |                      |                                                  |+------------------------------------------------------------------------------------------------------------+|
10644|                                                                                                     |                      |                                                  ||:diagtext:`its declaration is reached`                                                                      ||
10645|                                                                                                     |                      |                                                  |+------------------------------------------------------------------------------------------------------------+|
10646|                                                                                                     |                      |                                                  ||+---------------------------------------------+                                                             ||
10647|                                                                                                     |                      |                                                  |||:placeholder:`D` |nbsp| :diagtext:`is called`|                                                             ||
10648|                                                                                                     |                      |                                                  ||+---------------------------------------------+                                                             ||
10649|                                                                                                     |                      |                                                  |+------------------------------------------------------------------------------------------------------------+|
10650+-----------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
10651
10652
10653-Wsource-uses-openmp
10654--------------------
10655Some of the diagnostics controlled by this flag are enabled by default.
10656
10657**Diagnostic text:**
10658
10659+------------------------------------------------------------------------------------------------------------------------------+
10660|:warning:`warning:` |nbsp| :diagtext:`OpenMP only allows an ordered construct with the simd clause nested in a simd construct`|
10661+------------------------------------------------------------------------------------------------------------------------------+
10662
10663+------------------------------------------------------------------------------+
10664|:warning:`warning:` |nbsp| :diagtext:`unexpected '#pragma omp ...' in program`|
10665+------------------------------------------------------------------------------+
10666
10667
10668-Wspir-compat
10669-------------
10670**Diagnostic text:**
10671
10672+----------------------------------------------------------------------------------------------------------------------+
10673|:warning:`warning:` |nbsp| :diagtext:`sampler initializer has invalid` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bits`|
10674+----------------------------------------------------------------------------------------------------------------------+
10675
10676
10677-Wstack-protector
10678-----------------
10679This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
10680
10681-Wstatic-float-init
10682-------------------
10683This diagnostic is enabled by default.
10684
10685Also controls `-Wgnu-static-float-init`_.
10686
10687**Diagnostic text:**
10688
10689+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
10690|:error:`error:` |nbsp| :diagtext:`in-class initializer for static data member of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires 'constexpr' specifier`|
10691+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
10692
10693
10694-Wstatic-in-inline
10695------------------
10696Some of the diagnostics controlled by this flag are enabled by default.
10697
10698**Diagnostic text:**
10699
10700+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
10701|:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`|
10702|                                                     ||:diagtext:`function`||                                                                                               |
10703|                                                     |+--------------------+|                                                                                               |
10704|                                                     ||:diagtext:`variable`||                                                                                               |
10705|                                                     |+--------------------+|                                                                                               |
10706+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
10707
10708+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
10709|:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`|
10710|                                                     ||:diagtext:`function`||                                                                                               |
10711|                                                     |+--------------------+|                                                                                               |
10712|                                                     ||:diagtext:`variable`||                                                                                               |
10713|                                                     |+--------------------+|                                                                                               |
10714+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
10715
10716
10717-Wstatic-inline-explicit-instantiation
10718--------------------------------------
10719This diagnostic is enabled by default.
10720
10721**Diagnostic text:**
10722
10723+-------------------------------------------------+--------------------+--------------------------------------------------------+
10724|:warning:`warning:` |nbsp| :diagtext:`ignoring '`|+------------------+|:diagtext:`' keyword on explicit template instantiation`|
10725|                                                 ||:diagtext:`static`||                                                        |
10726|                                                 |+------------------+|                                                        |
10727|                                                 ||:diagtext:`inline`||                                                        |
10728|                                                 |+------------------+|                                                        |
10729+-------------------------------------------------+--------------------+--------------------------------------------------------+
10730
10731
10732-Wstatic-local-in-inline
10733------------------------
10734This diagnostic is enabled by default.
10735
10736**Diagnostic text:**
10737
10738+--------------------------------------------------------------------------------------------------------------------------------+
10739|:warning:`warning:` |nbsp| :diagtext:`non-constant static local variable in inline function may be different in different files`|
10740+--------------------------------------------------------------------------------------------------------------------------------+
10741
10742
10743-Wstatic-self-init
10744------------------
10745This diagnostic is enabled by default.
10746
10747**Diagnostic text:**
10748
10749+----------------------------------------------------------------------------------------------------------------------------------------------------+
10750|:warning:`warning:` |nbsp| :diagtext:`static variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is suspiciously used within its own initialization`|
10751+----------------------------------------------------------------------------------------------------------------------------------------------------+
10752
10753
10754-Wstdlibcxx-not-found
10755---------------------
10756This diagnostic is enabled by default.
10757
10758**Diagnostic text:**
10759
10760+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10761|:warning:`warning:` |nbsp| :diagtext:`include path for libstdc++ headers not found; pass '-stdlib=libc++' on the command line to use the libc++ standard library instead`|
10762+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10763
10764
10765-Wstrict-aliasing
10766-----------------
10767This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
10768
10769-Wstrict-aliasing=0
10770-------------------
10771This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
10772
10773-Wstrict-aliasing=1
10774-------------------
10775This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
10776
10777-Wstrict-aliasing=2
10778-------------------
10779This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
10780
10781-Wstrict-overflow
10782-----------------
10783This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
10784
10785-Wstrict-overflow=0
10786-------------------
10787This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
10788
10789-Wstrict-overflow=1
10790-------------------
10791This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
10792
10793-Wstrict-overflow=2
10794-------------------
10795This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
10796
10797-Wstrict-overflow=3
10798-------------------
10799This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
10800
10801-Wstrict-overflow=4
10802-------------------
10803This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
10804
10805-Wstrict-overflow=5
10806-------------------
10807This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
10808
10809-Wstrict-prototypes
10810-------------------
10811**Diagnostic text:**
10812
10813+---------------------------------------------------+--------------------------------------------------------------+-------------------------------+
10814|:warning:`warning:` |nbsp| :diagtext:`this` |nbsp| |+------------------------------------------------------------+| |nbsp| :diagtext:`a prototype`|
10815|                                                   ||:diagtext:`function declaration is not`                     ||                               |
10816|                                                   |+------------------------------------------------------------+|                               |
10817|                                                   ||:diagtext:`block declaration is not`                        ||                               |
10818|                                                   |+------------------------------------------------------------+|                               |
10819|                                                   ||:diagtext:`old-style function definition is not preceded by`||                               |
10820|                                                   |+------------------------------------------------------------+|                               |
10821+---------------------------------------------------+--------------------------------------------------------------+-------------------------------+
10822
10823
10824-Wstrict-prototypes
10825-------------------
10826**Diagnostic text:**
10827
10828+---------------------------------------------------+--------------------------------------------------------------+-------------------------------+
10829|:warning:`warning:` |nbsp| :diagtext:`this` |nbsp| |+------------------------------------------------------------+| |nbsp| :diagtext:`a prototype`|
10830|                                                   ||:diagtext:`function declaration is not`                     ||                               |
10831|                                                   |+------------------------------------------------------------+|                               |
10832|                                                   ||:diagtext:`block declaration is not`                        ||                               |
10833|                                                   |+------------------------------------------------------------+|                               |
10834|                                                   ||:diagtext:`old-style function definition is not preceded by`||                               |
10835|                                                   |+------------------------------------------------------------+|                               |
10836+---------------------------------------------------+--------------------------------------------------------------+-------------------------------+
10837
10838
10839-Wstrict-selector-match
10840-----------------------
10841**Diagnostic text:**
10842
10843+--------------------------------------------------------------------------------------------------------------+
10844|:warning:`warning:` |nbsp| :diagtext:`multiple methods named` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found`|
10845+--------------------------------------------------------------------------------------------------------------+
10846
10847
10848-Wstring-compare
10849----------------
10850This diagnostic is enabled by default.
10851
10852**Diagnostic text:**
10853
10854+---------------------------------------------------------------------------+------------------------------+--------------------------------------------------------+
10855|:warning:`warning:` |nbsp| :diagtext:`result of comparison against` |nbsp| |+----------------------------+| |nbsp| :diagtext:`is unspecified (use strncmp instead)`|
10856|                                                                           ||:diagtext:`a string literal`||                                                        |
10857|                                                                           |+----------------------------+|                                                        |
10858|                                                                           ||:diagtext:`@encode`         ||                                                        |
10859|                                                                           |+----------------------------+|                                                        |
10860+---------------------------------------------------------------------------+------------------------------+--------------------------------------------------------+
10861
10862
10863-Wstring-conversion
10864-------------------
10865**Diagnostic text:**
10866
10867+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
10868|:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns string literal into bool:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
10869+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
10870
10871
10872-Wstring-plus-char
10873------------------
10874This diagnostic is enabled by default.
10875
10876**Diagnostic text:**
10877
10878+------------------------------------------------------------------------------------------------------------------------------------------+
10879|:warning:`warning:` |nbsp| :diagtext:`adding` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to a string pointer does not append to the string`|
10880+------------------------------------------------------------------------------------------------------------------------------------------+
10881
10882
10883-Wstring-plus-int
10884-----------------
10885This diagnostic is enabled by default.
10886
10887**Diagnostic text:**
10888
10889+----------------------------------------------------------------------------------------------------------------------------------+
10890|:warning:`warning:` |nbsp| :diagtext:`adding` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to a string does not append to the string`|
10891+----------------------------------------------------------------------------------------------------------------------------------+
10892
10893
10894-Wstrlcpy-strlcat-size
10895----------------------
10896This diagnostic is enabled by default.
10897
10898**Diagnostic text:**
10899
10900+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10901|: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`|
10902+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10903
10904
10905-Wstrncat-size
10906--------------
10907This diagnostic is enabled by default.
10908
10909**Diagnostic text:**
10910
10911+--------------------------------------------------------------------------------------------------------------------------------+
10912|:warning:`warning:` |nbsp| :diagtext:`the value of the size argument in 'strncat' is too large, might lead to a buffer overflow`|
10913+--------------------------------------------------------------------------------------------------------------------------------+
10914
10915+-------------------------------------------------------------------------------------------------------+
10916|:warning:`warning:` |nbsp| :diagtext:`size argument in 'strncat' call appears to be size of the source`|
10917+-------------------------------------------------------------------------------------------------------+
10918
10919+-------------------------------------------------------------------------------------------+
10920|:warning:`warning:` |nbsp| :diagtext:`the value of the size argument to 'strncat' is wrong`|
10921+-------------------------------------------------------------------------------------------+
10922
10923
10924-Wsuper-class-method-mismatch
10925-----------------------------
10926**Diagnostic text:**
10927
10928+--------------------------------------------------------------------------------------------------------------------------------+
10929|:warning:`warning:` |nbsp| :diagtext:`method parameter type` |nbsp| :diagtext:`does not match super class method parameter type`|
10930+--------------------------------------------------------------------------------------------------------------------------------+
10931
10932
10933-Wsuspicious-bzero
10934------------------
10935This diagnostic is enabled by default.
10936
10937**Diagnostic text:**
10938
10939+----------------------------------------------------------------------+
10940|:warning:`warning:` |nbsp| :diagtext:`'size' argument to bzero is '0'`|
10941+----------------------------------------------------------------------+
10942
10943
10944-Wsuspicious-memaccess
10945----------------------
10946This diagnostic is enabled by default.
10947
10948Controls `-Wdynamic-class-memaccess`_, `-Wmemset-transposed-args`_, `-Wnontrivial-memaccess`_, `-Wsizeof-pointer-memaccess`_, `-Wsuspicious-bzero`_.
10949
10950
10951-Wswitch
10952--------
10953This diagnostic is enabled by default.
10954
10955**Diagnostic text:**
10956
10957+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10958|:warning:`warning:` |nbsp| :diagtext:`overflow converting case value to switch condition type (`:placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`:diagtext:`)`|
10959+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10960
10961+---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10962|:warning:`warning:` |nbsp| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
10963|                           ||+----------------------------------------------------------------------------------------------+                                                                                                ||
10964|                           |||:diagtext:`enumeration value` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not handled in switch`|                                                                                                ||
10965|                           ||+----------------------------------------------------------------------------------------------+                                                                                                ||
10966|                           |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
10967|                           ||+----------------------------------------------------------------------------------------------------------------------------------------------+                                                ||
10968|                           |||:diagtext:`enumeration values` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C` |nbsp| :diagtext:`not handled in switch`|                                                ||
10969|                           ||+----------------------------------------------------------------------------------------------------------------------------------------------+                                                ||
10970|                           |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
10971|                           ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+                 ||
10972|                           |||:diagtext:`enumeration values` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D` |nbsp| :diagtext:`not handled in switch`|                 ||
10973|                           ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+                 ||
10974|                           |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
10975|                           ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
10976|                           |||:placeholder:`A` |nbsp| :diagtext:`enumeration values not handled in switch:` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`...`|||
10977|                           ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
10978|                           |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
10979+---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10980
10981+------------------------------------------------------------------------------------------------+
10982|:warning:`warning:` |nbsp| :diagtext:`case value not in enumerated type` |nbsp| :placeholder:`A`|
10983+------------------------------------------------------------------------------------------------+
10984
10985
10986-Wswitch-bool
10987-------------
10988This diagnostic is enabled by default.
10989
10990**Diagnostic text:**
10991
10992+-------------------------------------------------------------------------+
10993|:warning:`warning:` |nbsp| :diagtext:`switch condition has boolean value`|
10994+-------------------------------------------------------------------------+
10995
10996
10997-Wswitch-default
10998----------------
10999This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
11000
11001-Wswitch-enum
11002-------------
11003**Diagnostic text:**
11004
11005+---------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11006|:warning:`warning:` |nbsp| |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
11007|                           ||+---------------------------------------------------------------------------------------------------------+                                                                                                ||
11008|                           |||:diagtext:`enumeration value` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not explicitly handled in switch`|                                                                                                ||
11009|                           ||+---------------------------------------------------------------------------------------------------------+                                                                                                ||
11010|                           |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
11011|                           ||+---------------------------------------------------------------------------------------------------------------------------------------------------------+                                                ||
11012|                           |||:diagtext:`enumeration values` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C` |nbsp| :diagtext:`not explicitly handled in switch`|                                                ||
11013|                           ||+---------------------------------------------------------------------------------------------------------------------------------------------------------+                                                ||
11014|                           |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
11015|                           ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+                 ||
11016|                           |||:diagtext:`enumeration values` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D` |nbsp| :diagtext:`not explicitly handled in switch`|                 ||
11017|                           ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+                 ||
11018|                           |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
11019|                           ||+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
11020|                           |||:placeholder:`A` |nbsp| :diagtext:`enumeration values not explicitly handled in switch:` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`...`|||
11021|                           ||+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
11022|                           |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
11023+---------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11024
11025
11026-Wsync-fetch-and-nand-semantics-changed
11027---------------------------------------
11028This diagnostic is enabled by default.
11029
11030**Diagnostic text:**
11031
11032+-------------------------------------------------------------------------------------------------------------------------------------------+
11033|:warning:`warning:` |nbsp| :diagtext:`the semantics of this intrinsic changed with GCC version 4.4 - the newer semantics are provided here`|
11034+-------------------------------------------------------------------------------------------------------------------------------------------+
11035
11036
11037-Wsynth
11038-------
11039This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
11040
11041-Wtautological-compare
11042----------------------
11043Some of the diagnostics controlled by this flag are enabled by default.
11044
11045Also controls `-Wtautological-constant-compare`_, `-Wtautological-objc-bool-compare`_, `-Wtautological-overlap-compare`_, `-Wtautological-pointer-compare`_, `-Wtautological-undefined-compare`_.
11046
11047**Diagnostic text:**
11048
11049+---------------------------+---------------------------+--------------------------------------------------+------------------------+
11050|:warning:`warning:` |nbsp| |+-------------------------+|:diagtext:`comparison always evaluates to` |nbsp| |+----------------------+|
11051|                           ||:diagtext:`self-`        ||                                                  ||:diagtext:`a constant`||
11052|                           |+-------------------------+|                                                  |+----------------------+|
11053|                           ||:diagtext:`array` |nbsp| ||                                                  ||:placeholder:`C`      ||
11054|                           |+-------------------------+|                                                  |+----------------------+|
11055+---------------------------+---------------------------+--------------------------------------------------+------------------------+
11056
11057+-------------------------------------------------------------------------------------+-------------------+
11058|:warning:`warning:` |nbsp| :diagtext:`bitwise comparison always evaluates to` |nbsp| |+-----------------+|
11059|                                                                                     ||:diagtext:`false`||
11060|                                                                                     |+-----------------+|
11061|                                                                                     ||:diagtext:`true` ||
11062|                                                                                     |+-----------------+|
11063+-------------------------------------------------------------------------------------+-------------------+
11064
11065
11066-Wtautological-constant-compare
11067-------------------------------
11068This diagnostic is enabled by default.
11069
11070Also controls `-Wtautological-constant-out-of-range-compare`_.
11071
11072**Diagnostic text:**
11073
11074+----------------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-----------------------------------------------------+
11075|:warning:`warning:` |nbsp| :diagtext:`result of comparison of` |nbsp| |+----------------------------------------------+| |nbsp| :diagtext:`with` |nbsp| |+--------------------------------------------------------+| |nbsp| :diagtext:`is always` |nbsp| :placeholder:`E`|
11076|                                                                      ||+--------------------------------------------+||                                ||+------------------------------------------------------+||                                                     |
11077|                                                                      |||:diagtext:`constant` |nbsp| :placeholder:`A`|||                                |||:diagtext:`expression of type` |nbsp| :placeholder:`C`|||                                                     |
11078|                                                                      ||+--------------------------------------------+||                                ||+------------------------------------------------------+||                                                     |
11079|                                                                      |+----------------------------------------------+|                                |+--------------------------------------------------------+|                                                     |
11080|                                                                      ||:diagtext:`true`                              ||                                ||:diagtext:`boolean expression`                          ||                                                     |
11081|                                                                      |+----------------------------------------------+|                                |+--------------------------------------------------------+|                                                     |
11082|                                                                      ||:diagtext:`false`                             ||                                |                                                          |                                                     |
11083|                                                                      |+----------------------------------------------+|                                |                                                          |                                                     |
11084+----------------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-----------------------------------------------------+
11085
11086
11087-Wtautological-constant-in-range-compare
11088----------------------------------------
11089Controls `-Wtautological-type-limit-compare`_, `-Wtautological-unsigned-enum-zero-compare`_, `-Wtautological-unsigned-zero-compare`_.
11090
11091
11092-Wtautological-constant-out-of-range-compare
11093--------------------------------------------
11094This diagnostic is enabled by default.
11095
11096**Diagnostic text:**
11097
11098+----------------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-----------------------------------------------------+
11099|:warning:`warning:` |nbsp| :diagtext:`result of comparison of` |nbsp| |+----------------------------------------------+| |nbsp| :diagtext:`with` |nbsp| |+--------------------------------------------------------+| |nbsp| :diagtext:`is always` |nbsp| :placeholder:`E`|
11100|                                                                      ||+--------------------------------------------+||                                ||+------------------------------------------------------+||                                                     |
11101|                                                                      |||:diagtext:`constant` |nbsp| :placeholder:`A`|||                                |||:diagtext:`expression of type` |nbsp| :placeholder:`C`|||                                                     |
11102|                                                                      ||+--------------------------------------------+||                                ||+------------------------------------------------------+||                                                     |
11103|                                                                      |+----------------------------------------------+|                                |+--------------------------------------------------------+|                                                     |
11104|                                                                      ||:diagtext:`true`                              ||                                ||:diagtext:`boolean expression`                          ||                                                     |
11105|                                                                      |+----------------------------------------------+|                                |+--------------------------------------------------------+|                                                     |
11106|                                                                      ||:diagtext:`false`                             ||                                |                                                          |                                                     |
11107|                                                                      |+----------------------------------------------+|                                |                                                          |                                                     |
11108+----------------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-----------------------------------------------------+
11109
11110
11111-Wtautological-objc-bool-compare
11112--------------------------------
11113This diagnostic is enabled by default.
11114
11115**Diagnostic text:**
11116
11117+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11118|:warning:`warning:` |nbsp| :diagtext:`result of comparison of constant` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with expression of type BOOL is always` |nbsp| :placeholder:`B`:diagtext:`, as the only well defined values for BOOL are YES and NO`|
11119+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11120
11121
11122-Wtautological-overlap-compare
11123------------------------------
11124**Diagnostic text:**
11125
11126+-----------------------------------------------------------------------------------------+-------------------+
11127|:warning:`warning:` |nbsp| :diagtext:`overlapping comparisons always evaluate to` |nbsp| |+-----------------+|
11128|                                                                                         ||:diagtext:`false`||
11129|                                                                                         |+-----------------+|
11130|                                                                                         ||:diagtext:`true` ||
11131|                                                                                         |+-----------------+|
11132+-----------------------------------------------------------------------------------------+-------------------+
11133
11134
11135-Wtautological-pointer-compare
11136------------------------------
11137This diagnostic is enabled by default.
11138
11139**Diagnostic text:**
11140
11141+--------------------------------------------------------------------+---------------------------+----------------------------------------------------------+-------------------------+----------------------------------------+-------------------+--------------------------------+
11142|: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`|
11143|                                                                    ||:diagtext:`function call`||                                                          ||:diagtext:`not` |nbsp| ||                                        ||:diagtext:`true` ||                                |
11144|                                                                    |+-------------------------+|                                                          |+-----------------------+|                                        |+-----------------+|                                |
11145|                                                                    ||:diagtext:`parameter`    ||                                                          ||                       ||                                        ||:diagtext:`false`||                                |
11146|                                                                    |+-------------------------+|                                                          |+-----------------------+|                                        |+-----------------+|                                |
11147+--------------------------------------------------------------------+---------------------------+----------------------------------------------------------+-------------------------+----------------------------------------+-------------------+--------------------------------+
11148
11149+------------------------------------------------------------+------------------------+----------------------------------------------------------+-------------------------+-----------------------------------------------------+-------------------+
11150|:warning:`warning:` |nbsp| :diagtext:`comparison of` |nbsp| |+----------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`'` |nbsp| |+-----------------------+|:diagtext:`equal to a null pointer is always` |nbsp| |+-----------------+|
11151|                                                            ||:diagtext:`address of`||                                                          ||:diagtext:`not` |nbsp| ||                                                     ||:diagtext:`true` ||
11152|                                                            |+----------------------+|                                                          |+-----------------------+|                                                     |+-----------------+|
11153|                                                            ||:diagtext:`function`  ||                                                          ||                       ||                                                     ||:diagtext:`false`||
11154|                                                            |+----------------------+|                                                          |+-----------------------+|                                                     |+-----------------+|
11155|                                                            ||:diagtext:`array`     ||                                                          |                         |                                                     |                   |
11156|                                                            |+----------------------+|                                                          |                         |                                                     |                   |
11157+------------------------------------------------------------+------------------------+----------------------------------------------------------+-------------------------+-----------------------------------------------------+-------------------+
11158
11159
11160-Wtautological-type-limit-compare
11161---------------------------------
11162**Diagnostic text:**
11163
11164+-------------------------------------------------------------------+------------------+--------------------------------+------------------+-----------------------------------------------------+
11165|:warning:`warning:` |nbsp| :diagtext:`result of comparison` |nbsp| |+----------------+| |nbsp| :placeholder:`C` |nbsp| |+----------------+| |nbsp| :diagtext:`is always` |nbsp| :placeholder:`E`|
11166|                                                                   ||:placeholder:`D`||                                ||:placeholder:`B`||                                                     |
11167|                                                                   |+----------------+|                                |+----------------+|                                                     |
11168|                                                                   ||:placeholder:`B`||                                ||:placeholder:`D`||                                                     |
11169|                                                                   |+----------------+|                                |+----------------+|                                                     |
11170+-------------------------------------------------------------------+------------------+--------------------------------+------------------+-----------------------------------------------------+
11171
11172
11173-Wtautological-undefined-compare
11174--------------------------------
11175This diagnostic is enabled by default.
11176
11177**Diagnostic text:**
11178
11179+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
11180|: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| |+-----------------+|
11181|                                                                                                                                                                               ||:diagtext:`true` ||
11182|                                                                                                                                                                               |+-----------------+|
11183|                                                                                                                                                                               ||:diagtext:`false`||
11184|                                                                                                                                                                               |+-----------------+|
11185+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
11186
11187+------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
11188|:warning:`warning:` |nbsp| :diagtext:`'this' pointer cannot be null in well-defined C++ code; comparison may be assumed to always evaluate to` |nbsp| |+-----------------+|
11189|                                                                                                                                                      ||:diagtext:`true` ||
11190|                                                                                                                                                      |+-----------------+|
11191|                                                                                                                                                      ||:diagtext:`false`||
11192|                                                                                                                                                      |+-----------------+|
11193+------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
11194
11195
11196-Wtautological-unsigned-enum-zero-compare
11197-----------------------------------------
11198**Diagnostic text:**
11199
11200+----------------------------------------------------------------------+--------------------------------------+--------------------------------+--------------------------------------+-----------------------------------------------------+
11201|:warning:`warning:` |nbsp| :diagtext:`result of comparison of` |nbsp| |+------------------------------------+| |nbsp| :placeholder:`C` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`is always` |nbsp| :placeholder:`E`|
11202|                                                                      ||:placeholder:`D`                    ||                                ||:diagtext:`unsigned enum expression`||                                                     |
11203|                                                                      |+------------------------------------+|                                |+------------------------------------+|                                                     |
11204|                                                                      ||:diagtext:`unsigned enum expression`||                                ||:placeholder:`D`                    ||                                                     |
11205|                                                                      |+------------------------------------+|                                |+------------------------------------+|                                                     |
11206+----------------------------------------------------------------------+--------------------------------------+--------------------------------+--------------------------------------+-----------------------------------------------------+
11207
11208
11209-Wtautological-unsigned-zero-compare
11210------------------------------------
11211**Diagnostic text:**
11212
11213+----------------------------------------------------------------------+---------------------------------+--------------------------------+---------------------------------+-----------------------------------------------------+
11214|:warning:`warning:` |nbsp| :diagtext:`result of comparison of` |nbsp| |+-------------------------------+| |nbsp| :placeholder:`C` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`is always` |nbsp| :placeholder:`E`|
11215|                                                                      ||:placeholder:`D`               ||                                ||:diagtext:`unsigned expression`||                                                     |
11216|                                                                      |+-------------------------------+|                                |+-------------------------------+|                                                     |
11217|                                                                      ||:diagtext:`unsigned expression`||                                ||:placeholder:`D`               ||                                                     |
11218|                                                                      |+-------------------------------+|                                |+-------------------------------+|                                                     |
11219+----------------------------------------------------------------------+---------------------------------+--------------------------------+---------------------------------+-----------------------------------------------------+
11220
11221
11222-Wtentative-definition-incomplete-type
11223--------------------------------------
11224This diagnostic is enabled by default.
11225
11226**Diagnostic text:**
11227
11228+---------------------------------------------------------------------------------------------------------------------------------------------------+
11229|:warning:`warning:` |nbsp| :diagtext:`tentative definition of variable with internal linkage has incomplete non-array type` |nbsp| :placeholder:`A`|
11230+---------------------------------------------------------------------------------------------------------------------------------------------------+
11231
11232
11233-Wthread-safety
11234---------------
11235Controls `-Wthread-safety-analysis`_, `-Wthread-safety-attributes`_, `-Wthread-safety-precise`_, `-Wthread-safety-reference`_.
11236
11237
11238-Wthread-safety-analysis
11239------------------------
11240**Diagnostic text:**
11241
11242+----------------------------------------------------------------------------------------------------------------------------------------------------+
11243|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' must be acquired before '`:placeholder:`C`:diagtext:`'`|
11244+----------------------------------------------------------------------------------------------------------------------------------------------------+
11245
11246+---------------------------------------------------------------------------------------------------------------------------------+
11247|:warning:`warning:` |nbsp| :diagtext:`Cycle in acquired\_before/after dependencies, starting with '`:placeholder:`A`:diagtext:`'`|
11248+---------------------------------------------------------------------------------------------------------------------------------+
11249
11250+---------------------------------------------------------------------+
11251|:warning:`warning:` |nbsp| :diagtext:`cannot resolve lock expression`|
11252+---------------------------------------------------------------------+
11253
11254+-----------------------------------------------------------------------------------------------------------------------------------------------+
11255|:warning:`warning:` |nbsp| :diagtext:`acquiring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' that is already held`|
11256+-----------------------------------------------------------------------------------------------------------------------------------------------+
11257
11258+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
11259|:warning:`warning:` |nbsp| :diagtext:`expecting` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' to be held at start of each loop`|
11260+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
11261
11262+------------------------------------------------------------------------------------------------------------------------------------------------------------+
11263|:warning:`warning:` |nbsp| :diagtext:`expecting` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' to be held at the end of function`|
11264+------------------------------------------------------------------------------------------------------------------------------------------------------------+
11265
11266+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11267|:warning:`warning:` |nbsp| :diagtext:`cannot call function '`:placeholder:`B`:diagtext:`' while` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`C`:diagtext:`' is held`|
11268+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11269
11270+---------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
11271|:warning:`warning:` |nbsp| :diagtext:`calling function` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
11272|                                                                                                                                                   ||+------------------------------------------+            ||
11273|                                                                                                                                                   |||:diagtext:`'`:placeholder:`C`:diagtext:`'`|            ||
11274|                                                                                                                                                   ||+------------------------------------------+            ||
11275|                                                                                                                                                   |+--------------------------------------------------------+|
11276|                                                                                                                                                   ||+------------------------------------------------------+||
11277|                                                                                                                                                   |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
11278|                                                                                                                                                   ||+------------------------------------------------------+||
11279|                                                                                                                                                   |+--------------------------------------------------------+|
11280+---------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
11281
11282+--------------------------------------------------------------------------------------------------------------------------------------------------+
11283|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is acquired exclusively and shared in the same scope`|
11284+--------------------------------------------------------------------------------------------------------------------------------------------------+
11285
11286+------------------------------------------------------------------------------------------------------------------------------------+
11287|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is not held on every path through here`|
11288+------------------------------------------------------------------------------------------------------------------------------------+
11289
11290+----------------------------------------------------------------------------------------------------------------------------------+
11291|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is still held at the end of function`|
11292+----------------------------------------------------------------------------------------------------------------------------------+
11293
11294+--------------------------------------------------------------------------------------------------------------------------------------------+
11295|:warning:`warning:` |nbsp| :diagtext:`releasing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' that was not held`|
11296+--------------------------------------------------------------------------------------------------------------------------------------------+
11297
11298+----------------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+-----------------------+--------------------------+
11299|:warning:`warning:` |nbsp| :diagtext:`releasing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' using` |nbsp| |+---------------------+| |nbsp| :diagtext:`access, expected` |nbsp| |+---------------------+| |nbsp| :diagtext:`access`|
11300|                                                                                                                                        ||:diagtext:`shared`   ||                                            ||:diagtext:`shared`   ||                          |
11301|                                                                                                                                        |+---------------------+|                                            |+---------------------+|                          |
11302|                                                                                                                                        ||:diagtext:`exclusive`||                                            ||:diagtext:`exclusive`||                          |
11303|                                                                                                                                        |+---------------------+|                                            |+---------------------+|                          |
11304+----------------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+-----------------------+--------------------------+
11305
11306+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------+-----------------------------------+
11307|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires holding` |nbsp| |+---------------------------------+|
11308|                           ||:diagtext:`reading`||                                                                                                               ||:diagtext:`any mutex`            ||
11309|                           |+-------------------+|                                                                                                               |+---------------------------------+|
11310|                           ||:diagtext:`writing`||                                                                                                               ||:diagtext:`any mutex exclusively`||
11311|                           |+-------------------+|                                                                                                               |+---------------------------------+|
11312+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------+-----------------------------------+
11313
11314+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
11315|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
11316|                           ||:diagtext:`reading`||                                                                                                                                       ||+------------------------------------------+            ||
11317|                           |+-------------------+|                                                                                                                                       |||:diagtext:`'`:placeholder:`C`:diagtext:`'`|            ||
11318|                           ||:diagtext:`writing`||                                                                                                                                       ||+------------------------------------------+            ||
11319|                           |+-------------------+|                                                                                                                                       |+--------------------------------------------------------+|
11320|                           |                     |                                                                                                                                       ||+------------------------------------------------------+||
11321|                           |                     |                                                                                                                                       |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
11322|                           |                     |                                                                                                                                       ||+------------------------------------------------------+||
11323|                           |                     |                                                                                                                                       |+--------------------------------------------------------+|
11324+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
11325
11326+---------------------------+---------------------+------------------------------------------------------------------------------------------------+-----------------------------------+
11327|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires holding` |nbsp| |+---------------------------------+|
11328|                           ||:diagtext:`reading`||                                                                                                ||:diagtext:`any mutex`            ||
11329|                           |+-------------------+|                                                                                                |+---------------------------------+|
11330|                           ||:diagtext:`writing`||                                                                                                ||:diagtext:`any mutex exclusively`||
11331|                           |+-------------------+|                                                                                                |+---------------------------------+|
11332+---------------------------+---------------------+------------------------------------------------------------------------------------------------+-----------------------------------+
11333
11334+---------------------------+---------------------+------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
11335|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
11336|                           ||:diagtext:`reading`||                                                                                                                        ||+------------------------------------------+            ||
11337|                           |+-------------------+|                                                                                                                        |||:diagtext:`'`:placeholder:`C`:diagtext:`'`|            ||
11338|                           ||:diagtext:`writing`||                                                                                                                        ||+------------------------------------------+            ||
11339|                           |+-------------------+|                                                                                                                        |+--------------------------------------------------------+|
11340|                           |                     |                                                                                                                        ||+------------------------------------------------------+||
11341|                           |                     |                                                                                                                        |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
11342|                           |                     |                                                                                                                        ||+------------------------------------------------------+||
11343|                           |                     |                                                                                                                        |+--------------------------------------------------------+|
11344+---------------------------+---------------------+------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
11345
11346
11347-Wthread-safety-attributes
11348--------------------------
11349**Diagnostic text:**
11350
11351+----------------------------------------------------------------------------------------------------------------------------------------+
11352|:warning:`warning:` |nbsp| :diagtext:`invalid capability name '`:placeholder:`A`:diagtext:`'; capability name must be 'mutex' or 'role'`|
11353+----------------------------------------------------------------------------------------------------------------------------------------+
11354
11355+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11356|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute requires arguments whose type is annotated with 'capability' attribute; type here is` |nbsp| :placeholder:`B`|
11357+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11358
11359+--------------------------------------------------------------------------------------------------------------------------------------------------------+
11360|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute can only be applied in a context annotated with 'capability("mutex")' attribute`|
11361+--------------------------------------------------------------------------------------------------------------------------------------------------------+
11362
11363+----------------------------------------------------------------------------------------------------------------------------------+
11364|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`only applies to pointer types; type here is` |nbsp| :placeholder:`B`|
11365+----------------------------------------------------------------------------------------------------------------------------------+
11366
11367+------------------------------------------------------------------------------------------------------------------------------------+
11368|:warning:`warning:` |nbsp| :diagtext:`ignoring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute because its argument is invalid`|
11369+------------------------------------------------------------------------------------------------------------------------------------+
11370
11371+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11372|: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`|
11373+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11374
11375+----------------------------------------------------------------------------------------------------------------------------------------------------------+
11376|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute without capability arguments can only be applied to non-static methods of a class`|
11377+----------------------------------------------------------------------------------------------------------------------------------------------------------+
11378
11379
11380-Wthread-safety-beta
11381--------------------
11382**Diagnostic text:**
11383
11384+------------------------------------------------------------------+
11385|:warning:`warning:` |nbsp| :diagtext:`Thread safety beta warning.`|
11386+------------------------------------------------------------------+
11387
11388
11389-Wthread-safety-negative
11390------------------------
11391**Diagnostic text:**
11392
11393+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11394|:warning:`warning:` |nbsp| :diagtext:`acquiring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' requires negative capability '`:placeholder:`C`:diagtext:`'`|
11395+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11396
11397
11398-Wthread-safety-precise
11399-----------------------
11400**Diagnostic text:**
11401
11402+---------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
11403|:warning:`warning:` |nbsp| :diagtext:`calling function` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
11404|                                                                                                                                                   ||+------------------------------------------+            ||
11405|                                                                                                                                                   |||:diagtext:`'`:placeholder:`C`:diagtext:`'`|            ||
11406|                                                                                                                                                   ||+------------------------------------------+            ||
11407|                                                                                                                                                   |+--------------------------------------------------------+|
11408|                                                                                                                                                   ||+------------------------------------------------------+||
11409|                                                                                                                                                   |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
11410|                                                                                                                                                   ||+------------------------------------------------------+||
11411|                                                                                                                                                   |+--------------------------------------------------------+|
11412+---------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
11413
11414+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
11415|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
11416|                           ||:diagtext:`reading`||                                                                                                                                       ||+------------------------------------------+            ||
11417|                           |+-------------------+|                                                                                                                                       |||:diagtext:`'`:placeholder:`C`:diagtext:`'`|            ||
11418|                           ||:diagtext:`writing`||                                                                                                                                       ||+------------------------------------------+            ||
11419|                           |+-------------------+|                                                                                                                                       |+--------------------------------------------------------+|
11420|                           |                     |                                                                                                                                       ||+------------------------------------------------------+||
11421|                           |                     |                                                                                                                                       |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
11422|                           |                     |                                                                                                                                       ||+------------------------------------------------------+||
11423|                           |                     |                                                                                                                                       |+--------------------------------------------------------+|
11424+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
11425
11426+---------------------------+---------------------+------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
11427|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
11428|                           ||:diagtext:`reading`||                                                                                                                        ||+------------------------------------------+            ||
11429|                           |+-------------------+|                                                                                                                        |||:diagtext:`'`:placeholder:`C`:diagtext:`'`|            ||
11430|                           ||:diagtext:`writing`||                                                                                                                        ||+------------------------------------------+            ||
11431|                           |+-------------------+|                                                                                                                        |+--------------------------------------------------------+|
11432|                           |                     |                                                                                                                        ||+------------------------------------------------------+||
11433|                           |                     |                                                                                                                        |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
11434|                           |                     |                                                                                                                        ||+------------------------------------------------------+||
11435|                           |                     |                                                                                                                        |+--------------------------------------------------------+|
11436+---------------------------+---------------------+------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
11437
11438
11439-Wthread-safety-reference
11440-------------------------
11441**Diagnostic text:**
11442
11443+----------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
11444|:warning:`warning:` |nbsp| :diagtext:`passing variable` |nbsp| :placeholder:`B` |nbsp| :diagtext:`by reference requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
11445|                                                                                                                                                                ||+------------------------------------------+            ||
11446|                                                                                                                                                                |||:diagtext:`'`:placeholder:`C`:diagtext:`'`|            ||
11447|                                                                                                                                                                ||+------------------------------------------+            ||
11448|                                                                                                                                                                |+--------------------------------------------------------+|
11449|                                                                                                                                                                ||+------------------------------------------------------+||
11450|                                                                                                                                                                |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
11451|                                                                                                                                                                ||+------------------------------------------------------+||
11452|                                                                                                                                                                |+--------------------------------------------------------+|
11453+----------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
11454
11455+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
11456|:warning:`warning:` |nbsp| :diagtext:`passing the value that` |nbsp| :placeholder:`B` |nbsp| :diagtext:`points to by reference requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
11457|                                                                                                                                                                                ||+------------------------------------------+            ||
11458|                                                                                                                                                                                |||:diagtext:`'`:placeholder:`C`:diagtext:`'`|            ||
11459|                                                                                                                                                                                ||+------------------------------------------+            ||
11460|                                                                                                                                                                                |+--------------------------------------------------------+|
11461|                                                                                                                                                                                ||+------------------------------------------------------+||
11462|                                                                                                                                                                                |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
11463|                                                                                                                                                                                ||+------------------------------------------------------+||
11464|                                                                                                                                                                                |+--------------------------------------------------------+|
11465+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
11466
11467
11468-Wthread-safety-verbose
11469-----------------------
11470**Diagnostic text:**
11471
11472+---------------------------------------------------------------------+
11473|:warning:`warning:` |nbsp| :diagtext:`Thread safety verbose warning.`|
11474+---------------------------------------------------------------------+
11475
11476
11477-Wtrigraphs
11478-----------
11479This diagnostic is enabled by default.
11480
11481**Diagnostic text:**
11482
11483+-----------------------------------------------------------------------------------------------------+
11484|:warning:`warning:` |nbsp| :diagtext:`trigraph converted to '`:placeholder:`A`:diagtext:`' character`|
11485+-----------------------------------------------------------------------------------------------------+
11486
11487+------------------------------------------------------------------+
11488|:warning:`warning:` |nbsp| :diagtext:`trigraph ends block comment`|
11489+------------------------------------------------------------------+
11490
11491+-------------------------------------------------------+
11492|:warning:`warning:` |nbsp| :diagtext:`trigraph ignored`|
11493+-------------------------------------------------------+
11494
11495+-------------------------------------------------------------------------------+
11496|:warning:`warning:` |nbsp| :diagtext:`ignored trigraph would end block comment`|
11497+-------------------------------------------------------------------------------+
11498
11499
11500-Wtype-limits
11501-------------
11502Synonym for `-Wtautological-constant-in-range-compare`_.
11503
11504
11505-Wtype-limits
11506-------------
11507Synonym for `-Wtautological-constant-in-range-compare`_.
11508
11509
11510-Wtype-safety
11511-------------
11512This diagnostic is enabled by default.
11513
11514**Diagnostic text:**
11515
11516+----------------------------------------------------------------------------------------------------------------------------+
11517|:warning:`warning:` |nbsp| :diagtext:`specified` |nbsp| :placeholder:`A` |nbsp| :diagtext:`type tag requires a null pointer`|
11518+----------------------------------------------------------------------------------------------------------------------------+
11519
11520+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------+
11521|:warning:`warning:` |nbsp| :diagtext:`argument type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`doesn't match specified` |nbsp| :placeholder:`B` |nbsp| :diagtext:`type tag` |nbsp| |+---------------------------------------------------+|
11522|                                                                                                                                                                                   ||+-------------------------------------------------+||
11523|                                                                                                                                                                                   |||:diagtext:`that requires` |nbsp| :placeholder:`D`|||
11524|                                                                                                                                                                                   ||+-------------------------------------------------+||
11525|                                                                                                                                                                                   |+---------------------------------------------------+|
11526|                                                                                                                                                                                   ||                                                   ||
11527|                                                                                                                                                                                   |+---------------------------------------------------+|
11528+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------+
11529
11530+---------------------------------------------------------------------------------------------------+
11531|:warning:`warning:` |nbsp| :diagtext:`this type tag was not designed to be used with this function`|
11532+---------------------------------------------------------------------------------------------------+
11533
11534
11535-Wtypedef-redefinition
11536----------------------
11537This diagnostic is enabled by default.
11538
11539**Diagnostic text:**
11540
11541+--------------------------------------------------------------------------------------------------------------------------+
11542|:warning:`warning:` |nbsp| :diagtext:`redefinition of typedef` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C11 feature`|
11543+--------------------------------------------------------------------------------------------------------------------------+
11544
11545
11546-Wtypename-missing
11547------------------
11548This diagnostic is enabled by default.
11549
11550**Diagnostic text:**
11551
11552+-------------------------------------------------------------------------------------------------------------------------------------+
11553|:warning:`warning:` |nbsp| :diagtext:`missing 'typename' prior to dependent type name '`:placeholder:`A`:placeholder:`B`:diagtext:`'`|
11554+-------------------------------------------------------------------------------------------------------------------------------------+
11555
11556
11557-Wunable-to-open-stats-file
11558---------------------------
11559This diagnostic is enabled by default.
11560
11561**Diagnostic text:**
11562
11563+-------------------------------------------------------------------------------------------------------------------------------------------+
11564|:warning:`warning:` |nbsp| :diagtext:`unable to open statistics output file '`:placeholder:`A`:diagtext:`': '`:placeholder:`B`:diagtext:`'`|
11565+-------------------------------------------------------------------------------------------------------------------------------------------+
11566
11567
11568-Wunavailable-declarations
11569--------------------------
11570This diagnostic is enabled by default.
11571
11572**Diagnostic text:**
11573
11574+----------------------------------------------------------------------------------------------------------------------+
11575|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be unavailable because the receiver type is unknown`|
11576+----------------------------------------------------------------------------------------------------------------------+
11577
11578
11579-Wundeclared-selector
11580---------------------
11581**Diagnostic text:**
11582
11583+----------------------------------------------------------------------------------+
11584|:warning:`warning:` |nbsp| :diagtext:`undeclared selector` |nbsp| :placeholder:`A`|
11585+----------------------------------------------------------------------------------+
11586
11587+-------------------------------------------------------------------------------------------------------------------------------------------------+
11588|:warning:`warning:` |nbsp| :diagtext:`undeclared selector` |nbsp| :placeholder:`A`:diagtext:`; did you mean` |nbsp| :placeholder:`B`:diagtext:`?`|
11589+-------------------------------------------------------------------------------------------------------------------------------------------------+
11590
11591
11592-Wundef
11593-------
11594**Diagnostic text:**
11595
11596+---------------------------------------------------------------------------------------------+
11597|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not defined, evaluates to 0`|
11598+---------------------------------------------------------------------------------------------+
11599
11600
11601-Wundefined-bool-conversion
11602---------------------------
11603This diagnostic is enabled by default.
11604
11605**Diagnostic text:**
11606
11607+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11608|: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`|
11609+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11610
11611+-----------------------------------------------------------------------------------------------------------------------------------------------+
11612|:warning:`warning:` |nbsp| :diagtext:`'this' pointer cannot be null in well-defined C++ code; pointer may be assumed to always convert to true`|
11613+-----------------------------------------------------------------------------------------------------------------------------------------------+
11614
11615
11616-Wundefined-func-template
11617-------------------------
11618**Diagnostic text:**
11619
11620+---------------------------------------------------------------------------------------------------------------------------------------------------------+
11621|:warning:`warning:` |nbsp| :diagtext:`instantiation of function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`required here, but no definition is available`|
11622+---------------------------------------------------------------------------------------------------------------------------------------------------------+
11623
11624
11625-Wundefined-inline
11626------------------
11627This diagnostic is enabled by default.
11628
11629**Diagnostic text:**
11630
11631+----------------------------------------------------------------------------------------------------------------+
11632|:warning:`warning:` |nbsp| :diagtext:`inline function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not defined`|
11633+----------------------------------------------------------------------------------------------------------------+
11634
11635
11636-Wundefined-internal
11637--------------------
11638This diagnostic is enabled by default.
11639
11640**Diagnostic text:**
11641
11642+---------------------------+----------------------+-----------------------------------------------------------------------------------+
11643|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`has internal linkage but is not defined`|
11644|                           ||:diagtext:`function`||                                                                                   |
11645|                           |+--------------------+|                                                                                   |
11646|                           ||:diagtext:`variable`||                                                                                   |
11647|                           |+--------------------+|                                                                                   |
11648+---------------------------+----------------------+-----------------------------------------------------------------------------------+
11649
11650
11651-Wundefined-internal-type
11652-------------------------
11653**Diagnostic text:**
11654
11655+---------------------------------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------------------+
11656|: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`|
11657|                                                                                                         ||:diagtext:`function`||                                                                                  |
11658|                                                                                                         |+--------------------+|                                                                                  |
11659|                                                                                                         ||:diagtext:`variable`||                                                                                  |
11660|                                                                                                         |+--------------------+|                                                                                  |
11661+---------------------------------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------------------+
11662
11663
11664-Wundefined-reinterpret-cast
11665----------------------------
11666**Diagnostic text:**
11667
11668+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11669|: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`|
11670+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11671
11672+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11673|:warning:`warning:` |nbsp| :diagtext:`reinterpret\_cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has undefined behavior`|
11674+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11675
11676
11677-Wundefined-var-template
11678------------------------
11679This diagnostic is enabled by default.
11680
11681**Diagnostic text:**
11682
11683+---------------------------------------------------------------------------------------------------------------------------------------------------------+
11684|:warning:`warning:` |nbsp| :diagtext:`instantiation of variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`required here, but no definition is available`|
11685+---------------------------------------------------------------------------------------------------------------------------------------------------------+
11686
11687
11688-Wunderaligned-exception-object
11689-------------------------------
11690This diagnostic is enabled by default.
11691
11692**Diagnostic text:**
11693
11694+---------------------------------------------------------------------------+
11695|:warning:`warning:` |nbsp| :diagtext:`underaligned exception object thrown`|
11696+---------------------------------------------------------------------------+
11697
11698
11699-Wunevaluated-expression
11700------------------------
11701This diagnostic is enabled by default.
11702
11703Also controls `-Wpotentially-evaluated-expression`_.
11704
11705**Diagnostic text:**
11706
11707+-----------------------------------------------------------------------------------------------------------+
11708|:warning:`warning:` |nbsp| :diagtext:`expression with side effects has no effect in an unevaluated context`|
11709+-----------------------------------------------------------------------------------------------------------+
11710
11711
11712-Wunguarded-availability
11713------------------------
11714Some of the diagnostics controlled by this flag are enabled by default.
11715
11716Also controls `-Wunguarded-availability-new`_.
11717
11718**Diagnostic text:**
11719
11720+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
11721|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is only available on` |nbsp| :placeholder:`B` |nbsp| :placeholder:`C` |nbsp| :diagtext:`or newer`|
11722+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
11723
11724
11725-Wunguarded-availability-new
11726----------------------------
11727This diagnostic is enabled by default.
11728
11729**Diagnostic text:**
11730
11731+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
11732|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is only available on` |nbsp| :placeholder:`B` |nbsp| :placeholder:`C` |nbsp| :diagtext:`or newer`|
11733+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
11734
11735
11736-Wunicode
11737---------
11738This diagnostic is enabled by default.
11739
11740**Diagnostic text:**
11741
11742+-------------------------------------------------------------------------------------------------------------------+
11743|:warning:`warning:` |nbsp| :diagtext:`incomplete universal character name; treating as '\\' followed by identifier`|
11744+-------------------------------------------------------------------------------------------------------------------+
11745
11746+-------------------------------------------------------------------------------------------------------------------------------------------------------+
11747|:warning:`warning:` |nbsp| :diagtext:`\\`:placeholder:`A` |nbsp| :diagtext:`used with no following hex digits; treating as '\\' followed by identifier`|
11748+-------------------------------------------------------------------------------------------------------------------------------------------------------+
11749
11750+-----------------------------------------------------------------------------------------------+
11751|:warning:`warning:` |nbsp| :diagtext:`universal character name refers to a surrogate character`|
11752+-----------------------------------------------------------------------------------------------+
11753
11754+--------------------------------------------------------------------------------------------------------------------------------------+
11755|:warning:`warning:` |nbsp| :diagtext:`universal character names are only valid in C99 or C++; treating as '\\' followed by identifier`|
11756+--------------------------------------------------------------------------------------------------------------------------------------+
11757
11758+---------------------------------------------------------------------------------------------+
11759|:warning:`warning:` |nbsp| :diagtext:`universal character names are only valid in C99 or C++`|
11760+---------------------------------------------------------------------------------------------+
11761
11762
11763-Wunicode-homoglyph
11764-------------------
11765This diagnostic is enabled by default.
11766
11767**Diagnostic text:**
11768
11769+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11770|:warning:`warning:` |nbsp| :diagtext:`treating Unicode character <U+`:placeholder:`A`:diagtext:`> as identifier character rather than as '`:placeholder:`B`:diagtext:`' symbol`|
11771+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11772
11773
11774-Wunicode-whitespace
11775--------------------
11776This diagnostic is enabled by default.
11777
11778**Diagnostic text:**
11779
11780+-------------------------------------------------------------------------------+
11781|:warning:`warning:` |nbsp| :diagtext:`treating Unicode character as whitespace`|
11782+-------------------------------------------------------------------------------+
11783
11784
11785-Wunicode-zero-width
11786--------------------
11787This diagnostic is enabled by default.
11788
11789**Diagnostic text:**
11790
11791+----------------------------------------------------------------------------------------------------------------------------------------------------+
11792|:warning:`warning:` |nbsp| :diagtext:`identifier contains Unicode character <U+`:placeholder:`A`:diagtext:`> that is invisible in some environments`|
11793+----------------------------------------------------------------------------------------------------------------------------------------------------+
11794
11795
11796-Wuninitialized
11797---------------
11798Some of the diagnostics controlled by this flag are enabled by default.
11799
11800Also controls `-Wsometimes-uninitialized`_, `-Wstatic-self-init`_.
11801
11802**Diagnostic text:**
11803
11804+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
11805|:warning:`warning:` |nbsp| :diagtext:`base class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when used here to access` |nbsp| :placeholder:`B`|
11806+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
11807
11808+-----------------------------------------------------------------------------------------------------------------------+
11809|:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when used here`|
11810+-----------------------------------------------------------------------------------------------------------------------+
11811
11812+--------------------------------------------------------------------------------------------------------------------------------------+
11813|:warning:`warning:` |nbsp| :diagtext:`reference` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not yet bound to a value when used here`|
11814+--------------------------------------------------------------------------------------------------------------------------------------+
11815
11816+-------------------------------------------------------------------------------------------------------------------+---------------------------+------------------------------------------+
11817|:warning:`warning:` |nbsp| :diagtext:`block pointer variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is` |nbsp| |+-------------------------+| |nbsp| :diagtext:`when captured by block`|
11818|                                                                                                                   ||:diagtext:`uninitialized`||                                          |
11819|                                                                                                                   |+-------------------------+|                                          |
11820|                                                                                                                   ||:diagtext:`null`         ||                                          |
11821|                                                                                                                   |+-------------------------+|                                          |
11822+-------------------------------------------------------------------------------------------------------------------+---------------------------+------------------------------------------+
11823
11824+---------------------------------------------------------------------------------------------------------------------------------------------------+
11825|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when used within its own initialization`|
11826+---------------------------------------------------------------------------------------------------------------------------------------------------+
11827
11828+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
11829|:warning:`warning:` |nbsp| :diagtext:`reference` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not yet bound to a value when used within its own initialization`|
11830+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
11831
11832+------------------------------------------------------------------------------------------------------------------------+-------------------------------+
11833|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when` |nbsp| |+-----------------------------+|
11834|                                                                                                                        ||:diagtext:`used here`        ||
11835|                                                                                                                        |+-----------------------------+|
11836|                                                                                                                        ||:diagtext:`captured by block`||
11837|                                                                                                                        |+-----------------------------+|
11838+------------------------------------------------------------------------------------------------------------------------+-------------------------------+
11839
11840
11841-Wunknown-argument
11842------------------
11843This diagnostic is enabled by default.
11844
11845**Diagnostic text:**
11846
11847+-----------------------------------------------------------------------------------------------------------+
11848|:warning:`warning:` |nbsp| :diagtext:`unknown argument ignored in clang-cl: '`:placeholder:`A`:diagtext:`'`|
11849+-----------------------------------------------------------------------------------------------------------+
11850
11851+--------------------------------------------------------------------------------------------------------------------------------------------------------+
11852|:warning:`warning:` |nbsp| :diagtext:`unknown argument ignored in clang-cl '`:placeholder:`A`:diagtext:`'; did you mean '`:placeholder:`B`:diagtext:`'?`|
11853+--------------------------------------------------------------------------------------------------------------------------------------------------------+
11854
11855
11856-Wunknown-attributes
11857--------------------
11858This diagnostic is enabled by default.
11859
11860**Diagnostic text:**
11861
11862+-----------------------------------------------------------------------------------------------------------+
11863|:warning:`warning:` |nbsp| :diagtext:`unknown attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored`|
11864+-----------------------------------------------------------------------------------------------------------+
11865
11866
11867-Wunknown-escape-sequence
11868-------------------------
11869This diagnostic is enabled by default.
11870
11871**Diagnostic text:**
11872
11873+-----------------------------------------------------------------------------------------------+
11874|:warning:`warning:` |nbsp| :diagtext:`unknown escape sequence '\\`:placeholder:`A`:diagtext:`'`|
11875+-----------------------------------------------------------------------------------------------+
11876
11877
11878-Wunknown-pragmas
11879-----------------
11880Some of the diagnostics controlled by this flag are enabled by default.
11881
11882**Diagnostic text:**
11883
11884+------------------------------------------------------------------------------------+
11885|:warning:`warning:` |nbsp| :diagtext:`expected 'ON' or 'OFF' or 'DEFAULT' in pragma`|
11886+------------------------------------------------------------------------------------+
11887
11888+--------------------------------------------------------------------------+
11889|:warning:`warning:` |nbsp| :diagtext:`expected end of directive in pragma`|
11890+--------------------------------------------------------------------------+
11891
11892+-----------------------------------------------------------------------+
11893|:warning:`warning:` |nbsp| :diagtext:`unknown pragma in STDC namespace`|
11894+-----------------------------------------------------------------------+
11895
11896+--------------------------------------------------------------------------------------------+
11897|:warning:`warning:` |nbsp| :diagtext:`pragma diagnostic pop could not pop, no matching push`|
11898+--------------------------------------------------------------------------------------------+
11899
11900+--------------------------------------------------------------------------------------------------------------------------+
11901|:warning:`warning:` |nbsp| :diagtext:`pragma diagnostic expected 'error', 'warning', 'ignored', 'fatal', 'push', or 'pop'`|
11902+--------------------------------------------------------------------------------------------------------------------------+
11903
11904+----------------------------------------------------------------------------------------------+
11905|:warning:`warning:` |nbsp| :diagtext:`pragma diagnostic expected option name (e.g. "-Wundef")`|
11906+----------------------------------------------------------------------------------------------+
11907
11908+----------------------------------------------------------------------------+
11909|:warning:`warning:` |nbsp| :diagtext:`unexpected token in pragma diagnostic`|
11910+----------------------------------------------------------------------------+
11911
11912+----------------------------------------------------------------------------------------------------------------+
11913|:warning:`warning:` |nbsp| :diagtext:`#pragma execution\_character\_set expected '`:placeholder:`A`:diagtext:`'`|
11914+----------------------------------------------------------------------------------------------------------------+
11915
11916+------------------------------------------------------------------------------------------------------------------------------------------------+
11917|:warning:`warning:` |nbsp| :diagtext:`#pragma execution\_character\_set invalid value '`:placeholder:`A`:diagtext:`', only 'UTF-8' is supported`|
11918+------------------------------------------------------------------------------------------------------------------------------------------------+
11919
11920+-------------------------------------------------------------------------------------------------+
11921|:warning:`warning:` |nbsp| :diagtext:`#pragma execution\_character\_set expected 'push' or 'pop'`|
11922+-------------------------------------------------------------------------------------------------+
11923
11924+-------------------------------------------------------------+
11925|:warning:`warning:` |nbsp| :diagtext:`unknown pragma ignored`|
11926+-------------------------------------------------------------+
11927
11928+----------------------------------------------------------------------------------------------------+
11929|:warning:`warning:` |nbsp| :diagtext:`pragma include\_alias expected '`:placeholder:`A`:diagtext:`'`|
11930+----------------------------------------------------------------------------------------------------+
11931
11932+--------------------------------------------------------------------------------------+
11933|:warning:`warning:` |nbsp| :diagtext:`pragma include\_alias expected include filename`|
11934+--------------------------------------------------------------------------------------+
11935
11936+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11937|:warning:`warning:` |nbsp| :diagtext:`angle-bracketed include <`:placeholder:`A`:diagtext:`> cannot be aliased to double-quoted include "`:placeholder:`B`:diagtext:`"`|
11938+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11939
11940+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11941|:warning:`warning:` |nbsp| :diagtext:`double-quoted include "`:placeholder:`A`:diagtext:`" cannot be aliased to angle-bracketed include <`:placeholder:`B`:diagtext:`>`|
11942+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11943
11944+----------------------------------------------------------------------------------------------+
11945|:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected '`:placeholder:`A`:diagtext:`'`|
11946+----------------------------------------------------------------------------------------------+
11947
11948+--------------------------------------------------------------------------------+
11949|:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected a warning number`|
11950+--------------------------------------------------------------------------------+
11951
11952+----------------------------------------------------------------------------------------------------+
11953|:warning:`warning:` |nbsp| :diagtext:`#pragma warning(push, level) requires a level between 0 and 4`|
11954+----------------------------------------------------------------------------------------------------+
11955
11956+-----------------------------------------------------------------------------------------------------------------------------------------------+
11957|:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected 'push', 'pop', 'default', 'disable', 'error', 'once', 'suppress', 1, 2, 3, or 4`|
11958+-----------------------------------------------------------------------------------------------------------------------------------------------+
11959
11960+----------------------------------------------------------------------------------------------------+
11961|:warning:`warning:` |nbsp| :diagtext:`pragma STDC FENV\_ACCESS ON is not supported, ignoring pragma`|
11962+----------------------------------------------------------------------------------------------------+
11963
11964
11965-Wunknown-sanitizers
11966--------------------
11967This diagnostic is enabled by default.
11968
11969**Diagnostic text:**
11970
11971+-----------------------------------------------------------------------------------------------+
11972|:warning:`warning:` |nbsp| :diagtext:`unknown sanitizer '`:placeholder:`A`:diagtext:`' ignored`|
11973+-----------------------------------------------------------------------------------------------+
11974
11975
11976-Wunknown-warning-option
11977------------------------
11978This diagnostic is enabled by default.
11979
11980**Diagnostic text:**
11981
11982+----------------------------------------------------------------------------------------------------+
11983|:warning:`warning:` |nbsp| :diagtext:`unknown warning group '`:placeholder:`A`:diagtext:`', ignored`|
11984+----------------------------------------------------------------------------------------------------+
11985
11986+------------------------------------------------------+---------------------+---------------------------------------------------------+--------------------------------------------------------------+
11987|:warning:`warning:` |nbsp| :diagtext:`unknown` |nbsp| |+-------------------+| |nbsp| :diagtext:`option '`:placeholder:`B`:diagtext:`'`|+------------------------------------------------------------+|
11988|                                                      ||:diagtext:`warning`||                                                         ||                                                            ||
11989|                                                      |+-------------------+|                                                         |+------------------------------------------------------------+|
11990|                                                      ||:diagtext:`remark` ||                                                         ||+----------------------------------------------------------+||
11991|                                                      |+-------------------+|                                                         |||:diagtext:`; did you mean '`:placeholder:`D`:diagtext:`'?`|||
11992|                                                      |                     |                                                         ||+----------------------------------------------------------+||
11993|                                                      |                     |                                                         |+------------------------------------------------------------+|
11994+------------------------------------------------------+---------------------+---------------------------------------------------------+--------------------------------------------------------------+
11995
11996+-------------------------------------------------------------------------------------------------------------------------------------------+
11997|:warning:`warning:` |nbsp| :diagtext:`unknown` |nbsp| :placeholder:`A` |nbsp| :diagtext:`warning specifier: '`:placeholder:`B`:diagtext:`'`|
11998+-------------------------------------------------------------------------------------------------------------------------------------------+
11999
12000
12001-Wunnamed-type-template-args
12002----------------------------
12003Some of the diagnostics controlled by this flag are enabled by default.
12004
12005Also controls `-Wc++98-compat-unnamed-type-template-args`_.
12006
12007**Diagnostic text:**
12008
12009+--------------------------------------------------------------------------+
12010|:warning:`warning:` |nbsp| :diagtext:`template argument uses unnamed type`|
12011+--------------------------------------------------------------------------+
12012
12013
12014-Wunneeded-internal-declaration
12015-------------------------------
12016**Diagnostic text:**
12017
12018+---------------------------+----------------------+---------------------------------------------------------------------------------+
12019|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is not needed and will not be emitted`|
12020|                           ||:diagtext:`function`||                                                                                 |
12021|                           |+--------------------+|                                                                                 |
12022|                           ||:diagtext:`variable`||                                                                                 |
12023|                           |+--------------------+|                                                                                 |
12024+---------------------------+----------------------+---------------------------------------------------------------------------------+
12025
12026+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
12027|:warning:`warning:` |nbsp| :diagtext:`'static' function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared in header file should be declared 'static inline'`|
12028+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
12029
12030
12031-Wunneeded-member-function
12032--------------------------
12033**Diagnostic text:**
12034
12035+---------------------------------------------------------------------------------------------------------------------------------------+
12036|:warning:`warning:` |nbsp| :diagtext:`member function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not needed and will not be emitted`|
12037+---------------------------------------------------------------------------------------------------------------------------------------+
12038
12039
12040-Wunreachable-code
12041------------------
12042Also controls `-Wunreachable-code-loop-increment`_.
12043
12044**Diagnostic text:**
12045
12046+------------------------------------------------------------------+
12047|:warning:`warning:` |nbsp| :diagtext:`code will never be executed`|
12048+------------------------------------------------------------------+
12049
12050
12051-Wunreachable-code-aggressive
12052-----------------------------
12053Controls `-Wunreachable-code`_, `-Wunreachable-code-break`_, `-Wunreachable-code-return`_.
12054
12055
12056-Wunreachable-code-break
12057------------------------
12058**Diagnostic text:**
12059
12060+---------------------------------------------------------------------+
12061|:warning:`warning:` |nbsp| :diagtext:`'break' will never be executed`|
12062+---------------------------------------------------------------------+
12063
12064
12065-Wunreachable-code-loop-increment
12066---------------------------------
12067**Diagnostic text:**
12068
12069+-------------------------------------------------------------------------------------------------+
12070|:warning:`warning:` |nbsp| :diagtext:`loop will run at most once (loop increment never executed)`|
12071+-------------------------------------------------------------------------------------------------+
12072
12073
12074-Wunreachable-code-return
12075-------------------------
12076**Diagnostic text:**
12077
12078+----------------------------------------------------------------------+
12079|:warning:`warning:` |nbsp| :diagtext:`'return' will never be executed`|
12080+----------------------------------------------------------------------+
12081
12082
12083-Wunsequenced
12084-------------
12085This diagnostic is enabled by default.
12086
12087**Diagnostic text:**
12088
12089+----------------------------------------------------------------------------------------------------+
12090|:warning:`warning:` |nbsp| :diagtext:`multiple unsequenced modifications to` |nbsp| :placeholder:`A`|
12091+----------------------------------------------------------------------------------------------------+
12092
12093+-----------------------------------------------------------------------------------------------------+
12094|:warning:`warning:` |nbsp| :diagtext:`unsequenced modification and access to` |nbsp| :placeholder:`A`|
12095+-----------------------------------------------------------------------------------------------------+
12096
12097
12098-Wunsupported-abs
12099-----------------
12100This diagnostic is enabled by default.
12101
12102**Diagnostic text:**
12103
12104+-----------------------------------------------------------------------------------------------------------------------------------------------+
12105|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mabs=2008' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
12106+-----------------------------------------------------------------------------------------------------------------------------------------------+
12107
12108+-------------------------------------------------------------------------------------------------------------------------------------------------+
12109|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mabs=legacy' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
12110+-------------------------------------------------------------------------------------------------------------------------------------------------+
12111
12112
12113-Wunsupported-availability-guard
12114--------------------------------
12115This diagnostic is enabled by default.
12116
12117**Diagnostic text:**
12118
12119+---------------------------+------------------------------------+--------------------------------------------------------------+------------------------------------+---------------------+
12120|:warning:`warning:` |nbsp| |+----------------------------------+| |nbsp| :diagtext:`does not guard availability here; use if (`|+----------------------------------+|:diagtext:`) instead`|
12121|                           ||:diagtext:`@available`            ||                                                              ||:diagtext:`@available`            ||                     |
12122|                           |+----------------------------------+|                                                              |+----------------------------------+|                     |
12123|                           ||:diagtext:`\_\_builtin\_available`||                                                              ||:diagtext:`\_\_builtin\_available`||                     |
12124|                           |+----------------------------------+|                                                              |+----------------------------------+|                     |
12125+---------------------------+------------------------------------+--------------------------------------------------------------+------------------------------------+---------------------+
12126
12127
12128-Wunsupported-cb
12129----------------
12130This diagnostic is enabled by default.
12131
12132**Diagnostic text:**
12133
12134+--------------------------------------------------------------------------------------------------------------------------------------------------------+
12135|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mcompact-branches=' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
12136+--------------------------------------------------------------------------------------------------------------------------------------------------------+
12137
12138
12139-Wunsupported-dll-base-class-template
12140-------------------------------------
12141**Diagnostic text:**
12142
12143+---------------------------------------------------------------------------+------------------------------------+------------------------------------------------------------------------------+
12144|:warning:`warning:` |nbsp| :diagtext:`propagating dll attribute to` |nbsp| |+----------------------------------+| |nbsp| :diagtext:`base class template without dll attribute is not supported`|
12145|                                                                           ||:diagtext:`already instantiated`  ||                                                                              |
12146|                                                                           |+----------------------------------+|                                                                              |
12147|                                                                           ||:diagtext:`explicitly specialized`||                                                                              |
12148|                                                                           |+----------------------------------+|                                                                              |
12149+---------------------------------------------------------------------------+------------------------------------+------------------------------------------------------------------------------+
12150
12151
12152-Wunsupported-friend
12153--------------------
12154This diagnostic is enabled by default.
12155
12156**Diagnostic text:**
12157
12158+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12159|:warning:`warning:` |nbsp| :diagtext:`dependent nested name specifier '`:placeholder:`A`:diagtext:`' for friend template declaration is not supported; ignoring this friend declaration`|
12160+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12161
12162+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12163|: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`|
12164+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12165
12166
12167-Wunsupported-gpopt
12168-------------------
12169This diagnostic is enabled by default.
12170
12171**Diagnostic text:**
12172
12173+--------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+
12174|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mgpopt' option as it cannot be used with` |nbsp| |+-----------------------------------------+|:diagtext:`-mabicalls`|
12175|                                                                                                  ||                                         ||                      |
12176|                                                                                                  |+-----------------------------------------+|                      |
12177|                                                                                                  ||:diagtext:`the implicit usage of` |nbsp| ||                      |
12178|                                                                                                  |+-----------------------------------------+|                      |
12179+--------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+
12180
12181
12182-Wunsupported-nan
12183-----------------
12184This diagnostic is enabled by default.
12185
12186**Diagnostic text:**
12187
12188+-----------------------------------------------------------------------------------------------------------------------------------------------+
12189|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mnan=2008' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
12190+-----------------------------------------------------------------------------------------------------------------------------------------------+
12191
12192+-------------------------------------------------------------------------------------------------------------------------------------------------+
12193|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mnan=legacy' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
12194+-------------------------------------------------------------------------------------------------------------------------------------------------+
12195
12196
12197-Wunsupported-target-opt
12198------------------------
12199This diagnostic is enabled by default.
12200
12201**Diagnostic text:**
12202
12203+---------------------------------------------------------------------------------------------------------------------------------------------------------+
12204|:warning:`warning:` |nbsp| :diagtext:`debug information option '`:placeholder:`A`:diagtext:`' is not supported for target '`:placeholder:`B`:diagtext:`'`|
12205+---------------------------------------------------------------------------------------------------------------------------------------------------------+
12206
12207
12208-Wunsupported-visibility
12209------------------------
12210This diagnostic is enabled by default.
12211
12212**Diagnostic text:**
12213
12214+------------------------------------------------------------------------------------------------------+
12215|:warning:`warning:` |nbsp| :diagtext:`target does not support 'protected' visibility; using 'default'`|
12216+------------------------------------------------------------------------------------------------------+
12217
12218
12219-Wunusable-partial-specialization
12220---------------------------------
12221This diagnostic is an error by default, but the flag ``-Wno-unusable-partial-specialization`` can be used to disable the error.
12222
12223**Diagnostic text:**
12224
12225+-----------------------+----------------------+--------------------------------------------------------------------+----------------------------------+------------------------------------------------------------------------------------------+
12226|:error:`error:` |nbsp| |+--------------------+| |nbsp| :diagtext:`template partial specialization contains` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`that cannot be deduced; this partial specialization will never be used`|
12227|                       ||:diagtext:`class`   ||                                                                    ||:diagtext:`a template parameter`||                                                                                          |
12228|                       |+--------------------+|                                                                    |+--------------------------------+|                                                                                          |
12229|                       ||:diagtext:`variable`||                                                                    ||:diagtext:`template parameters` ||                                                                                          |
12230|                       |+--------------------+|                                                                    |+--------------------------------+|                                                                                          |
12231+-----------------------+----------------------+--------------------------------------------------------------------+----------------------------------+------------------------------------------------------------------------------------------+
12232
12233
12234-Wunused
12235--------
12236Some of the diagnostics controlled by this flag are enabled by default.
12237
12238Controls `-Wunused-argument`_, `-Wunused-function`_, `-Wunused-label`_, `-Wunused-lambda-capture`_, `-Wunused-local-typedef`_, `-Wunused-private-field`_, `-Wunused-property-ivar`_, `-Wunused-value`_, `-Wunused-variable`_.
12239
12240
12241-Wunused-argument
12242-----------------
12243This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
12244
12245-Wunused-command-line-argument
12246------------------------------
12247This diagnostic is enabled by default.
12248
12249**Diagnostic text:**
12250
12251+-------------------------------------------------------------------------------------------------------------------------------+
12252|:warning:`warning:` |nbsp| :diagtext:`argument '`:placeholder:`A`:diagtext:`' requires profile-guided optimization information`|
12253+-------------------------------------------------------------------------------------------------------------------------------+
12254
12255+---------------------------------------------------------------------------------------------------------------+
12256|:warning:`warning:` |nbsp| :diagtext:`joined argument expects additional value: '`:placeholder:`A`:diagtext:`'`|
12257+---------------------------------------------------------------------------------------------------------------+
12258
12259+----------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+
12260|:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: '`:placeholder:`B`:diagtext:`' input unused`|+--------------------------------------------------------------------+|
12261|                                                                                                    ||+------------------------------------------------------------------+||
12262|                                                                                                    ||| |nbsp| :diagtext:`when '`:placeholder:`D`:diagtext:`' is present`|||
12263|                                                                                                    ||+------------------------------------------------------------------+||
12264|                                                                                                    |+--------------------------------------------------------------------+|
12265|                                                                                                    ||                                                                    ||
12266|                                                                                                    |+--------------------------------------------------------------------+|
12267+----------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+
12268
12269+----------------------------------------------------------------------------------------------------------------+
12270|:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: '`:placeholder:`B`:diagtext:`' input unused in cpp mode`|
12271+----------------------------------------------------------------------------------------------------------------+
12272
12273+--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------+
12274|:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: previously preprocessed input`|+---------------------------------------------------------------------------+|
12275|                                                                                      ||+-------------------------------------------------------------------------+||
12276|                                                                                      ||| |nbsp| :diagtext:`unused when '`:placeholder:`C`:diagtext:`' is present`|||
12277|                                                                                      ||+-------------------------------------------------------------------------+||
12278|                                                                                      |+---------------------------------------------------------------------------+|
12279|                                                                                      ||                                                                           ||
12280|                                                                                      |+---------------------------------------------------------------------------+|
12281+--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------+
12282
12283+---------------------------------------------------------------------------------------------------------+
12284|:warning:`warning:` |nbsp| :diagtext:`argument unused during compilation: '`:placeholder:`A`:diagtext:`'`|
12285+---------------------------------------------------------------------------------------------------------+
12286
12287+----------------------------------------------------------------------------------------------------------------------+
12288|:warning:`warning:` |nbsp| :diagtext:`the flag '`:placeholder:`A`:diagtext:`' has been deprecated and will be ignored`|
12289+----------------------------------------------------------------------------------------------------------------------+
12290
12291
12292-Wunused-comparison
12293-------------------
12294This diagnostic is enabled by default.
12295
12296**Diagnostic text:**
12297
12298+---------------------------+------------------------+--------------------------------------------+
12299|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`comparison result unused`|
12300|                           ||:diagtext:`equality`  ||                                            |
12301|                           |+----------------------+|                                            |
12302|                           ||:diagtext:`inequality`||                                            |
12303|                           |+----------------------+|                                            |
12304|                           ||:diagtext:`relational`||                                            |
12305|                           |+----------------------+|                                            |
12306|                           ||:diagtext:`three-way` ||                                            |
12307|                           |+----------------------+|                                            |
12308+---------------------------+------------------------+--------------------------------------------+
12309
12310
12311-Wunused-const-variable
12312-----------------------
12313**Diagnostic text:**
12314
12315+------------------------------------------------------------------------------+
12316|:warning:`warning:` |nbsp| :diagtext:`unused variable` |nbsp| :placeholder:`A`|
12317+------------------------------------------------------------------------------+
12318
12319
12320-Wunused-exception-parameter
12321----------------------------
12322**Diagnostic text:**
12323
12324+-----------------------------------------------------------------------------------------+
12325|:warning:`warning:` |nbsp| :diagtext:`unused exception parameter` |nbsp| :placeholder:`A`|
12326+-----------------------------------------------------------------------------------------+
12327
12328
12329-Wunused-function
12330-----------------
12331Also controls `-Wunneeded-internal-declaration`_.
12332
12333**Diagnostic text:**
12334
12335+------------------------------------------------------------------------------+
12336|:warning:`warning:` |nbsp| :diagtext:`unused function` |nbsp| :placeholder:`A`|
12337+------------------------------------------------------------------------------+
12338
12339
12340-Wunused-getter-return-value
12341----------------------------
12342This diagnostic is enabled by default.
12343
12344**Diagnostic text:**
12345
12346+------------------------------------------------------------------------------------------------------------------+
12347|:warning:`warning:` |nbsp| :diagtext:`property access result unused - getters should not be used for side effects`|
12348+------------------------------------------------------------------------------------------------------------------+
12349
12350
12351-Wunused-label
12352--------------
12353**Diagnostic text:**
12354
12355+---------------------------------------------------------------------------+
12356|:warning:`warning:` |nbsp| :diagtext:`unused label` |nbsp| :placeholder:`A`|
12357+---------------------------------------------------------------------------+
12358
12359
12360-Wunused-lambda-capture
12361-----------------------
12362**Diagnostic text:**
12363
12364+---------------------------------------------------------------------------------------------------------------+--------------------------------------------------+
12365|:warning:`warning:` |nbsp| :diagtext:`lambda capture` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not` |nbsp| |+------------------------------------------------+|
12366|                                                                                                               ||:diagtext:`used`                                ||
12367|                                                                                                               |+------------------------------------------------+|
12368|                                                                                                               ||:diagtext:`required to be captured for this use`||
12369|                                                                                                               |+------------------------------------------------+|
12370+---------------------------------------------------------------------------------------------------------------+--------------------------------------------------+
12371
12372
12373-Wunused-local-typedef
12374----------------------
12375**Diagnostic text:**
12376
12377+-----------------------------------------------------+------------------------+------------------------+
12378|:warning:`warning:` |nbsp| :diagtext:`unused` |nbsp| |+----------------------+| |nbsp| :placeholder:`B`|
12379|                                                     ||:diagtext:`typedef`   ||                        |
12380|                                                     |+----------------------+|                        |
12381|                                                     ||:diagtext:`type alias`||                        |
12382|                                                     |+----------------------+|                        |
12383+-----------------------------------------------------+------------------------+------------------------+
12384
12385
12386-Wunused-local-typedefs
12387-----------------------
12388Synonym for `-Wunused-local-typedef`_.
12389
12390
12391-Wunused-macros
12392---------------
12393**Diagnostic text:**
12394
12395+--------------------------------------------------------+
12396|:warning:`warning:` |nbsp| :diagtext:`macro is not used`|
12397+--------------------------------------------------------+
12398
12399
12400-Wunused-member-function
12401------------------------
12402Also controls `-Wunneeded-member-function`_.
12403
12404**Diagnostic text:**
12405
12406+-------------------------------------------------------------------------------------+
12407|:warning:`warning:` |nbsp| :diagtext:`unused member function` |nbsp| :placeholder:`A`|
12408+-------------------------------------------------------------------------------------+
12409
12410
12411-Wunused-parameter
12412------------------
12413**Diagnostic text:**
12414
12415+-------------------------------------------------------------------------------+
12416|:warning:`warning:` |nbsp| :diagtext:`unused parameter` |nbsp| :placeholder:`A`|
12417+-------------------------------------------------------------------------------+
12418
12419
12420-Wunused-private-field
12421----------------------
12422**Diagnostic text:**
12423
12424+-----------------------------------------------------------------------------------------------------------+
12425|:warning:`warning:` |nbsp| :diagtext:`private field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not used`|
12426+-----------------------------------------------------------------------------------------------------------+
12427
12428
12429-Wunused-property-ivar
12430----------------------
12431**Diagnostic text:**
12432
12433+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
12434|:warning:`warning:` |nbsp| :diagtext:`ivar` |nbsp| :placeholder:`A` |nbsp| :diagtext:`which backs the property is not referenced in this property's accessor`|
12435+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
12436
12437
12438-Wunused-result
12439---------------
12440This diagnostic is enabled by default.
12441
12442**Diagnostic text:**
12443
12444+-------------------------------------------------------------------------------------------------------------------------------------------+
12445|:warning:`warning:` |nbsp| :diagtext:`ignoring return value of function declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute`|
12446+-------------------------------------------------------------------------------------------------------------------------------------------+
12447
12448
12449-Wunused-template
12450-----------------
12451Also controls `-Wunneeded-internal-declaration`_.
12452
12453**Diagnostic text:**
12454
12455+-----------------------------------------------------+----------------------+----------------------------------------------------+
12456|:warning:`warning:` |nbsp| :diagtext:`unused` |nbsp| |+--------------------+| |nbsp| :diagtext:`template` |nbsp| :placeholder:`B`|
12457|                                                     ||:diagtext:`function`||                                                    |
12458|                                                     |+--------------------+|                                                    |
12459|                                                     ||:diagtext:`variable`||                                                    |
12460|                                                     |+--------------------+|                                                    |
12461+-----------------------------------------------------+----------------------+----------------------------------------------------+
12462
12463
12464-Wunused-value
12465--------------
12466This diagnostic is enabled by default.
12467
12468Also controls `-Wunevaluated-expression`_, `-Wunused-comparison`_, `-Wunused-result`_.
12469
12470**Diagnostic text:**
12471
12472+-------------------------------------------------------------------------------------------------------------------------------------------+
12473|:warning:`warning:` |nbsp| :diagtext:`ignoring return value of function declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute`|
12474+-------------------------------------------------------------------------------------------------------------------------------------------+
12475
12476+----------------------------------------------------------------------------------------------------------------------------+
12477|:warning:`warning:` |nbsp| :diagtext:`container access result unused - container access should not be used for side effects`|
12478+----------------------------------------------------------------------------------------------------------------------------+
12479
12480+---------------------------------------------------------------+
12481|:warning:`warning:` |nbsp| :diagtext:`expression result unused`|
12482+---------------------------------------------------------------+
12483
12484+-----------------------------------------------------------------------------------------------+
12485|:warning:`warning:` |nbsp| :diagtext:`expression result unused; should this cast be to 'void'?`|
12486+-----------------------------------------------------------------------------------------------+
12487
12488
12489-Wunused-variable
12490-----------------
12491Also controls `-Wunused-const-variable`_.
12492
12493**Diagnostic text:**
12494
12495+------------------------------------------------------------------------------+
12496|:warning:`warning:` |nbsp| :diagtext:`unused variable` |nbsp| :placeholder:`A`|
12497+------------------------------------------------------------------------------+
12498
12499
12500-Wunused-volatile-lvalue
12501------------------------
12502This diagnostic is enabled by default.
12503
12504**Diagnostic text:**
12505
12506+----------------------------------------------------------------------------------------------------------------+
12507|:warning:`warning:` |nbsp| :diagtext:`expression result unused; assign into a variable to force a volatile load`|
12508+----------------------------------------------------------------------------------------------------------------+
12509
12510
12511-Wused-but-marked-unused
12512------------------------
12513**Diagnostic text:**
12514
12515+---------------------------------------------------------------------------------------------+
12516|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`was marked unused but was used`|
12517+---------------------------------------------------------------------------------------------+
12518
12519
12520-Wuser-defined-literals
12521-----------------------
12522This diagnostic is enabled by default.
12523
12524**Diagnostic text:**
12525
12526+--------------------------------------------------------------------------------------------------------+----------------------------------------------------+
12527|:warning:`warning:` |nbsp| :diagtext:`user-defined literal suffixes not starting with '\_' are reserved`|+--------------------------------------------------+|
12528|                                                                                                        ||:diagtext:`; no literal will invoke this operator`||
12529|                                                                                                        |+--------------------------------------------------+|
12530|                                                                                                        ||                                                  ||
12531|                                                                                                        |+--------------------------------------------------+|
12532+--------------------------------------------------------------------------------------------------------+----------------------------------------------------+
12533
12534
12535-Wuser-defined-warnings
12536-----------------------
12537This diagnostic is enabled by default.
12538
12539**Diagnostic text:**
12540
12541The text of this diagnostic is not controlled by Clang.
12542
12543
12544-Wvarargs
12545---------
12546This diagnostic is enabled by default.
12547
12548**Diagnostic text:**
12549
12550+-----------------------------------------------------------------------------------------------------+
12551|:warning:`warning:` |nbsp| :diagtext:`second argument to 'va\_start' is not the last named parameter`|
12552+-----------------------------------------------------------------------------------------------------+
12553
12554+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12555|: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`|
12556+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12557
12558+------------------------------------------------------+-----------------------------------------------------------------+---------------------------------------------------------+
12559|:warning:`warning:` |nbsp| :diagtext:`passing` |nbsp| |+---------------------------------------------------------------+| |nbsp| :diagtext:`to 'va\_start' has undefined behavior`|
12560|                                                      ||:diagtext:`an object that undergoes default argument promotion`||                                                         |
12561|                                                      |+---------------------------------------------------------------+|                                                         |
12562|                                                      ||:diagtext:`an object of reference type`                        ||                                                         |
12563|                                                      |+---------------------------------------------------------------+|                                                         |
12564|                                                      ||:diagtext:`a parameter declared with the 'register' keyword`   ||                                                         |
12565|                                                      |+---------------------------------------------------------------+|                                                         |
12566+------------------------------------------------------+-----------------------------------------------------------------+---------------------------------------------------------+
12567
12568
12569-Wvariadic-macros
12570-----------------
12571Some of the diagnostics controlled by this flag are enabled by default.
12572
12573**Diagnostic text:**
12574
12575+--------------------------------------------------------------------------------+
12576|:warning:`warning:` |nbsp| :diagtext:`named variadic macros are a GNU extension`|
12577+--------------------------------------------------------------------------------+
12578
12579+-----------------------------------------------------------------------------------------------------------+
12580|:warning:`warning:` |nbsp| :diagtext:`\_\_VA\_OPT\_\_ can only appear in the expansion of a variadic macro`|
12581+-----------------------------------------------------------------------------------------------------------+
12582
12583+------------------------------------------------------------------------+
12584|:warning:`warning:` |nbsp| :diagtext:`variadic macros are a C99 feature`|
12585+------------------------------------------------------------------------+
12586
12587
12588-Wvec-elem-size
12589---------------
12590This diagnostic is an error by default, but the flag ``-Wno-vec-elem-size`` can be used to disable the error.
12591
12592**Diagnostic text:**
12593
12594+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12595|:error:`error:` |nbsp| :diagtext:`vector operands do not have the same elements sizes (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`|
12596+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12597
12598
12599-Wvector-conversion
12600-------------------
12601**Diagnostic text:**
12602
12603+------------------------------------------------------------------------+----------------------------------------------------------------+
12604|:warning:`warning:` |nbsp| :diagtext:`incompatible vector types` |nbsp| |+--------------------------------------------------------------+|
12605|                                                                        ||:diagtext:`assigning to different types`                      ||
12606|                                                                        |+--------------------------------------------------------------+|
12607|                                                                        ||:diagtext:`passing to parameter of different type`            ||
12608|                                                                        |+--------------------------------------------------------------+|
12609|                                                                        ||:diagtext:`returning from function with different return type`||
12610|                                                                        |+--------------------------------------------------------------+|
12611|                                                                        ||:diagtext:`converting between types`                          ||
12612|                                                                        |+--------------------------------------------------------------+|
12613|                                                                        ||:diagtext:`initializing with expression of different type`    ||
12614|                                                                        |+--------------------------------------------------------------+|
12615|                                                                        ||:diagtext:`sending to parameter of different type`            ||
12616|                                                                        |+--------------------------------------------------------------+|
12617|                                                                        ||:diagtext:`casting between types`                             ||
12618|                                                                        |+--------------------------------------------------------------+|
12619+------------------------------------------------------------------------+----------------------------------------------------------------+
12620
12621
12622-Wvector-conversions
12623--------------------
12624Synonym for `-Wvector-conversion`_.
12625
12626
12627-Wvexing-parse
12628--------------
12629This diagnostic is enabled by default.
12630
12631**Diagnostic text:**
12632
12633+----------------------------------------------------------------------------------------------+
12634|:warning:`warning:` |nbsp| :diagtext:`empty parentheses interpreted as a function declaration`|
12635+----------------------------------------------------------------------------------------------+
12636
12637+-----------------------------------------------------------------------------------------------+
12638|:warning:`warning:` |nbsp| :diagtext:`parentheses were disambiguated as a function declaration`|
12639+-----------------------------------------------------------------------------------------------+
12640
12641+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
12642|:warning:`warning:` |nbsp| :diagtext:`parentheses were disambiguated as redundant parentheses around declaration of variable named` |nbsp| :placeholder:`A`|
12643+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
12644
12645
12646-Wvisibility
12647------------
12648This diagnostic is enabled by default.
12649
12650**Diagnostic text:**
12651
12652+---------------------------------------------------------------------------------------------------------------------------------------------+
12653|:warning:`warning:` |nbsp| :diagtext:`declaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will not be visible outside of this function`|
12654+---------------------------------------------------------------------------------------------------------------------------------------------+
12655
12656+----------------------------------------------------------------------------------------------------------------------------------------------+
12657|:warning:`warning:` |nbsp| :diagtext:`redefinition of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will not be visible outside of this function`|
12658+----------------------------------------------------------------------------------------------------------------------------------------------+
12659
12660
12661-Wvla
12662-----
12663**Diagnostic text:**
12664
12665+-----------------------------------------------------------------+
12666|:warning:`warning:` |nbsp| :diagtext:`variable length array used`|
12667+-----------------------------------------------------------------+
12668
12669
12670-Wvla-extension
12671---------------
12672**Diagnostic text:**
12673
12674+-------------------------------------------------------------------------------+
12675|:warning:`warning:` |nbsp| :diagtext:`variable length arrays are a C99 feature`|
12676+-------------------------------------------------------------------------------+
12677
12678
12679-Wvoid-ptr-dereference
12680----------------------
12681This diagnostic is enabled by default.
12682
12683**Diagnostic text:**
12684
12685+--------------------------------------------------------------------------------------------------------------------+
12686|:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow indirection on operand of type` |nbsp| :placeholder:`A`|
12687+--------------------------------------------------------------------------------------------------------------------+
12688
12689
12690-Wvolatile-register-var
12691-----------------------
12692This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
12693
12694-Wweak-template-vtables
12695-----------------------
12696**Diagnostic text:**
12697
12698+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
12699|:warning:`warning:` |nbsp| :diagtext:`explicit template instantiation` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will emit a vtable in every translation unit`|
12700+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
12701
12702
12703-Wweak-vtables
12704--------------
12705**Diagnostic text:**
12706
12707+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12708|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has no out-of-line virtual method definitions; its vtable will be emitted in every translation unit`|
12709+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12710
12711
12712-Wwritable-strings
12713------------------
12714This diagnostic is enabled by default.
12715
12716Also controls `-Wdeprecated-writable-strings`_.
12717
12718**Diagnostic text:**
12719
12720+-------------------------------------------------------------------------------------------------------------------------+
12721|:warning:`warning:` |nbsp| :diagtext:`ISO C++11 does not allow conversion from string literal to` |nbsp| :placeholder:`A`|
12722+-------------------------------------------------------------------------------------------------------------------------+
12723
12724
12725-Wwrite-strings
12726---------------
12727Synonym for `-Wwritable-strings`_.
12728
12729
12730-Wzero-as-null-pointer-constant
12731-------------------------------
12732**Diagnostic text:**
12733
12734+--------------------------------------------------------------------+
12735|:warning:`warning:` |nbsp| :diagtext:`zero as null pointer constant`|
12736+--------------------------------------------------------------------+
12737
12738
12739-Wzero-length-array
12740-------------------
12741**Diagnostic text:**
12742
12743+------------------------------------------------------------------------+
12744|:warning:`warning:` |nbsp| :diagtext:`zero size arrays are an extension`|
12745+------------------------------------------------------------------------+
12746
12747
12748